#!/bin/bash eval "$(ucr shell)" . /usr/share/univention-lib/base.sh testnr=1 padded_testnr=$(printf "%.2d" "$testnr") host_name="foo$padded_testnr" mac_addr="06:05:04:03:02:$padded_testnr" univention-install python-univention-directory-manager-legacy-ucd-tcs subnet_stripped=$(univention-ipcalc6 --calcdns --ip $(get_default_ipv4_address) --netmask $(get_default_netmask) --output reverse) a=(${subnet_stripped//./ }) subnetmask=$((8 * ${#a[@]})) udm dhcp/service create --ignore_exists \ --position "cn=dhcp,$ldap_base" \ --set service="$domainname" udm dhcp/subnet create --ignore_exists \ --superordinate "cn=$domainname,cn=dhcp,$ldap_base" \ --set subnet="$subnet_stripped.0" \ --set range="$subnet_stripped.2 $subnet_stripped.254" \ --set broadcastaddress="$subnet_stripped.255" \ --set subnetmask=24 service=$(udm dhcp/service list --filter service="$domainname" | sed -ne 's/^DN: //p;T;q') subnet=$(udm dhcp/subnet list --superordinate "$service" | sed -ne 's/^ subnet: //p;T;q') ip_addr="${subnet%.*}.$((2 + RANDOM % 252))" /usr/share/univention-join/univention-server-join \ -role mobileclient \ -hostname "$host_name" \ -domainname "$domainname" \ -ip "$ip_addr" \ -netmask 255.255.255.0 \ -mac "$mac_addr" \ -binddn "$(univention-ldapsearch -xLLL cn=Administrator dn | sed -ne 's/^dn: //p;T;q')" \ -bindpwfile <(echo -n univention) output=$(udm dhcp/host list \ --superordinate "$service" \ --filter host="foo$padded_testnr") if grep -q ^DN: <<<"$output"; then echo "$output" echo "VERIFIED" exit 0 else echo "ERROR: dhcp/host record missing" echo "Attempting manual creation:" udm dhcp/host create --ignore_exists \ --superordinate "$service" \ --set host="$host_name" \ --set hwaddress="ethernet $mac_addr" \ --set fixedaddress="$ip_addr" udm dhcp/host list \ --superordinate "$service" \ --filter host="foo$padded_testnr" udm dhcp/host delete --superordinate "$service" --dn "cn=$host_name,$service" echo "REOPEN" exit 1 fi