Univention Bugzilla – Bug 20381
Falsche uldap-Klasse
Last modified: 2018-04-13 13:28:18 CEST
Es gibt zwei uldap-Klassen: 1. univention.uldap.search() liefert im Fehlerfall None 2. univention.admin.uldap.search() wirft eine Exception In univention/admin/handlers/__init__.py:1169#__modify_dhcp_object() wird zwingend Variante 1 benötig, ansonsten passieren schlimme Dinge: Traceback (most recent call last): File "/usr/sbin/univention-dvs-create-desktop", line 278, in ? dn = computer.create() File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 307, in create return self._create() File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 652, in _create raise e Die eigentliche Ursache liegt aber tiefer, was dort erst ein zusätzliches "print traceback.format_exc()" zeigt: File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 645, in _create self._ldap_post_create() File "/usr/lib/python2.4/site-packages/univention/admin/handlers/computers/windows.py", line 438, in _ldap_post_create univention.admin.handlers.simpleComputer._ldap_post_create( self ) File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 1880, in _ldap_post_create self.__modify_dhcp_object( dn, self[ 'name' ], ip, mac ) File "/usr/lib/python2.4/site-packages/univention/admin/handlers/__init__.py", line 1169, in __modify_dhcp_object results = self.lo.search( base = position, scope = 'domain', attr = [ 'univentionDhcpFixedAddress' ], filter = 'dhcpHWAddress=%s' % ethernet, unique = 0 ) File "/usr/lib/python2.4/site-packages/univention/admin/uldap.py", line 303, in search raise univention.admin.uexceptions.noObject, msg[0]['desc'] noObject: No such object Solche fiesen Fallen sollten deutlich dokumentiert sein und noch besser rechtzeitig abgefangen werden!
In diesem konkreten Fall war die Ursache, daß es die LDAP-Basis nicht gabe: Gesucht wurde unter: cn=univention.qa,cn=dhcp,dc=ucsdvs,dc=qa Geben tat es aber: cn=ucsdvs.qa ,cn=dhcp,dc=ucsdvs,dc=qa Dann wirft bereits das res = self.lo.search_ext_s(base, ldap_scope,filter, attr, serverctrls=serverctrls, clientctrls=None, timeout=timeout, sizelimit=sizelimit) aus univention/uldap.py:274#search() eine ldap.NO_SUCH_OBJECT Exception, die von univention/admin/uldap.py:312#search() in eine univention.admin.uexceptions.noObject Exception umgewandelt wird.
This issue has been filed against UCS 2.4. UCS 2.4 is out of maintenance and many UCS components have vastly changed in later releases. Thus, this issue is now being closed. If this issue still occurs in newer UCS versions, please use "Clone this bug". In this case please provide detailed information on how this issue is affecting you.
Continue in Bug #41368