|
Lines 2507-2513
class s4(univention.s4connector.ucs):
Link Here
|
| 2507 |
ud.debug(ud.LDAP, ud.PROCESS, "Unable to sync %s (GUID: %s). The object is currently locked." % (object['dn'], objectGUID)) |
2507 |
ud.debug(ud.LDAP, ud.PROCESS, "Unable to sync %s (GUID: %s). The object is currently locked." % (object['dn'], objectGUID)) |
| 2508 |
return False |
2508 |
return False |
| 2509 |
|
2509 |
|
| 2510 |
entryUUID = object['attributes'].get('entryUUID')[0] |
2510 |
entryUUID = object['attributes'].get('entryUUID', [None])[0] # may be empty for back_mapped_subobject for leaf object delete_in_s4 |
| 2511 |
|
2511 |
|
| 2512 |
# |
2512 |
# |
| 2513 |
# ADD |
2513 |
# ADD |
|
Lines 2516-2522
class s4(univention.s4connector.ucs):
Link Here
|
| 2516 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: add object: %s" % object['dn']) |
2516 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: add object: %s" % object['dn']) |
| 2517 |
|
2517 |
|
| 2518 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: lock UCS entryUUID: %s" % entryUUID) |
2518 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: lock UCS entryUUID: %s" % entryUUID) |
| 2519 |
self.lockingdb.lock_ucs(entryUUID) |
2519 |
if entryUUID: |
|
|
2520 |
self.lockingdb.lock_ucs(entryUUID) |
| 2520 |
|
2521 |
|
| 2521 |
self.addToCreationList(object['dn']) |
2522 |
self.addToCreationList(object['dn']) |
| 2522 |
|
2523 |
|
|
Lines 2771-2777
class s4(univention.s4connector.ucs):
Link Here
|
| 2771 |
return False |
2772 |
return False |
| 2772 |
|
2773 |
|
| 2773 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: unlock UCS entryUUID: %s" % entryUUID) |
2774 |
ud.debug(ud.LDAP, ud.INFO, "sync_from_ucs: unlock UCS entryUUID: %s" % entryUUID) |
| 2774 |
self.lockingdb.unlock_ucs(entryUUID) |
2775 |
if entryUUID: |
|
|
2776 |
self.lockingdb.unlock_ucs(entryUUID) |
| 2775 |
|
2777 |
|
| 2776 |
self._check_dn_mapping(pre_mapped_ucs_dn, object['dn']) |
2778 |
self._check_dn_mapping(pre_mapped_ucs_dn, object['dn']) |
| 2777 |
|
2779 |
|
|
Lines 2794-2800
class s4(univention.s4connector.ucs):
Link Here
|
| 2794 |
try: |
2796 |
try: |
| 2795 |
objectGUID = self._get_objectGUID(object['dn']) |
2797 |
objectGUID = self._get_objectGUID(object['dn']) |
| 2796 |
self.lo_s4.lo.delete_s(compatible_modstring(object['dn'])) |
2798 |
self.lo_s4.lo.delete_s(compatible_modstring(object['dn'])) |
| 2797 |
self.update_deleted_cache_after_removal(object.get('attributes').get('entryUUID')[0], objectGUID) |
|
|
| 2798 |
except ldap.NO_SUCH_OBJECT: |
2799 |
except ldap.NO_SUCH_OBJECT: |
| 2799 |
pass # object already deleted |
2800 |
pass # object already deleted |
| 2800 |
except ldap.NOT_ALLOWED_ON_NONLEAF: |
2801 |
except ldap.NOT_ALLOWED_ON_NONLEAF: |
|
Lines 2814-2824
class s4(univention.s4connector.ucs):
Link Here
|
| 2814 |
continue |
2815 |
continue |
| 2815 |
ud.debug(ud.LDAP, ud.INFO, "delete: %s" % result[0]) |
2816 |
ud.debug(ud.LDAP, ud.INFO, "delete: %s" % result[0]) |
| 2816 |
subobject_s4 = {'dn': result[0], 'modtype': 'delete', 'attributes': result[1]} |
2817 |
subobject_s4 = {'dn': result[0], 'modtype': 'delete', 'attributes': result[1]} |
| 2817 |
key = None |
2818 |
key = self.__identify(subobject_s4) |
| 2818 |
for k in self.property.keys(): |
|
|
| 2819 |
if self.modules[k].identify(result[0], result[1]): |
| 2820 |
key = k |
| 2821 |
break |
| 2822 |
back_mapped_subobject = self._object_mapping(key, subobject_s4) |
2819 |
back_mapped_subobject = self._object_mapping(key, subobject_s4) |
| 2823 |
ud.debug(ud.LDAP, ud.WARN, "delete subobject: %s" % back_mapped_subobject['dn']) |
2820 |
ud.debug(ud.LDAP, ud.WARN, "delete subobject: %s" % back_mapped_subobject['dn']) |
| 2824 |
if not self._ignore_object(key, back_mapped_subobject): |
2821 |
if not self._ignore_object(key, back_mapped_subobject): |
|
Lines 2832-2834
class s4(univention.s4connector.ucs):
Link Here
|
| 2832 |
return False |
2829 |
return False |
| 2833 |
|
2830 |
|
| 2834 |
return self.delete_in_s4(object, property_type) |
2831 |
return self.delete_in_s4(object, property_type) |
|
|
2832 |
entryUUID = object.get('attributes').get('entryUUID', [None])[0] |
| 2833 |
if entryUUID: |
| 2834 |
self.update_deleted_cache_after_removal(entryUUID, objectGUID) |
| 2835 |
else: |
| 2836 |
ud.debug(ud.LDAP, ud.INFO, "delete_in_s4: Object without entryUUID: %s" % (object['dn'],)) |