In diesem Artikel möchte ich ein etwas älteres Feature der DSM beschreiben (Bestandteil seit DSM 7.2.1), welches bei der Verwendung von Job-Scripts sehr hilfreich sein kann, jedoch relativ unbekannt ist. Das neu eingeführte Feature wurde zwar in den Release Notes erwähnt und ist auch in der Online-Hilfe dokumentiert, dennoch zeigt die Erfahrung, dass nur wenige DSM-Kunden Kenntnis über die Existenz oder Verwendung haben.
Es handelt sich um die Möglichkeit, in Job-Scripts auf die Werte von Variablen und Installationsparametern von Aufrufpaketen (Main Packages) zugreifen zu können.
Um die Werte von Variablen eines Hauptpakets ermitteln zu können, wurde die DSM Scriptsprache "eScript" um drei neue Variablenzusätze erweitert:
- CallingPackage
- CallingPolicy
- CallingPolicyInstance
Um genau festlegen zu können, aus welchem Paket ein möglicher Wert ausgelesen werden soll, kann die eScript-Variable einfach mit dem Zusatz versehen werden. (z.B. "CallingPackage.Object.Name")
Da es noch den etwas älteren Zusatz „CurrentPackage“ gibt, muss man hier etwas aufpassen welcher Variablenzusatz der richtige für das gewünschte Verhalten ist. „CurrentPackage“ beschreibt an dieser Stelle immer das aktuell ausgeführte Paket, wohingegen „CallingPackage“ für das aufrufende Paket steht.
Analog hierzu kann, wie bereits weiter oben erwähnt, auch eine Policy oder eine Policyinstanz mit „CallingPolicy“ oder „CallingPolicyInstance“ angesprochen werden.
Um die Vorgehensweise etwas zu verdeutlichen, habe ich hier ein kleines Beispiel angefügt, welches sich auf den Variablenzusatz „CallingPackage“ bezieht. In dem Beispiel habe ich ein Hauptpaket mit einem Installationsparameter "Param1" und dem Wert "Wert1".
Nun möchte ich über ein zweites Paket, welches ale Job Policy zugewiesen wird, auf diesen Installationsparameter zugreifen. Dies kann dann wie folgt realisiert werden.
Durch die Verwendung dieses Features wären unter anderem, folgende Anwendungsbeispiele denkbar:
- Aufbau einer eigenen Rebootsteuerung, die Job-basiert eine "Reboot Variable" abfragt und darauf reagieren kann
- Error Handling über Job-Pakete
Besonders zu beachten ist an dieser Stelle, dass bei Verwendung von Software Sets der Zugriff auf CallingPackage-Variablen für Komponenten des Sets nicht funktioniert da es sich bei Software Sets nicht um „normale“ Pakete handelt. Ebenso ist darauf zu achten, dass auch wirklich ein „aufrufendes Paket“ existiert. Gemäß dem Falle, dass kein aufrufendes Paket vorhanden ist, wird sonst ein leerer Wert für die Variable zurückgegeben.