Univention Bugzilla – Bug 44871
import_networks throws superordinate related exception
Last modified: 2020-07-14 10:02:29 CEST
root@ucs-master:~# /usr/share/ucs-school-import/scripts/import_networks ucs-bgy.csv infile is : ucs-bgy.csv verify ou for school nr BGY need to attach policy: cn=dhcp-dns-clear,cn=policies,ou=BGY,dc=school,dc=support generate network 10.200.16.0/24 iprange: 10.200.16.20-10.200.16.250 defaultrouter: 10.200.16.1 nameserver: 10.200.16.11 netbiosserver: 10.200.16.11 creating object cn=10.200.16.0,cn=bgy,cn=dhcp,ou=BGY,dc=school,dc=support creating object cn=bgy-10.200.16.0,cn=networks,ou=BGY,dc=school,dc=support setting default router Traceback (most recent call last): File "/usr/share/ucs-school-import/scripts/import_networks", line 3191, in <module> import_networks() File "/usr/share/ucs-school-import/scripts/import_networks", line 2029, in import_networks success, dn = create_network(schoolNr, network, iprange=iprange, defaultrouter=defaultrouter, nameserver=nameserver, netbiosserver=netbiosserver) File "/usr/share/ucs-school-import/scripts/import_networks", line 1806, in create_network set_router_for_subnet(network, defaultrouter, schoolNr) File "/usr/share/ucs-school-import/scripts/import_networks", line 2220, in set_router_for_subnet return set_policy_for_dhcp_subnet(network, schoolNr, policy_dhcp_routing_module, dn, values['name'], values=values, overwrite_policy=overwrite_policy) File "/usr/share/ucs-school-import/scripts/import_networks", line 2124, in set_policy_for_dhcp_subnet base=baseDN, filter=univention.admin.filter.expression('cn', str(network.network))) File "/usr/lib/pymodules/python2.7/univention/admin/modules.py", line 746, in lookup tmpres = module.lookup(co, lo, filter, base=base, superordinate=superordinate, scope=scope, unique=unique, required=required, timeout=timeout, sizelimit=sizelimit) File "/usr/lib/pymodules/python2.7/univention/admin/handlers/dhcp/__common.py", line 116, in lookup for dn, attrs in lo.search(filter_str, base, scope, [], unique, required, timeout, sizelimit) File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 596, in __init__ self._validate_superordinate() File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 624, in _validate_superordinate raise univention.admin.uexceptions.insufficientInformation(_('The DN must be underneath of the superordinate.')) univention.admin.uexceptions.insufficientInformation: The DN must be underneath of the superordinate. Looks like the search base in ucs-school-import:2124 is wrong (LDAP base but it should be dhcp_service_dn). --- a/ucs-school-4.2/ucs-school-import/usr/share/ucs-school-import/scripts/ucs-school-import +++ b/ucs-school-4.2/ucs-school-import/usr/share/ucs-school-import/scripts/ucs-school-import @@ -2121,7 +2121,7 @@ def set_policy_for_dhcp_subnet(network, schoolNr, policy_module, policy_dn, cn, for dhcp_service_dn in dhcp_service_list: dhcp_subnet_list = univention.admin.modules.lookup( dhcp_subnet_module, co, lo, scope='sub', superordinate=dhcp_service_dn, - base=baseDN, filter=univention.admin.filter.expression('cn', str(network.network))) + base=dhcp_service_dn, filter=univention.admin.filter.expression('cn', str(network.network))) subnet_dn = "cn=%s,cn=%s,cn=dhcp,%s" % (str(network.network), schoolNr.lower(), getDN(schoolNr)) for dhcp_subnet in dhcp_subnet_list:
> + base=dhcp_service_dn, filter=univention.admin.filter.expression('cn', str(network.network))) Should be + base=dhcp_service_dn.dn, filter=univention.admin.filter.expression('cn', str(network.network))) since dhcp_service_dn is an UDM object and no string.