diff --git a/services/univention-s4-connector/modules/univention/s4connector/s4/dns.py b/services/univention-s4-connector/modules/univention/s4connector/s4/dns.py index 39d1d07995..9bd3844020 100644 --- a/services/univention-s4-connector/modules/univention/s4connector/s4/dns.py +++ b/services/univention-s4-connector/modules/univention/s4connector/s4/dns.py @@ -875,6 +875,16 @@ def s4_zone_delete(s4connector, object): soa_dn = object['dn'] zone_dn = s4connector.lo.parentDn(soa_dn) + records = [] + for result in self.lo_s4.lo.search_ext_s(zone_dn), ldap.SCOPE_SUBTREE, 'objectClass=*', timeout=-1, sizelimit=0): + if result[0] != zone_dn and result[0] != soa_dn: + records.append(result[0]) + if records: + ud.debug(ud.LDAP, ud.ERROR, "remove zone container from S4 failed, there are sub-objects left") + for record in records: + ud.debug(ud.LDAP, ud.ERROR, "\t%s" % record) + return False + try: res = s4connector.lo_s4.lo.delete_s(soa_dn) except ldap.NO_SUCH_OBJECT: