Univention Bugzilla – Bug 54650
ADC sync_from_ucs: traceback if "description" upper/lower case differs between OpenLDAP and AD
Last modified: 2022-06-09 08:32:56 CEST
If you sync a multivalue case insensitive attribute like "description" from UCS to AD, then you get this traceback if the AD object already has the same description script, albeit with a different upper/lowercase spelling: 30.03.2022 11:04:20.160 LDAP (ERROR ): sync_from_ucs: traceback due to modlist: [(0, 'description', set([u'somestring_with_OTHERCASE_than_in_AD']))] 30.03.2022 11:04:20.185 LDAP (WARNING): sync failed, saved as rejected 30.03.2022 11:04:20.186 LDAP (WARNING): Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/univention/connector/__init__.py", line 823, in __sync_file_from_ucs or (not old_dn and not self.sync_from_ucs(key, object, premapped_ucs_dn, old_dn, object_old))): File "/usr/lib/python2.7/dist-packages/univention/connector/ad/__init__.py", line 2832, in sync_from_ucs self.lo_ad.lo.modify_s(compatible_modstring(object['dn']), compatible_modlist(modlist)) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 402, in modify_s return self.result(msgid,all=1,timeout=self.timeout) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 503, in result resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 507, in result2 resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 514, in result3 resp_ctrl_classes=resp_ctrl_classes File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 521, in result4 ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop) File "/usr/lib/python2.7/dist-packages/ldap/ldapobject.py", line 106, in _ldap_call result = func(*args,**kwargs) TYPE_OR_VALUE_EXISTS: {'info': '00002083: AtrErr: DSID-03151D27, #1:\n\t0: 00002083: DSID-03151D27, problem 1006 (ATT_OR_VALUE_EXISTS)
I guess it would be nice to wrap the values into an object class that defines `__eq__` etc to mage use of the comparison functions defined in the mapping.
School Customer affected
Again rejects with that. The different descriptions may come from an untis import and not a human failure