J-U-B / opsi-metatest

OPSI-Testpaket fuer Modifikation(en) an opsi-script/opsi-winst

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

OPSI-Testpaket fuer Modifikation(en) an opsi-script/opsi-winst


Languages

Language:Shell 100.0%