Bug 44685 - appcenter/docker/progress: primaryGroup: cn=Computers,cn=groups
appcenter/docker/progress: primaryGroup: cn=Computers,cn=groups
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UDM (Generic)
UCS 4.2
Other Linux
: P5 normal (vote)
: UCS 4.3-0-errata
Assigned To: Dirk Wiesenthal
Johannes Keiser
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2017-05-24 13:02 CEST by Florian Best
Modified: 2018-08-01 12:14 CEST (History)
5 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 6: Setup Problem: Issue for the setup process
Who will be affected by this bug?: 1: Will affect a very few installed domains
How will those affected feel about the bug?: 2: A Pain – users won’t like this once they notice it
User Pain: 0.069
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2018031621000044, 2017112921000364, 2017052421000527
Bug group (optional): Error handling, External feedback
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2017-05-24 13:02:40 CEST
Version: 4.1-4 errata420 (Vahr)

Die Ausführung des Kommandos appcenter/docker/progress ist fehlgeschlagen:

Traceback (most recent call last):
  File "%PY2.7%/univention/management/console/base.py", line 281, in execute
    function(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 318, in _response
    result = _multi_response(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 462, in _response
    return list(function(self, iterator, *nones))
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 284, in _fake_func
    yield function(self, *args)
  File "%PY2.7%/univention/management/console/modules/mixins.py", line 149, in progress
    ret = progress_obj.poll()
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 309, in _thread
    result = _multi_response(self, request)
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 462, in _response
    return list(function(self, iterator, *nones))
  File "%PY2.7%/univention/management/console/modules/decorators.py", line 284, in _fake_func
    yield function(self, *args)
  File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 371, in invoke_docker
    result['success'] = action.call(app=app, username=self.username, password=self.password, **kwargs)
  File "%PY2.7%/univention/appcenter/actions/__init__.py", line 196, in call
    return obj.call_with_namespace(namespace)
  File "%PY2.7%/univention/appcenter/actions/__init__.py", line 202, in call_with_namespace
    result = self.main(namespace)
  File "%PY2.7%/univention/appcenter/actions/install.py", line 67, in main
    return self.do_it(args)
  File "%PY2.7%/univention/appcenter/actions/install_base.py", line 109, in do_it
    self._do_it(app, args)
  File "%PY2.7%/univention/appcenter/actions/docker_install.py", line 65, in _do_it
    ret = super(Install, self)._do_it(app, args)
  File "%PY2.7%/univention/appcenter/actions/install.py", line 84, in _do_it
    if self._install_app(app, args):
  File "%PY2.7%/univention/appcenter/actions/docker_install.py", line 57, in _install_app
    hostdn, password = self._register_host(app, args)
  File "%PY2.7%/univention/appcenter/actions/register.py", line 284, in _register_host
    obj = create_object_if_not_exists('computers/%s' % app.docker_server_role, lo, pos, name=hostname, description=description, domain=domain, password=password,
objectFlag='docker', policies=policies)
  File "%PY2.7%/univention/appcenter/udm.py", line 102, in create_object_if_not_exists
    obj.create()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 306, in create
    return self._create()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 724, in _create
    al = self._ldap_addlist()
  File "%PY2.7%/univention/admin/handlers/computers/memberserver.py", line 481, in _ldap_addlist
    gidNum = self.get_gid_for_primary_group()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 483, in get_gid_for_primary_group
    raise univention.admin.uexceptions.primaryGroup(self['primaryGroup'])
primaryGroup: cn=Computers,cn=groups,dc=ttd,dc=intranet
Comment 1 Dirk Wiesenthal univentionstaff 2017-07-03 11:01:20 CEST
Please verify that this is easily reproducible by deleting cn=Computers,cn=groups. If so, change bug to Component: UDM. This should not be possible, the domain seems to be broken.
Comment 2 Eduard Mai univentionstaff 2017-07-07 18:22:24 CEST
This is reproducible with 4.1-4 errata439:

Deleted the group right before initiating install in the Appcenter module.

Die Ausführung des Kommandos appcenter/docker/progress ist fehlgeschlagen:

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/univention/management/console/base.py", line 281, in execute
    function(self, request)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 318, in _response
    result = _multi_response(self, request)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 462, in _response
    return list(function(self, iterator, *nones))
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 284, in _fake_func
    yield function(self, *args)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/mixins.py", line 149, in progress
    ret = progress_obj.poll()
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 309, in _thread
    result = _multi_response(self, request)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 462, in _response
    return list(function(self, iterator, *nones))
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 284, in _fake_func
    yield function(self, *args)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/appcenter/__init__.py", line 371, in invoke_docker
    result['success'] = action.call(app=app, username=self.username, password=self.password, **kwargs)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 196, in call
    return obj.call_with_namespace(namespace)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 202, in call_with_namespace
    result = self.main(namespace)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 67, in main
    return self.do_it(args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install_base.py", line 109, in do_it
    self._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 65, in _do_it
    ret = super(Install, self)._do_it(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 84, in _do_it
    if self._install_app(app, args):
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 57, in _install_app
    hostdn, password = self._register_host(app, args)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/register.py", line 284, in _register_host
    obj = create_object_if_not_exists('computers/%s' % app.docker_server_role, lo, pos, name=hostname, description=description, domain=domain, password=password, objectFlag='docker', policies=policies)
  File "/usr/lib/pymodules/python2.7/univention/appcenter/udm.py", line 102, in create_object_if_not_exists
    obj.create()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 306, in create
    return self._create()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 724, in _create
    al = self._ldap_addlist()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/computers/memberserver.py", line 481, in _ldap_addlist
    gidNum = self.get_gid_for_primary_group()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 483, in get_gid_for_primary_group
    raise univention.admin.uexceptions.primaryGroup(self['primaryGroup'])
primaryGroup: cn=Computers,cn=groups,dc=univention,dc=intranet
Comment 3 Johannes Keiser univentionstaff 2017-12-11 17:44:15 CET
Reported again: Version: 4.2-2 errata231 (Lesum)

Remark: Diese Fehlermeldung ist bei der installation von nextcloud aufgetreten.
Was muss ich tun damit ich nextcloud installieren kann??
Comment 4 Stefan Gohmann univentionstaff 2018-03-15 06:36:36 CET
Move to 4.3-0-errata. If a UCS 4.2 backport is needed, please clone this issue.
Comment 5 Johannes Keiser univentionstaff 2018-03-16 13:23:15 CET
Reported again: Version: 4.2-3 errata312 (Lesum)

Remark: Error in installing nextcould on UCS
Comment 6 Dirk Wiesenthal univentionstaff 2018-05-18 12:06:18 CEST
Fixed in
  univention-directory-manager-modules 13.0.21-22A~4.3.0.201805181204

Trying to delete a group that is mentioned here:
  univention-ldapsearch objectClass=univentionDefault
is prevented by raising univention.admin.uexceptions.primaryGroupUsed
Comment 7 Johannes Keiser univentionstaff 2018-05-23 14:01:33 CEST
The build of
Package: univention-directory-manager-modules
Version: 13.0.21-22A~4.3.0.201805181204
failed.
There are fuzzy entries in ./modules/univention/admin/handlers/settings/de.po


It think the searchResult line is not used in group.py
--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py
+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py
@@ -697,7 +697,6 @@ class object(univention.admin.handlers.simpleLdap):
                        self.gidNum = self.oldattr['gidNumber'][0]
                if 'samba' in self.options:
                        self.groupSid = self.oldattr['sambaSID'][0]
-               searchResult = self.lo.search(base=self.position.getDomain(), filter=filter_format('(&(objectClass=person)(gidNumber=%s))', [self.gidNum]), scope='domain')
                # is this group in mentioned in settings/default?
                try:
                        dn, attrs = self.lo.search(filter='objectClass=univentionDefault', base=self.position.getDomain(), scope='domain', unique=True, required=True)[0]
Comment 8 Dirk Wiesenthal univentionstaff 2018-05-24 17:44:40 CEST
Removed fuzzy in
  univention-directory-manager-modules 13.0.21-23A~4.3.0.201805241740

searchResult is used some lines later. I changed it now to improve readability.
Comment 9 Johannes Keiser univentionstaff 2018-05-25 13:59:58 CEST
Before patch:
Groups listed in cn=default,cn=univention,ldap/base could be deleted
if they did not contain members.

After patch:
Groups listed in cn=default,cn=univention,ldap/base can not be deleted.

OK changes
-> verified
Comment 10 Erik Damrose univentionstaff 2018-05-25 14:38:56 CEST
<http://errata.software-univention.de/ucs/4.3/88.html>
Comment 11 Johannes Keiser univentionstaff 2018-08-01 12:14:50 CEST
External feedback:
UCS Version: 4.2-2 errata52 (Lesum)

Die Ausführung des Kommandos appcenter/docker/progress ist fehlgeschlagen:

Traceback (most recent call last):
   File "/usr/lib/pymodules/python2.7/univention/management/console/base.py", line 249, in execute
     function.__func__(self, request, *args, **kwargs)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 318, in _response
     result = _multi_response(self, request)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 192, in _response
     return function(self, request)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 440, in _response
     return list(function(self, iterator, *nones))
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 286, in _fake_func
     yield function(self, *args)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/mixins.py", line 149, in progress
     ret = progress_obj.poll()
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 309, in _thread
     result = _multi_response(self, request)
   File "/usr/ ib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 192, in _response
     return function(self, request)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 440, in _response
     return list(function(self, iterator, *nones))
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/decorators.py", line 286, in _fake_func
     yield function(self, *args)
   File "/usr/lib/pymodules/python2.7/univention/management/console/modules/appcenter/__init__.py", line 417, in invoke_docker
     result['success'] = action.call(app=app, username=self.username, password=self.password, **kwargs)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 239, in call
     return obj.call_with_namespace(namespace)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/__init__.py", line 245, in call_with_namespace
     result = self.main(namespace)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 70, in main
     return self.do_it(args)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install_base.py", line 126, in do_it
     self._do_it(app, args)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 65, in _do_it
     ret = super(Install, self)._do_it(app, args)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/install.py", line 87, in _do_it
     if self._install_app(app, args):
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/docker_install.py", line 57, in _install_app
     hostdn, password = self._register_host(app, args)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/actions/register.py", line 285, in _register_host
     obj = create_object_if_not_exists('computers/%s' % app.docker_server_role, lo, pos, name=hostname, description=description, domain=domain, password=password, objectFlag='docker', policies=policies)
   File "/usr/lib/pymodules/python2.7/univention/appcenter/udm.py", line 97, in create_object_if_not_exists
     obj.create()
   File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 324, in create
     dn = self._create(response=response, serverctrls=serverctrls)
   File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 771, in _create
     al = self._ldap_addlist()
   File "/usr/lib/pymodules/python2.7/univention/admin/handlers/computers/memberserver.py", line 481, in _ldap_addlist
     gidNum = self.get_gid_for_primary_group()
   File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 537, in get_gid_for_primary_group
     raise univention.admin.uexceptions.primaryGroup(self['primaryGroup'])
primaryGroup: cn=Computers,cn=groups,dc=***