Metatest
OPSI-Testpaket fuer Modifikation(en) an opsi-script/opsi-winst
Motivation
OPSI-Scripte koennen bei ihrer Beendigung verschiedene Status-Meldungen an den Server zurueckgeben. Das spiegelt sich in entsprechenden Ausdruecken in der Skriptsprache wider:
isSuccess
isFatalError
isSuspended
Allein der Ausdruck isFatalError
akzeptiert bislang (opsi-script v4.12.1.0)
einen (optionalen) Parameter, der spaeter im opsi config editor im Feld
report zu sehen ist.
Diese Moeglichkeit soll auch fuer isSuccess
gegeben sein.
Umsetzung
Fuer die Erweiterung von opsi-script um die gewuenschte Funktionalitaet wurden
kleinere Anpassungen vorgenommen.
Diese sind im Branch des Fork auf Github
zu finden.
Dieses OPSI-Paket setzt fuer seine Funktion zwingend ein entsprechend modifiziertes opsi-script/opsi-winst voraus.
Das Resultat
Das Ergebnis der koennte folgendermassen aussehen:
Offene Fragen/ToDo
Im Falle eines Fehlers liefert z.B.:
isFatalError
"unknown exception"
im opsi config editor den Report-String:
failed: unknown exception ( setup ) failed
Das abschliessende failed koennte dabei durchaus entfallen, sofern es intern keine Funktion erfuellt. (Wo kommt das her?)
Derzeit liefert ein
isSuccess
"Test passed"
den Report-String:
Test Passed ( setup )
Hierbei ist die Farbgebung jedoch neutral; die Schrift erscheint nicht gruen
wie sonst bei erfolgreicher Ausfuehrung.
Erst
isSuccess
"success: Test passed"
liefert das gewuenschte Bild:
success: Test Passed ( setup )
Um dieses Resultat zu erzielen, sind jedoch noch Anpassungen ausserhalb von opsi-script erforderlich. (Wo? python-opsi?)
Sonderfall isSuspended
Der Ausdruck isSuspended
bricht die Scriptabarbeitung ab, wobei
kein Erfolg oder Fehler gemeldet wird. Der ActionRequest bleibt hierbei unveraendert.
Auch isSuspended
koennte um einen optionalen Parameter erweitert werden.
Da in diesem Fall jedoch (seitens opsi-script) keine Aktualisierung der Objektdaten
erfolgt, wurde auf eine Anpassung von opsi-script vorerst verzichtet.
Das Setzen eines Report-Strings kann hier die Funktion currentProductSetReport
aus der beiliegenden Bibliothek helpers.opsifunc uebernehmen.
Jens Boettge, 2019-08-08 17:43:26 +0200