--- a/ucs-school-4.1r2/ucs-school-import/usr/share/ucs-school-import/scripts/ucs-school-import +++ a/ucs-school-4.1r2/ucs-school-import/usr/share/ucs-school-import/scripts/ucs-school-import @@ -1764,16 +1764,21 @@ def create_network(schoolNr, network, iprange=None, defaultrouter=None, nameserv pass position.setDn("cn=%s,cn=dhcp,%s" % (schoolNr.lower(), getDN(schoolNr))) - object = dhcp_service_module.object(co, lo, position=position, superordinate=superordinate) - object = dhcp_subnet_module.object(co, lo, position=position, superordinate=dhcp_subnet_module) - object.open() - object['subnet'] = str(network.network) - object['subnetmask'] = str(network.netmask) - object['broadcastaddress'] = str(network.broadcast) - try: - create_object(object, ignore_exists=True) - except: + dhcp_service_objects = univention.admin.modules.lookup( + dhcp_service_module, co, lo, scope='sub', superordinate=superordinate, + base=baseDN, filter=univention.admin.filter.expression('cn', schoolNr.lower())) + if not dhcp_service_objects: + print 'ERROR: DHCP service object for %r not found' % (schoolNr.lower(),) success = False + else: + object = dhcp_subnet_module.object(co, lo, position=position, superordinate=dhcp_service_objects[0]) + object.open() + object['subnet'] = str(network.network) + object['subnetmask'] = str(network.netmask) + object['broadcastaddress'] = str(network.broadcast) + exists = create_object(object, ignore_exists=True) + if exists: + print '%r already existed - usually no problem' % (object.dn,) position.setDn("cn=networks,%s" % (getDN(schoolNr), )) object = network_module.object(co, lo, position=position, superordinate=superordinate)