Univention Bugzilla – Bug 55604
Searching for dhcp/host hwaddress is broken
Last modified: 2024-04-23 12:38:29 CEST
Version: 5.0-2 errata547 Role: domaincontroller_master Error: Internal server error during "udm/query (dhcp/dhcp)". Request: udm/query (dhcp/dhcp) Traceback (most recent call last): File "%PY3%/notifier/threads.py", line 80, in _run result = self._function() File "%PY3%/notifier/__init__.py", line 105, in __call__ return self._function(*tmp, **self._kwargs) File "%PY3%/univention/management/console/modules/udm/__init__.py", line 612, in _thread result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden, allow_asterisks=USE_ASTERISKS) File "%PY3%/univention/management/console/modules/udm/udm_ldap.py", line 677, in search result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, **kwargs) File "%PY3%/univention/admin/handlers/__init__.py", line 1790, in lookup filter_s = cls.lookup_filter(filter_s, lo) File "%PY3%/univention/admin/handlers/__init__.py", line 1821, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "%PY3%/univention/admin/filter.py", line 127, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "%PY3%/univention/admin/filter.py", line 321, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "%PY3%/univention/admin/filter.py", line 326, in walk expression_walk_function(filter_p, arg) File "%PY3%/univention/admin/handlers/__init__.py", line 1894, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value, encoding_errors='ignore') File "%PY3%/univention/admin/mapping.py", line 565, in mapValueDecoded value = self.mapValue(map_name, value, encoding_errors=errors) File "%PY3%/univention/admin/mapping.py", line 557, in mapValue value = map_value(value, **kwargs) File "%PY3%/univention/admin/handlers/dhcp/host.py", line 114, in mapHWAddress return old.encode(*encoding) AttributeError: 'list' object has no attribute 'encode'
still happens with UCS5.0-3 How to reproduce: Use Filter DHCP Host → Property: Hardware address → search a HW Address *Bam*
Reproducer: curl 'https://Administrator:univention@demo.univention.de/univention/command/udm/query' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json; q=1.0, text/html; q=0.3; */*; q=0.1' \ --data-raw '{"options":{"superordinate":"cn=service,cn=dhcp,dc=demo,dc=univention,dc=de","hidden":false,"objectType":"dhcp/host","objectProperty":"hwaddress","objectPropertyValue":"112233445566","container":"cn=sr,cn=dhcp,dc=demo,dc=univention,dc=de","scope":"one","fields":["name","hwaddress","labelObjectType","path"]},"flavor":"dhcp/dhcp"}'
*** Bug 53818 has been marked as a duplicate of this bug. ***
(In reply to Florian Best from comment #4) > *** Bug 53818 has been marked as a duplicate of this bug. *** UDM-CLI: # udm dhcp/host list --filter 'hwaddress=ethernet 22:4b:21:25:31:8a' Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 213, in doit output = univention.admincli.admin.doit(arglist) File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 380, in doit out = _doit(arglist) File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 657, in _doit out.extend(cli.list(list_policies, filter, superordinate_dn, policyOptions, policies_with_DN)) File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 689, in list return self._list(self.module_name, self.module, self.dn, self.lo, self.position, self.superordinate, *args, **kwargs) File "/usr/lib/python3/dist-packages/univention/admincli/admin.py", line 951, in _list for object in univention.admin.modules.lookup(module, None, lo, scope='sub', superordinate=superordinate, base=position.getDn(), filter=filter): File "/usr/lib/python3/dist-packages/univention/admin/modules.py", line 953, in lookup tmpres = module.lookup(co, lo, filter, base=base, superordinate=superordinate, scope=scope, unique=unique, required=required, timeout=timeout, sizelimit=sizelimit) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1773, in lookup filter_s = cls.lookup_filter(filter_s, lo) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1804, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 124, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 313, in walk expression_walk_function(filter_p, arg) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 559, in mapValueDecoded value = self.mapValue(map_name, value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 553, in mapValue value = map_value(value, **kwargs) File "/usr/lib/python3/dist-packages/univention/admin/handlers/dhcp/host.py", line 111, in mapHWAddress return old.encode(*encoding) AttributeError: 'list' object has no attribute 'encode' UMC: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/notifier/threads.py", line 80, in _run result = self._function() File "/usr/lib/python3/dist-packages/notifier/__init__.py", line 105, in __call__ return self._function(*tmp, **self._kwargs) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/__init__.py", line 607, in _thread result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden) File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 685, in search result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, **kwargs) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1773, in lookup filter_s = cls.lookup_filter(filter_s, lo) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1804, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 124, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 308, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "/usr/lib/python3/dist-packages/univention/admin/filter.py", line 313, in walk expression_walk_function(filter_p, arg) File "/usr/lib/python3/dist-packages/univention/admin/handlers/__init__.py", line 1867, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 559, in mapValueDecoded value = self.mapValue(map_name, value) File "/usr/lib/python3/dist-packages/univention/admin/mapping.py", line 553, in mapValue value = map_value(value, **kwargs) File "/usr/lib/python3/dist-packages/univention/admin/handlers/dhcp/host.py", line 111, in mapHWAddress return old.encode(*encoding) AttributeError: 'list' object has no attribute 'encode'
MR: https://git.knut.univention.de/univention/ucs/-/merge_requests/768
*** Bug 56568 has been marked as a duplicate of this bug. ***
2023120121000401 5.0-5 errata892 Internal server error during "udm/query (dhcp/dhcp)". Request: udm/query (dhcp/dhcp) Traceback (most recent call last): File "%PY3%/univention/management/console/modules/decorators.py", line 259, in _run result = self._function(*args, **kwargs) # type: Union[BaseException, _T] File "%PY3%/univention/management/console/modules/udm/__init__.py", line 601, in query result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden, allow_asterisks=USE_ASTERISKS) File "%PY3%/univention/management/console/modules/udm/udm_ldap.py", line 681, in search result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, **kwargs) File "%PY3%/univention/admin/handlers/__init__.py", line 1800, in lookup filter_s = cls.lookup_filter(filter_s, lo) File "%PY3%/univention/admin/handlers/__init__.py", line 1831, in lookup_filter filter_p.append_unmapped_filter_string(filter_s, cls.rewrite_filter, module.mapping) File "%PY3%/univention/admin/filter.py", line 124, in append_unmapped_filter_string walk(filter_p, rewrite_function, arg=mapping) File "%PY3%/univention/admin/filter.py", line 316, in walk walk(e, expression_walk_function, conjunction_walk_function, arg) File "%PY3%/univention/admin/filter.py", line 321, in walk expression_walk_function(filter_p, arg) File "%PY3%/univention/admin/handlers/__init__.py", line 1904, in rewrite_filter filter.value = mapping.mapValueDecoded(key, filter.value, encoding_errors='ignore') File "%PY3%/univention/admin/mapping.py", line 556, in mapValueDecoded value = self.mapValue(map_name, value, encoding_errors=errors) File "%PY3%/univention/admin/mapping.py", line 548, in mapValue value = map_value(value, **kwargs) File "%PY3%/univention/admin/handlers/dhcp/host.py", line 113, in mapHWAddress return old.encode(*encoding) AttributeError: 'list' object has no attribute 'encode'