Univention Bugzilla – Bug 44719
Incompatible change in UCS 4.2 causes that 4.1 appliances cannot join UCS 4.2 systems
Last modified: 2017-07-17 13:23:03 CEST
Created attachment 8890 [details] Screenshot If a UCS 4.2 DC Master is installed and you want to install a UCS 4.1 Appliance it is impossible to join into the UCS 4.2 domain. The appliance dialog then shows the following error message (the screenshot): Authentication failed: {"status": 406, "message": "Specified locale is not available", "location": "https://****/univention/auth"} The old UMC library in UCS 4.1 doesn't send any Accept-Language header along with the request while the UCS 4.2 server expects one. Fix: diff --git a/management/univention-management-console/univention-management-console-web-server b/management/univention-management-console/univention-management-console-web-server index 818cc1b..ded528b 100755 --- a/management/univention-management-console/univention-management-console-web-server +++ b/management/univention-management-console/univention-management-console-web-server @@ -808,7 +808,7 @@ class CPgeneric(Ressource): » » » languages = [] » » # pre parse the HTTP syntax so that the UMC-Server doesn't need to do this (because there are no utility functions there) -» » request.headers['Accept-Language'] = ', '.join(languages) +» » request.headers['Accept-Language'] = ', '.join(languages) or 'en-US' class CPGet(CPgeneric):
Additionally the UCS 4.2 systems needs to disable the security checks (UCR umc/server/disable-security-restrictions) otherwise a traceback is shown in UMC: Version: 4.1-3 errata239 (Vahr) Die Ausführung des Kommandos setup/check/license wizard ist fehlgeschlagen: Traceback (most recent call last): File "%PY2.7%/univention/management/console/base.py", line 283, 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/setup/__init__.py", line 774, in domain_has_activated_license return util.domain_has_activated_license(nameserver, username, password) File "%PY2.7%/univention/management/console/modules/setup/util.py", line 1043, in domain_has_activated_license result = connection.request('udm/license/info') File "%PY2.7%/univention/lib/umc_connection.py", line 142, in request raise NotImplementedError('command forbidden: %s' % url) NotImplementedError: command forbidden: udm/license/info
Is that restricted to ucs 4.1 appliances, or any ucs 4.1 system that wants to join into a ucs 4.2 master during system setup?
(In reply to Erik Damrose from comment #2) > Is that restricted to ucs 4.1 appliances, or any ucs 4.1 system that wants > to join into a ucs 4.2 master during system setup? It's only because the app appliances try to check if the master has a valid license installed.
(In reply to Florian Best from comment #0) > diff --git > a/management/univention-management-console/univention-management-console-web- > server > b/management/univention-management-console/univention-management-console-web- > server > index 818cc1b..ded528b 100755 > --- > a/management/univention-management-console/univention-management-console-web- > server > +++ > b/management/univention-management-console/univention-management-console-web- > server > @@ -808,7 +808,7 @@ class CPgeneric(Ressource): > » » » languages = [] > > » » # pre parse the HTTP syntax so that the UMC-Server doesn't need to > do this (because there are no utility functions there) > -» » request.headers['Accept-Language'] = ', '.join(languages) > +» » request.headers['Accept-Language'] = ', '.join(languages) or 'en-US' > > > class CPGet(CPgeneric): Applied patch: r 80791 univention-management-console (9.0.80-53) * Bug #44719: Applied patch from Florian Best - Fix UCS 4.1 appliances not being able to join UCS 4.2 systems. YAML: r 80792
OK: HTTP requests without Accept-Language header uses english language OK: license request with old library OK: YAML (adjusted in r80805)
<http://errata.software-univention.de/ucs/4.2/81.html>