Univention Bugzilla – Bug 41760
ensure UCS@school version is now lower on the DC Master
Last modified: 2016-12-12 13:10:17 CET
62USC-School-Slave.inst does not check @school version of the master - joinscript stops if the version of the master is not the same as on the slave. error message may be misleading: ERROR: cannot update LDAP indices (ldap server not running?) - stopping here
I think the only problem here is the error message that should indicate that the UCS@school version of the DC master might be a problem.
Script "app_version.py" was added that can be used to compare the version of an app on the local system and on the DC master. Backup, edu-slave and non-edu-slave join scripts (not singleserver) use it at the start to check if the versions differ. The ending ' v.*$' in "4.1 R2 v8" is ignored, so a comparision may be between "4.1" and "4.1 R2". r74445: code and advisory Waiting for Bug #42959 to fill in the correct URL in the join.log hint.
(In reply to Daniel Tröder from comment #2) > Script "app_version.py" was added that can be used to compare the version of > an app on the local system and on the DC master. Calling the script from within the join script is extremely too late. This way the join process has been finished more than 50%. I think the script has to be part of 00ucs-school-slave-check-ou.inst at least. But it would be best if the UCS@school installer checks this *before* starting installation of UCS@school slave.
I would prefer an UCR variable instead of an environment variable. It is not assured, that the env variable is passed to the join scripts. Idea: the UCR variable to override the check should be very specific regarding the version. E.g. ucsschool/join/ignore-version-mismatch/$MASTERVER/$SLAVEVER=yes → ucsschool/join/ignore-version-mismatch/4.1R2v5/4.1v8=yes RFC
UCS@school installer check is split off into separate Bug #43009.
(In reply to Sönke Schwardt-Krummrich from comment #3) > Calling the script from within the join script is extremely too late. This > way the join process has been finished more than 50%. > > I think the script has to be part of 00ucs-school-slave-check-ou.inst at > least. But it would be best if the UCS@school installer checks this *before* > starting installation of UCS@school slave. I also think it'd be better to run this earlier. But 00ucs-school-slave-check-ou.inst is only installed on edu-slaves and not on non-edu-slaves or backups. Should a new join script be created, that is installed on all roles? (In reply to Sönke Schwardt-Krummrich from comment #4) > I would prefer an UCR variable instead of an environment variable. It is not > assured, that the env variable is passed to the join scripts. > > Idea: the UCR variable to override the check should be very specific > regarding the version. E.g. > ucsschool/join/ignore-version-mismatch/$MASTERVER/$SLAVEVER=yes > → ucsschool/join/ignore-version-mismatch/4.1R2v5/4.1v8=yes > > RFC I concur.
(In reply to Daniel Tröder from comment #6) > (In reply to Sönke Schwardt-Krummrich from comment #3) > > Calling the script from within the join script is extremely too late. This > > way the join process has been finished more than 50%. > > > > I think the script has to be part of 00ucs-school-slave-check-ou.inst at > > least. But it would be best if the UCS@school installer checks this *before* > > starting installation of UCS@school slave. > I also think it'd be better to run this earlier. But > 00ucs-school-slave-check-ou.inst is only installed on edu-slaves and not on > non-edu-slaves or backups. Should a new join script be created, that is > installed on all roles? Yes, I think a new join script for each role (exclusive DC master) is currently the only solution (until the pre-checks feature is implemented in univention-join and UCS@school install wizard).
* App versions are now compared in a separate join script 00ucs-school-app-version-check.inst on DC backups and DC slaves (edu & non-edu). * Comparisation uses exact versions now (incl. trailing "v_"). * It is only checked, that the version on the DC master is higher or equal to the one on the installing host. * Support for overriding the result of app_version.py (version checking script) was added using the UCRV ucsschool/join/ignore-version-mismatch/$MASTERVERSION/$SLAVEVERSION. r74668: code change r74669: advisory
r74685: added executable flag to script
At least in our Large Jenkins environment the join fails: http://jenkins.knut.univention.de:8080/job/UCSschool%204.1/job/UCSschool%204.1%20(R2)%20Large%20Environment/ws/autotest-300-ucsschool-large.log ------------------------------------------------------------------------------- . . . . . . . . . Domänenbeitritt - beendet... ERROR: installation failed! output: {u'info': u'beendet...', u'steps': 36.93109090909091, u'finished': True, u'errors': [u'Die Softwarepakete wurden erfolgreich installiert, jedoch konnte der Dom\xe4nenbeitritt nicht abgeschlossen werden: Warning: UCS version on master300.autotest300.local is lower () than local version (). This constellation is not supported.. Mehr Hinweise k\xf6nnen in der Log-Datei /var/log/univention/join.log gefunden werden. Nach Beheben der entsprechenden Konflikte kann der Dom\xe4nenbeitritt \xfcber das UMC-Modul "Dom\xe4nenbeitritt" abgeschlossen werden.', u'Die Softwarepakete wurden erfolgreich installiert, jedoch konnte der Dom\xe4nenbeitritt nicht ausgef\xfchrt werden. Mehr Hinweise k\xf6nnen in der Log-Datei /var/log/univention/join.log gefunden werden. Nach Beheben der entsprechenden Konflikte kann der Dom\xe4nenbeitritt \xfcber das UMC-Modul "Dom\xe4nenbeitritt" noch einmal ausgef\xfchrt werden.'], u'component': u'Dom\xe4nenbeitritt'} -------------------------------------------------------------------------------
If we used the released scope, we didn't register the App. r74957: Register the UCS@school App explicit even if the App is installed manually (Bug #41760) I've restarted the large and the multiserver tests.
Why is the joinscript installed on the DC Master, too?
r75116: don't install 00ucs-school-app-version-check on master Package: ucs-school-metapackage Version: 9.0.2-14.190.201612081412 Branch: ucs_4.1-0 Scope: ucs-school-4.1r2
(In reply to Daniel Tröder from comment #13) > r75116: don't install 00ucs-school-app-version-check on master > > Package: ucs-school-metapackage > Version: 9.0.2-14.190.201612081412 > Branch: ucs_4.1-0 > Scope: ucs-school-4.1r2 No, please revert this. ucs-school-master is installed on a DC Backup. That was the reason for comment #12.
r75125: revert 75116
Created attachment 8297 [details] Screenshot
OK: older versions are detected correctly on a DC Slave ~This does only detect if the app is installed but not if UCS@school is installed and configured at all. ~ Doesn't work on a DC Backup with the school installer because no join scripts are installed there. ~The link is wrong. → Bug #42959 ~Running univention-join on a DC Backup now only displays: ************************************************************************** * Join failed! * * Contact your system administrator * ************************************************************************** * Message: FAILED: 00ucs-school-app-version-check.inst But the relevant information what to do is only available in the join.log. ~Running the UCS@school installer on a DC Slave also doesn't show any relevant information. This may be a bad user experience. → See Screenshot in attachment 8297 [details]
UCS@school 4.1 R2 v9 has been released. http://docs.software-univention.de/changelog-ucsschool-4.1R2v9-de.html