Univention Bugzilla – Bug 50648
Migrate univention-directory-manager-modules to Python 3
Last modified: 2021-12-17 13:04:37 CET
univention-directory-manager-modules & it's used utilities should be migrated to be Python 3 compatible.
*** Bug 48562 has been marked as a duplicate of this bug. ***
univention-python (13.0.0-1) 9709a47e55c2 | Bug #50648: Remove obsolete replacement dea9b6d38410 | Bug #50648 UDM password.check: add proper exception handling 920d30e94b57 | Bug #50648 UDM policies: fix handling of decoding policy values 684f57effa59 | Bug #50648 python uldap: add decoding in getPolicies() 23ab48dd7411 | Bug #50648 python uldap: fix python 3 compatibility for strings univention-directory-manager-module-example (9.0.0-1) bc7ad69407a2 | Bug #50648 UDM handlers: Fix bytes comparison in identify functions univention-directory-manager-modules (15.0.0-1) [162/631] 6949f2ba61b9 | Bug #50648 UDM Listener: install python 3 files fa6de80fffde | Bug #50648 UDM computers: Remove code duplication 7f3823f2a4b2 | Bug #50648 UDM users/user: fix type of users/user:groups f588fe2401ff | Bug #50648: Fix NoSuperordinate: No superordinate was supplied, but one of type settings/cn is required to create/save a settings/portal object. 09f7a3da080c | Bug #50648 UDM settings/portal: fix open() of not existing portal b5761a1cff10 | Bug #50648 UDM: inspect.getargspec is deprecated 5e369430cd1e | Bug #50648: Workaround Bug #25163 e1fc59d8a809 | Bug #50648 UDM CLI: fix error logging 4b205e801616 | Bug #50648 UDM simple: fix type check in encoder c45c193918c1 | Bug #50648: remove deprecated object.has_key() in Python 3 bb47fce0bf50 | Bug #50648: make it possible to specify boolean falsy values via UCR property overwrite d389942e2388 | Bug #50648: use correct encoding for IA5String attributes 11283760096b | Bug #50648 UDM Mapping: add basic error handling db0d44f0ef5a | Bug #50648 UDM groups/group: performance improovement 7d94f84bb5a7 | Bug #50648 UDM CLI: fix unreferenced variable 440af6bb04e4 | Bug #50648 UDM syntax: Fix converting PNG images to JPG b7a8880af036 | Bug #50648 UDM: replace all hashbangs with python 3 00898070bbe6 | Bug #50648 UDM uldap: Unify doctest 12271e2f5289 | Bug #50648 UDM types|filter: fix encoding c23aa189a246 | Bug #50648 UDM mapping: Overuse of functional programming b9f4690d9875 | Bug #50648 UDM: univention-object-type-migrate python 3 compatibility 4be7f0fd17f7 | Bug #50648 UDM license: add replacement for cmp() without changing the API c7eb7e8a367a | Bug #50648 UDM license: replace sequence test with python 2.7+ compatible variant 439ac8084bd8 | Bug #50648 UDM license: fix possible faulty debug messages 4c240e65736d | Bug #50648 UDM: univention-migrate-users-to-ucs4.3 python 3 compatibility 2a41d10143fe | Bug #50648 UDM mapping: Encoding / Decoding 634d2a1296e7 | Bug #50648 UDM uldap: python 3 migration 13f21fb42967 | Bug #50648 UDM uldap: Fix TypeError in getBaseDN() 5383b80ca5e9 | Bug #50648 UDM modules: python3 compatbility b4492d50d283 | Bug #50648 UDM: unify multiple used UCR instances 78292aece2c4 | Bug #50648 UDM password: Adjust to Python 3 division returning float 3fe9e0d1b2eb | Bug #50648 UDM objects: cleanup 2d1c7a160c0b | Bug #50648 UDM syntax: Add a lot of tests 6f86f3260e86 | Bug #50648 UDM policy: remove useless default values 42d73b4a4222 | Bug #50648 UDM scripts: convert-user-base64-photos ca97dabc8b34 | Bug #50648 UDM scripts: fix python3 compatiblity ad21080f2d46 | Bug #50648 UDM scripts: remove unused scripts 2cf851b9a610 | Bug #50648 UDM scipts: migrated all 0698ddbf0f07 | Bug #50648 UDM CLI: fix evaluating of list --policies={1,2} 2b2faf9fdfa3 | Bug #50648 UDM CLI: migrate adduser to python 3 929b59121b48 | Bug #50648 UDM scripts: migrate to python3 cc1ea13fa670 | Bug #50648 UDM locking: Fix encoding in locking 37e2ab3fb496 | Bug #50648 UDM simple: Encoding in Simple UDM API 9705f96e3c1e | Bug #50648 UDM CLI: migrate passwd to python 3 301972a7ef97 | Bug #50648 UDM CLI: migrate license_check to python 3 6c8d0e97fb67 | Bug #50648 UDM: migrate univention-sync-memberuid eebb342a6f02 | Bug #50648 UDM: migrate univention-dnsedit c92e35232d6f | Bug #50648 UDM CLI: list --policies e3d9ade7691c | Bug #50648 UDM CLI: split into functions e1fd9b882891 | Bug #50648 UDM CLI: cleanup/python3 b45ad70a3c3f | Bug #50648 UDM lib: Migrate python-lib/*.py to Python 3 b4a631f49cc0 | Bug #50648 UDM simple: Migrate Simple UDM API d922014c5d79 | Bug #50648 UDM: Fix dependencies e462de15948d | Bug #50648 UDM simple: Migrate Simple UDM API 4ae7f3bc9478 | Bug #50648 UDM shares/share: Fix mapping function en/decoding d6e3489c958a | Bug #50648 UDM computers: fix group removal 78274abd5e2e | Bug #50648 UDM computers: add python 3 compatibility a523791e1ca1 | Bug #50648 UDM nagios: add python 3 compatibility cd6d87130117 | Bug #50648 UDM nagios/service: fix iteritems edf7480c0130 | Bug #50648 UDM dns/dns: fix iteritems 04cffc91e09c | Bug #50648 UDM shares/printer: do not use default model=None 5b7ce1ffa894 | Bug #50648 UDM shares: add python 3 compatibility 81a0b54a73d3 | Bug #50648 UDM users/user: fix decoding bytes 096c3c188fc8 | Bug #50648 UDM users/user: fix loading of user certificates with only partial values 2551b5d4d949 | Bug #50648 UDM users/user: fix integer return in GMTOffset 4aeb4be3f02b | Bug #50648 UDM users/user: fix some more mapping functions 7129426819ed | Bug #50648 UDM users/user: fix mapHomePostalAddress / unmapHomePostalAddress e1c76b6ea6c2 | Bug #50648 UDM users: Additional fixes 06c713c72156 | Bug #50648 UDM networks/network: add python3 compatibility 19673b6d97b6 | Bug #50648 UDM allocators: fix allocating of group SIDs b03f683b536e | Bug #50648 UDM: migrate ipaddr → ipaddress e4f22d87dcf9 | Bug #50648 UDM handlers: Cleanup __setitem__ 7c066cde91c6 | Bug #50648 UDM handlers: Rename internal variables for typing dd683f8c11ba | Bug #50648: UDM handlers: Simplify zone processing b946cb6d7188 | Bug #50648: UDM handlers: Fix/add type annotations 9c1676cf6db2 | Bug #50648 UDM dhcp: migrate ipaddr → ipaddress 39343f74020f | Bug #50648 UDM dns: migrate ipaddr → ipaddress b75b7978d95e | Bug #50648 UDM syntax: migrate ipaddr → ipaddress 271b81ca669f | Bug #50648 UDM dns: fix decoding of mapped values for use in LDAP filters 5f974df03d67 | Bug #50648 UDM dns/reverse_zone: reversed(bytestring) returns integer 228d08ef670d | Bug #50648 UDM dns: fix SOA mapping 5d4de2dd3ed5 | Bug #50648 UDM dns: replace unicode with six.text_type 509bc63088e2 | Bug #50648 UDM dns: add encoding to mapping functions 4b76c74515a7 | Bug #50648 UDM dhcp Adjust mapping functions to python-ldap 3.x b0124fd354ed | Bug #50648 UDM kerberos/kdcentry: Python3 compat 7f47df0e7aea | Bug #50648 UDM container/ou: python 3 compatibility 95c2e505a87e | Bug #50648 UDM policies/registry: code cleanup c000295e0b67 | Bug #50648 UDM: fix dependency of settings/ldapacl & co 497ebb6c4ffb | Bug #50648 UDM settings: code cleanup 7dc0fda7a5fa | Bug #50648 UDM settings/syntax: fix decoding of oldattr 2c88af56103b | Bug #50648 UDM settings/portal_category: Fix mapping e48e81ae2c65 | Bug #50648 UDM settings/portal_entry: replace basestring 8074b59686e5 | Bug #50648 UDM settings/portal: Fix mapping 651c54baaf3e | Bug #50648 UDM settings/portal_entry: fix mapping b3e2a89fdfa8 | Bug #50648 UDM settings/sambadomain: fix mapping 5099ebb205f5 | Bug #50648 UDM policies/dhcp_leasetime: enhance __setitem__() ad59af952c68 | Bug #50648 UDM policies/maintenance|repositorysync: code cleanup b8e0d6c3e541 | Bug #50648 UDM settings/umc_operationset: Fix mapping b17563972a7a | Bug #50648 UDM settings/sambaconfig: Fix mapping ba5b01b3bb83 | Bug #50648 UDM settings/printermodel: Fix mapping 1ef545e871f2 | Bug #50648 UDM settings/license: Fix bytes/unicode d92d3baf5b8f | Bug #50648 UDM policies/dhcp_leasetime: fix (un)mapUNIX_TimeInterval() e62ac2ca458b | Bug #50648 UDM policies/nfsmounts: fix decoding/encoding in mapping dfaef06e5db3 | Bug #50648 UDM policies/print_quota: fix decoding/encoding in mapping 297dbfd81d89 | Bug #50648 UDM policies/registry: Make python3 compatible bc7ad69407a2 | Bug #50648 UDM handlers: Fix bytes comparison in identify functions b347c34dfac2 | Bug #50648 UDM handlers: Fix de/encoding of bytes/unicode c79ca6b848dd | Bug #50648 UDM nagios: Fix de/encoding of bytes/unicode d84bfbd7f7b3 | Bug #50648 UDM computers: replace unicode() function call dde19d81e73e | Bug #50648 UDM: Fix de/encoding of bytes/unicode in modules f54f95b54d79 | Bug #50648 UDM groups/group: Improvement feedback from Florian fa72707d42d8 | Bug #50648 UDM users/user: Decode sambaAcctFlags from bytes a9a76b1a65dd | Bug #50648 UDM samba: Fix ordering of sambaAcctFlags 9b3e58532c1a | Bug #50648 UDM password: TypeError: crypt() argument 1 must be str, not bytes 016aeec33773 | Bug #50648 UDM users/ldap: fix bytes LDAP values in identify 7cdeec2e85de | Bug #50648 UDM handlers: Fix bytes vs unicode in addlist objectclass calculation f792e08d6367 | Bug #50648 UDM mapping: Fix new on the fly encoding in mapValues for list values be5a4ff2e3d1 | Bug #50648 UDM license: decode LDAP bytes fd71e9edadf1 | Bug #50648 UDM users/user: fix encoding of group membership changes e65fdf0a8049 | Bug #50648 UDM shares/share: fix bytes vs unicode 607238b4dec9 | Bug #50648 UDM syntax: Use modern base64 module interface 5c721c37495f | Bug #50648 UDM dns: more bytes fixes for 13_user_creation_with_mailPrimaryAddress_already_in_use 1948d603d270 | Bug #50648 UDM config: getDefaultValue bytes vs unicode df0828a77445 | Bug #50648 UDM computers/windows: fix bytes -> unicode for groups/group test 823af256fdf6 | Bug #50648 UDM groups/group: fix bytes -> unicode in another lo.getAttr result 651f2f38ed57 | Bug #50648 UDM groups/group: fix bytes -> unicode in another lo.getAttr result 8b1ea4dc76ae | Bug #50648 UDM groups/group: fix bytes -> unicode in _ldap_post_remove, _ldap_post_move and __update_membership ecc7e9425ce7 | Bug #50648 UDM groups/group: fix bytes -> unicode in fast_member_add and fast_member_remove fddd0023b519 | Bug #50648 UDM password: PyArg_ParseTuple in heimdal.principal() supports unicode 68c3c4bde6c6 | Bug #50648 UDM groups/group: additional python 3 fixes 2364b653e90b | Bug #50648 UDM groups/group: Convert LDAP values to/from bytes 12fb4b6cba65 | Bug #50648 UDM groups/group: open() LDAP values are bytes ba8246695b12 | Bug #50648 UDM groups/group: open() decode sambaSID from ASCII bytes b81f399d76f7 | Bug #50648 UDM group/group: open() decode uniqueMember DNs a7d8f99de1d1 | Bug #50648 UDM handlers: rewrite_filter(): decode mapped property 55bcaef8c4c6 | Bug #50648 UDM: Convert __cmp__ to rich comparison 06bc4a319015 | Bug #50648 UDM: Add unit test for comparison 63c599965db6 | Bug #50648 UDM password: read bytes from urandom 64acfef23a6b | Bug #50648 UDM handlers: decode object classes 3e5571c83c4a | Bug #50648 UDM handlers: _ldap_dn(): decode mapped property 9ec7a3fe81c6 | Bug #50648 UDM mapping.py: Fix encode/decode ad916f35cdd0 | Bug #50648 UDM allocators: handle encoding 00c694e8c9c2 | Bug #50648 UDM uldap: decode() kerberos realm d695850aaa93 | Bug #50648 UDM locking: fix types 4bcfbdec1a24 | Bug #50648 UDM syntax: fix double decoding bd925e760316 | Bug #50648 UDM syntax: use six.string_types instead of bytestring aec3bde17c66 | Bug #50648 UDM handlers: replace iteritems() with items() de049dee2ab5 | Bug #50648 UDM: Remove deprecated tab and field e906b3e570c8 | Bug #50648 UDM: univention.admin.pattern_replace(): fix typing 623dbac6ffce | Bug #50648 UDM: fix multiple basestring/unicode NameErrors fb4eab67854a | Bug #50648 UDM CLI: replace basestring with string_types 51ff2f65eeed | Bug #50648 UDM handlers: replace basestring with string_types c2fc128505e4 | Bug #50648 UDM modules: make EA_LAyout comparable in Python 3 da2c2fc7a16e | Bug #50648 UDM layout: replace basestring with string_types c6b6966b9873 | Bug #50648 UDM modules: update_extended_attributes(): fix use of bytestrings 93de48f88600 | Bug #50648 UDM hook: import_hook_files(): add python3 compatibility 14bc1eadcd26 | Bug #50648 UDM syntax: import_syntax_files(): add python3 compatibility 112a5beb2b21 | Bug #50648 UDM policies: replace os.path.walk() d39cc604596e | Bug #50648 UDM modules: use six.string_types over basestring 75413af85a4e | Bug #50648 UDM modules: replace os.path.walk() 25344bdd7811 | Bug #50648 UDM computers: replace os.path.walk() 2cb024a497b5 | Bug #50648 UDM syntax: cmp is deprecated 06604328ff68 | Bug #50648 UDM types: python 3 type compatibility fe03a2cfa6ed | Bug #50648 UDM CLI: remove use of deprecated _2utf8() edd40c78de4f | Bug #50648 UDM handlers: let hasChanged() handle iterators cff0e59369f0 | Bug #50648 UDM handlers: reduce() e7ca4380ca66 | Bug #50648 UDM uldap: use univention.uldap.accees.whoami() 82a0d912e2e4 | Bug #50648 UDM uldap: use unicode strings e28f80769115 | Bug #50648 UDM simpleLdap: fix string types 1454ad4d3d6f | Bug #50648 UDM container|user: more LDAP values bytes fixes a6be9b050294 | Bug #50648 UDM: xrange() → range() 5d89ee833438 | Bug #50648 UDM users|syntax Fix unmapBase64 and users/user userCertificate 5d6e4bb0c450 | Bug #50648 UDM users/ldap: fix bytes vs unicode 0c30d75b3b25 | Bug #50648 UDM users/ldap: Fix missing self.password_length default 3c2475ff7e5f | Bug #50648 UDM users/user: Random salt Pyhon 2/3 compatibility 93365b75c417 | Bug #50648 UDM users/user: saslpassthrough(ASCII) 951d50d70d0e | Bug #50648 UDM users/user: long does not exists anymore 7e9779949fc9 | Bug #50648 UDM users/user: iteritems() 0f8c4f402003 | Bug #50648 UDM users/user: unmap functions: fix encoding b98461c79774 | Bug #50648 UDM users/user: concatenate pwlist c47bcc9510c4 | Bug #50648 UDM users/user: case_insensitive_in_list() 3ec8e98f4eb6 | Bug #50648 UDM users/user: _simulate_legacy_options: object classes are bytestrings af4348786e77 | Bug #50648 UDM users/user: misc unmapping: fix encoding 3609f0c6e733 | Bug #50648 UDM users/user: _unmap_automount_information: fix encoding dceb014209a4 | Bug #50648 UDM users/user: hasChanged(): fix encoding c7a515db4c03 | Bug #50648 UDM users/user: misc/group: fix encoding 1dcd42598349 | Bug #50648 UDM users/user: _ldap_pre_ready(): fix encoding d858829dc79d | Bug #50648 UDM users/user: SambaSID: fix encoding db3d28052cd8 | Bug #50648 UDM users/user:_move: fix encoding 3435b4a08f88 | Bug #50648 UDM users/user:_ldap_post_remove: fix encoding dea9b6d38410 | Bug #50648 UDM password.check: add proper exception handling 523ff472a4fc | Bug #50648 UDM users/user: _ldap_{mod,add}list() use bytestring 4e2919068461 | Bug #50648 UDM users/user: _ldap_attributes() use unicode strings 0c9428c41548 | Bug #50648 UDM users/user: lookup_filter() use unicode strings 1847ef29ce37 | Bug #50648 UDM users/user: identify() use bytestrings a9bb7580145f | Bug #50648 UDM handlers: Rename function to add doctest 31fcd304ce2d | Bug #50648 UDM handlers: Simplify S4C detection 2f4ee913e750 | Bug #50648 UDM handlers: Use searchDn() 973d315b6113 | Bug #50648 UDM handlers: Remove unused exceptions f49da8be920d | Bug #50648 UDM handlers: Fix running doctest on admin 920d30e94b57 | Bug #50648 UDM policies: fix handling of decoding policy values
If you call udm-cli with closed stdin and cli-server was not running, the python3 version of the script will abort with a traceback: =============================================================================== root@master220:~# /usr/sbin/univention-directory-manager container/ou create --ignore_exists --set name="foo" 0<&- Traceback (most recent call last): File "/usr/sbin/univention-directory-manager", line 163, in _create_socket sock.connect(socket_path) FileNotFoundError: [Errno 2] No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/sbin/univention-directory-manager", line 205, in <module> main() File "/usr/sbin/univention-directory-manager", line 182, in main sock = _create_socket() File "/usr/sbin/univention-directory-manager", line 165, in _create_socket fork_server(sock, socket_path) File "/usr/sbin/univention-directory-manager", line 72, in fork_server os.dup2(null, sys.stdin.fileno()) AttributeError: 'NoneType' object has no attribute 'fileno' ^CTraceback (most recent call last): File "/usr/sbin/univention-directory-manager", line 163, in _create_socket sock.connect(socket_path) FileNotFoundError: [Errno 2] No such file or directory =============================================================================== In python2 sys.stdin.fileno() returns 0 in this case. In python3 it returns None. Currently this blocks testing Bug #51324.
A simple check has been added for std{in,out,err}. I hope there are not much more places where we experience something like this. univention-directory-manager-modules (15.0.7-1) 318898d5c9ef | Bug #50648: comment 3: fix UDM CLI server when stdin is already closed
Created attachment 10665 [details] check_cracklib patch When having mspolicy password quality check enabled, kinit shows a traceback when trying to change password to something insufficient. Repeat new password: Error: external program failed: Traceback (most recent call last): File "/usr/share/univention-heimdal/check_cracklib.py", line 74, in <module> main() File "/usr/share/univention-heimdal/check_cracklib.py", line 67, in main pwdCheck.check(params['new-password']) File "/usr/lib/python3/dist-packages/univention/password.py", line 143, in check raise CheckFailed('Password does not meet the password complexity requirements.') univention.password.CheckFailed: Password does not meet the password complexity requirements. kinit: krb5_get_init_creds: failed changing password This is due to ./base/univention-python/modules/password.py not raising ValueError anymore, but univention.password.CheckFailed, which is not caught in check_cracklib.py
florian allowed me to merge the patch :) Package: univention-heimdal Version: 13.0.3-2A~5.0.0.202103261532 Branch: ucs_5.0-0 f813e989a3 Bug #50648: Catch univention.password.CheckFailed in check_cracklib.py
*** Bug 52995 has been marked as a duplicate of this bug. ***
I get this, when opening the DNS module: Interner Server-Fehler in "udm/query (dns/dns)". Request: udm/query (dns/dns) 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 629, in _thread 'name': module.obj_description(obj), File "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 859, in obj_description description = udm_objects.description(obj) File "/usr/lib/python3/dist-packages/univention/admin/objects.py", line 154, in description return object.description() File "/usr/lib/python3/dist-packages/univention/admin/handlers/dns/reverse_zone.py", line 255, in description return unmapSubnet(rdn_value) File "/usr/lib/python3/dist-packages/univention/admin/handlers/dns/reverse_zone.py", line 176, in unmapSubnet zone = zone.decode(*encoding) AttributeError: 'str' object has no attribute 'decode'
(In reply to Julia Bremer from comment #8) > I get this, when opening the DNS module: > > Interner Server-Fehler in "udm/query (dns/dns)". > Request: udm/query (dns/dns) > > 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 629, in _thread > 'name': module.obj_description(obj), > File > "/usr/lib/python3/dist-packages/univention/management/console/modules/udm/ > udm_ldap.py", line 859, in obj_description > description = udm_objects.description(obj) > File "/usr/lib/python3/dist-packages/univention/admin/objects.py", line > 154, in description > return object.description() > File > "/usr/lib/python3/dist-packages/univention/admin/handlers/dns/reverse_zone. > py", line 255, in description > return unmapSubnet(rdn_value) > File > "/usr/lib/python3/dist-packages/univention/admin/handlers/dns/reverse_zone. > py", line 176, in unmapSubnet > zone = zone.decode(*encoding) > AttributeError: 'str' object has no attribute 'decode' Please upgrade your system. This is already fixed in: univention-directory-manager-modules (15.0.8-1) dfae471d1555 | Bug #50648 UDM DNS: call super() methods 3f3fdb5a2ba3 | Bug #50648 UDM: replace ignore_license=[01] with boolean True|False adb8167a3b92 | Bug #50648 UDM: replace modify_childs=[01] with boolean True|False 7598e8aa5f56 | Bug #50648 UDM: replace canonical=[01] with boolean True|False 8f233dbb46c9 | Bug #50648 UDM: replace virtual=[01] with boolean True|False 1f46d9e18a91 | Bug #50648 UDM: replace childs=[01] with boolean True|False bae0db8ff2f7 | Bug #50648 UDM: remove unused quickDescription() 6f56e4b35d29 | Bug #50648 UDM DNS: fix dns/reverse_zone description a2e1e8ef2684 | Bug #50648 UDM users/user: fix unmapping automountInformation 382734b6d52c | Bug #50648 UDM users/user: fix setting userexpiry=""
*** Bug 53036 has been marked as a duplicate of this bug. ***
*** Bug 53058 has been marked as a duplicate of this bug. ***
Python2 is now broken: UCS-5.0-0 2021-04-19.iso 91univention-saml.inst ... Creating SAML user Traceback (most recent call last): File "<stdin>", line 19, in <module> File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 548, in create dn = self._create(response=response, serverctrls=serverctrls) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 1230, in _create al.extend(self._ldap_modlist()) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/users/ldap.py", line 223, in _ldap_modlist pwhistoryPolicy = univention.admin.password.PasswortHistoryPolicy(self.loadPolicyObject('policies/pwhistory')) File "/usr/lib/python2.7/dist-packages/univention/admin/password.py", line 329, in __init__ self.pwhistoryLength = max(0, int(pwhistoryPolicy['length'] or 0)) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 3442, in __getitem__ self.policy_result() File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 3414, in policy_result values[attr_name] = value_dict['value'].copy() AttributeError: 'list' object has no attribute 'copy'  git:4f50162f0c7 git:7f77a72b133  
(In reply to Philipp Hahn from comment #12) > Python2 is now broken: > > > UCS-5.0-0 2021-04-19.iso > 91univention-saml.inst > ... > Creating SAML user > Traceback (most recent call last): > File "<stdin>", line 19, in <module> > File > "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", > line 548, in create > dn = self._create(response=response, serverctrls=serverctrls) > File > "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", > line 1230, in _create > al.extend(self._ldap_modlist()) > File > "/usr/lib/python2.7/dist-packages/univention/admin/handlers/users/ldap.py", > line 223, in _ldap_modlist > pwhistoryPolicy = > univention.admin.password.PasswortHistoryPolicy(self. > loadPolicyObject('policies/pwhistory')) > File "/usr/lib/python2.7/dist-packages/univention/admin/password.py", line > 329, in __init__ > self.pwhistoryLength = max(0, int(pwhistoryPolicy['length'] or 0)) > File > "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", > line 3442, in __getitem__ > self.policy_result() > File > "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", > line 3414, in policy_result > values[attr_name] = value_dict['value'].copy() > AttributeError: 'list' object has no attribute 'copy' >  > git:4f50162f0c7 > git:7f77a72b133 Fixed in: univention-directory-manager-modules (15.0.8-1) 65d808ad79fa | fixup! fixup! Bug #50648 UDM policies/registry: Make python3 compatible
*** Bug 53166 has been marked as a duplicate of this bug. ***
*** Bug 53165 has been marked as a duplicate of this bug. ***
*** Bug 51306 has been marked as a duplicate of this bug. ***
OK: Code Review OK: ucs-test -s udm-* OK: Some fixes discussed with @fbest
UCS 5.0 has been released: https://docs.software-univention.de/release-notes-5.0-0-en.html https://docs.software-univention.de/release-notes-5.0-0-de.html If this error occurs again, please use "Clone This Bug".
*** Bug 54158 has been marked as a duplicate of this bug. ***