Bug 14873 - Shell-Bibliothek für Join-Skripte
Shell-Bibliothek für Join-Skripte
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Join (univention-join)
UCS 2.3
All All
: P5 enhancement (vote)
: UCS 2.3
Assigned To: Daniel Hofmann
Janek Walkenhorst
:
Depends on:
Blocks: 14432
  Show dependency treegraph
 
Reported: 2009-06-25 11:46 CEST by Moritz Muehlenhoff
Modified: 2009-12-21 08:48 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2009-06-25 11:46:27 CEST
Die Teile der Join-Skripte, die den Join-Status prüfen und aktualisieren könnten in eine kleine Shell-Bibliothek integriert werden. Dadurch liessen sich systemweite Änderungen einfacher umsetzen, z.B:

check_if_joined

test_join_status $VERSION

log_successful_join $VERSION

Über diesen Weg liesse sich auch die spätere Umstellung der Join-Skript, so dass direkt in /var/univention-join/status geschrieben wird, einfach umsetzen (d.h. nicht mehr über den Umweg des Symlinks)
Comment 1 Daniel Hofmann univentionstaff 2009-08-10 11:05:19 CEST
/usr/share/univention-join/joinscripthelper.lib im Paket univention-join enthält jetzt die Bibliothek.

Doku gibts hier: https://billy.knut.univention.de/uniwiki/index.php/Joinskripte

Changelogeintrag ist gemacht.
Comment 2 Janek Walkenhorst univentionstaff 2009-08-26 16:38:02 CEST
Reopen:

Es fehlen Anführungszeichen in den Zeilen: 40,44,48,49,59,60,71,73,81,82,84,97,114

Das Konstrukt "test -n `grep `" ist sehr uneffizient und kann leicht durch "grep -qs" ersetzt werden:
 test -n "`grep -e "${JS_PACKAGE} v[0-9]\+ successful" $JS_STATUSFILE`"
wird zu:
 grep -qs -e "${JS_PACKAGE} v[0-9]\+ successful" $JS_STATUSFILE
(Zeilen: 49,60)

Anstatt einfach den Exit-Code des letzten Befehls als Rückgabewert zu verwenden, sollte ein if-Konstrukt verwendet werden, um Stabilität, Lesbarkeit, und Wartbarkeit zu verbessern.
(Zeilen: 49,60)

Anstatt den exit-Code mit "$?" abzufragen sollte der Befehl direkt in einem if ausgeführt werden:
 joinscript_check_any_version_executed
 if [ $? -ne 0 ]; then
wird zu
 if joinscript_check_any_version_executed; then
(Zeilen: 91)

Zeile 107: 
if ! test -e "/usr/share/univention-join/.joined"
sollte zu
if [ ! -e "/usr/share/univention-join/.joined" ]
werden.
Außerdem sollte geprüft werden, ob "-f" nicht eventuell sinnvoller als "-e" ist.

Anstatt "&&" bzw. "||" sollte ein if-Konstrukt verwendet werden.
(Zeilen: 73,82,114)

Im Wiki steht JS_GET_LAST_EXECUTED_VERSION - im Code steht JS_LAST_EXECUTED_VERSION

In joinscript_init solte geprüft werden, ob VERSION -ge 1 gesetzt ist.
Comment 3 Daniel Hofmann univentionstaff 2009-08-27 13:39:15 CEST
Korrigierte Version r11753
Comment 4 Janek Walkenhorst univentionstaff 2009-09-15 13:38:44 CEST
Verified:

Funktioniert einwandfrei.

Im Wiki bitte noch die Parameter der drei Funktionen
# joinscript_check_any_version_executed ()
# joinscript_check_specific_version_executed ()
# joinscript_check_version_in_range_executed ()
dokumentieren.

univention-join 2.0.11-1.272.200909151157
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2009-09-15 13:40:29 CEST
Wieder auf, bis das dokumentiert ist.
Comment 6 Daniel Hofmann univentionstaff 2009-09-15 13:56:15 CEST
https://billy.knut.univention.de/uniwiki/index.php/Joinskripte#Joinskript-Bibliothek
enthält jetzt die Beschreibung zu jeder Funktion.
Comment 7 Janek Walkenhorst univentionstaff 2009-09-15 14:05:19 CEST
(In reply to comment #4)
> Im Wiki bitte noch die Parameter der drei Funktionen
> # joinscript_check_any_version_executed ()
> # joinscript_check_specific_version_executed ()
> # joinscript_check_version_in_range_executed ()
> dokumentieren.

(In reply to comment #5)
> Wieder auf, bis das dokumentiert ist.

Verified: Wurde Dokumentiert
Comment 8 Andre Fenske univentionstaff 2009-10-21 17:02:26 CEST
Nach der Installation vom AD-Connector ist aufgefallen das im Joinscript VERSION="1" gesetzt wurde. Eigentlich hätte es VERSION=1 heißen müssen. Eventuell sollte da behoben werden.
Comment 9 Sönke Schwardt-Krummrich univentionstaff 2009-10-21 17:04:37 CEST
(In reply to comment #8)
> Nach der Installation vom AD-Connector ist aufgefallen das im Joinscript
> VERSION="1" gesetzt wurde. Eigentlich hätte es VERSION=1 heißen müssen.
> Eventuell sollte da behoben werden.

Die Helper-Lib sollte auch mit Anführungszeichen (einfache und doppelte) umgehen können, die hinter VERSION= stehen. Ebenso Whitespaces, falls dies noch nicht der Fall ist.
Comment 10 Daniel Hofmann univentionstaff 2009-10-21 18:36:28 CEST
Neues Verhalten: (so jetzt auch im Wiki)

Versionsdefinitionen müssen der grep-regex

"^[[:space:]]*VERSION=([1-9][0-9]*|\"[1-9][0-9]*\"|'[1-9][0-9]*')[[:space:]]*$"

entsprechen, damit die Verwendung der joinscripthelper.lib von außerhalb eines Joinskripts (siehe weiter unten) funktioniert. Dabei wird im Falle von mehreren solcher Definitionen nur die letzte beachtet.
Comment 11 Janek Walkenhorst univentionstaff 2009-11-16 14:44:16 CET
(In reply to comment #10)
> Neues Verhalten: (so jetzt auch im Wiki)
> 
> Versionsdefinitionen müssen der grep-regex
> 
> "^[[:space:]]*VERSION=([1-9][0-9]*|\"[1-9][0-9]*\"|'[1-9][0-9]*')[[:space:]]*$"
> 
> entsprechen, damit die Verwendung der joinscripthelper.lib von außerhalb eines
> Joinskripts (siehe weiter unten) funktioniert. Dabei wird im Falle von mehreren
> solcher Definitionen nur die letzte beachtet.
Funktioniert
Comment 12 Stefan Gohmann univentionstaff 2009-12-21 08:48:15 CET
UCS 2.3 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden: "Clone This Bug".