Bug 38362

Summary: UDM-CLI dies when creating a nagios/service object
Product: UCS Reporter: Sönke Schwardt-Krummrich <schwardt>
Component: UDM (Generic)Assignee: Florian Best <best>
Status: CLOSED FIXED QA Contact: Johannes Keiser <keiser>
Severity: normal    
Priority: P5 CC: best, gohmann
Version: UCS 4.2Flags: best: Patch_Available+
Target Milestone: UCS 4.2-1-errata   
Hardware: Other   
OS: Linux   
What kind of report is it?: Bug Report What type of bug is this?: 3: Simply Wrong: The implementation doesn't match the docu
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.034 Enterprise Customer affected?:
School Customer affected?: ISV affected?:
Waiting Support: Flags outvoted (downgraded) after PO Review:
Ticket number: Bug group (optional): Error handling
Max CVSS v3 score:
Attachments: patch

Description Sönke Schwardt-Krummrich univentionstaff 2015-04-24 16:28:07 CEST
Seen on a UCS@school samba3 multiserver environment on a dc slave:

Object created: cn=CItoh,cn=cups,cn=univention,dc=autotest202,dc=local
Object created: cn=Seiko,cn=cups,cn=univention,dc=autotest202,dc=local
Object created: cn=Sharp,cn=cups,cn=univention,dc=autotest202,dc=local
Object created: cn=Olivetti,cn=cups,cn=univention,dc=autotest202,dc=local
Object created: cn=Panasonic,cn=cups,cn=univention,dc=autotest202,dc=local
Traceback (most recent call last):
  File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 222, in doit
    output = univention.admincli.admin.doit(arglist)
  File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 393, in doit
    out=_doit(arglist)
  File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 980, in _doit
    dn=object.modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 364, in modify
    return self._modify(modify_childs,ignore_license=ignore_license)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 839, in _modify
    ml=self._ldap_modlist()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/nagios/service.py", line 394, in _ldap_modlist
    fqdn = "%s.%s" % (cn[0], domain[0])
IndexError: list index out of range
Object exists: cn=services,cn=univention,dc=autotest202,dc=local
Object exists: cn=Print,cn=services,cn=univention,dc=autotest202,dc=local
E: object not found
2015-04-24 07:03:33.369789806-04:00 (in joinscript_save_current_version)
EXITCODE=0
RUNNING 79univention-squid.inst
2015-04-24 07:03:33.810919753-04:00 (in joinscript_init)
Object exists: cn=services,cn=univention,dc=autotest202,dc=local
Object exists: cn=PROXY,cn=services,cn=univention,dc=autotest202,dc=local
E: object not found
Traceback (most recent call last):
  File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 222, in doit
    output = univention.admincli.admin.doit(arglist)
  File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 393, in doit
    out=_doit(arglist)
  File "/usr/lib/pymodules/python2.7/univention/admincli/admin.py", line 980, in _doit
    dn=object.modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 364, in modify
    return self._modify(modify_childs,ignore_license=ignore_license)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 839, in _modify
    ml=self._ldap_modlist()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/nagios/service.py", line 394, in _ldap_modlist
    fqdn = "%s.%s" % (cn[0], domain[0])
IndexError: list index out of range
EXITCODE=3
RUNNING 81univention-nfs-server.inst
EXITCODE=already_executed
Comment 1 Florian Best univentionstaff 2016-10-30 17:17:24 CET
Created attachment 8164 [details]
patch

Treat not existing objects in nagios/service modlist.
Comment 2 Florian Best univentionstaff 2017-07-05 16:33:21 CEST
Patch has been applied, with some small cleanup.

univention-directory-manager-modules (12.0.17-62):
r80885 | Bug #38362: prevent exception if hosts added to nagios/service doesn't exists

univention-directory-manager-modules.yaml:
r80886 | YAML Bug #38362
Comment 3 Florian Best univentionstaff 2017-07-05 16:34:52 CEST
An example to reproduce it is:

udm nagios/service modify --dn cn=UNIVENTION_CUPS,cn=nagios,"$(ucr get ldap/base)" --append assignedHosts=cn=test
Comment 4 Johannes Keiser univentionstaff 2017-07-05 18:57:26 CEST
OK Tested with:
> udm nagios/service modify --dn cn=UNIVENTION_CUPS,cn=nagios,"$(ucr get
> ldap/base)" --append assignedHosts=cn=test

udm nagios/service create --set name=foobar --set checkPeriod=24x7 --set checkCommand=check_foo --set notificationPeriod=24x7 --set assignedHosts=cn=test

YAML: OK
-> verified
Comment 5 Erik Damrose univentionstaff 2017-07-26 14:39:18 CEST
<http://errata.software-univention.de/ucs/4.2/115.html>