Univention Bugzilla – Full Text Bug Listing |
Summary: | S4 Connector treats DC Master object as computers/windows_domaincontroller | ||
---|---|---|---|
Product: | UCS | Reporter: | Florian Best <best> |
Component: | S4 Connector | Assignee: | Florian Best <best> |
Status: | CLOSED FIXED | QA Contact: | Arvid Requate <requate> |
Severity: | minor | ||
Priority: | P3 | CC: | best, ebersbach, gohmann, heidelberger, klaeser, oyen, requate, steuwer |
Version: | UCS 4.2 | Flags: | 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?: | 4: Minor Usability: Impairs usability in secondary scenarios |
Who will be affected by this bug?: | 2: Will only affect a 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.091 | Enterprise Customer affected?: | |
School Customer affected?: | ISV affected?: | ||
Waiting Support: | Flags outvoted (downgraded) after PO Review: | ||
Ticket number: | Bug group (optional): | Cleanup, Troubleshooting, Usability | |
Max CVSS v3 score: | |||
Bug Depends on: | 35559, 40839 | ||
Bug Blocks: | 30368 | ||
Attachments: | patch |
Description
Florian Best
2017-07-11 22:39:26 CEST
The real reason in the S4 Connector seems to be Bug #35559. Some UDM objects are treated as computer/windows_domaincontroller objects while they are e.g. computers/domaincontroller_master. There are some function: add_in_ucs(self, property_type, object, module, position) modify_in_ucs(self, property_type, object, module, position) move_in_ucs(self, property_type, object, module, position) delete_in_ucs(self, property_type, object, module, position) They all have a parameter "module" which is always unused because they determine the module again… They are all only called from sync_to_ucs() where the old broken logic is still used. In sync_to_ucs is already code to get the (old) ucs object, using the new working logic. We can simply use the already determined module type. We can adjust the logic there and simplify the whole code by evaluating this parameter. Also the DNS module specified dns/dns as module without specifying the types. Both has been fixed in: univention-s4-connector (11.0.7-14): r81167 | Bug #44976: add dns subtypes to ucs_module_others r81166 | Bug #44976: fix identification of UCS module type r81122 | Bug #44976: fix detection of UDM object type univention-s4-connector.yaml: r81123 | YAML Bug #44976 This looks very good now. The only traceback which is still in the S4-Connector log is: 17.07.2017 04:58:44,255 LDAP (ERROR ): get_ucs_object: could not identify UDM object type: cn=qwertzu,dc=AutoTest091,dc=local 17.07.2017 04:58:44,255 LDAP (PROCESS): get_ucs_object: using default: computers/windows 17.07.2017 04:58:44,256 LDAP (WARNING): get_ucs_object: failure was: 17.07.2017 04:58:44,256 LDAP (WARNING): Traceback (most recent call last): File "/usr/lib/pymodules/python2.7/univention/s4connector/__init__.py", line 923, in get_ucs_object ucs_object = univention.admin.objects.get(module, co=None, lo=self.lo, position='', dn=searchdn) File "/usr/lib/pymodules/python2.7/univention/admin/objects.py", line 90, in get raise univention.admin.uexceptions.wrongObjectType('The object %s is not a %s.' % (dn, module.module,)) wrongObjectType: The object cn=qwertzu,dc=AutoTest091,dc=local is not a computers/windows. 17.07.2017 04:58:44,256 LDAP (PROCESS): sync to ucs: [windowscomputer] [ delete] cn=qwertzu,dc=AutoTest091,dc=local 17.07.2017 04:58:44,257 LDAP (WARNING): Object to delete doesn't exsist, ignore (cn=qwertzu,dc=AutoTest091,dc=local) Looks like this comes from the test case: 66_udm-computers/55_nameserver_update_in_zone_on_delete (In reply to Florian Best from comment #4) > Looks like this comes from the test case: > 66_udm-computers/55_nameserver_update_in_zone_on_delete The test case is just bad as it uses the same object-name/DN for creating and removing a lot of computer names. This is just a race condition and breaks nothing. The identify() function of dns.py has been removed as it wrongly identified all objects as dns/dns. Now the DNS object types are specified in the mapping as udm_modules_other. univention-s4-connector (11.0.7-16): r81220 | Bug #44976: simplify code r81219 | Bug #44976: remove now unused dns/dns identify() function r81180 | Bug #44976: don't use identify() function of dns.py anymore r81179 | Bug #44976: remove unnecessary code redundancy Additional commits: r81361, r81362 * Code review: Ok * Functional test: Ok * CI Tests: Ok * Advisory: Ok (In reply to Florian Best from comment #5) > r81219 | Bug #44976: remove now unused dns/dns identify() function > r81180 | Bug #44976: don't use identify() function of dns.py anymore One customer had local changes in the s4 connector mapping file. The identify function was still referenced. Thus, the connector didn't start anymore. (In reply to Stefan Gohmann from comment #8) > (In reply to Florian Best from comment #5) > > r81219 | Bug #44976: remove now unused dns/dns identify() function > > r81180 | Bug #44976: don't use identify() function of dns.py anymore > > One customer had local changes in the s4 connector mapping file. The > identify function was still referenced. Thus, the connector didn't start > anymore. → Bug #45220 |