5 1 0: Vorlage für Auftragsnamen - Sicherung
Übersicht
Ab 4.4.3 Beefalo V2 unterstützt SEP sesam einen höheren Automatisierungsgrad bei der Durchführung von administrativen Arbeiten, indem administrative Objekte, wie z.B. Sicherungsaufträge, auf Basis einer vorgegebenen Vorlage generiert werden.
Vorlagen können erstellt werden, um SEP sesam Administratoren die Möglichkeit zu geben, automatisch Sicherungsaufträge zu erstellen, indem bestimmte Informationen durch Variablen ersetzt werden, was Zeit spart und das Sicherungsmanagement vereinfacht. Vorlagen können in der SEP sesam GUI -> Konfiguration -> Standardeinstellungen -> Extras -> Vorlage konfiguriert werden, wie in GUI Konfigurationsoptionen: Extras beschrieben.
Verwendung der Vorlage für Sicherungsauftragsnamen
SEP sesam verwendete die Mustache-Spezifikation für eine Vorlagensprache, um den Namen von Sicherungsaufträgen automatisch zu generieren, während der Auftrag über die REST-API des UI-Servers erstellt wird. Aufgrund einiger Einschränkungen bei der Mustache-Vorlage führte SEP sesam eine flexiblere und leistungsfähigere Rythm-Vorlagengenerierung ein.
Die Rythm-Vorlagengenerierung hat folgende Vorteile:
- Flexibilität beim Schreiben von Code auf der Vorlagenseite, da eine Java-ähnliche Syntax verwendet wird und die Einbettung von Java-Codefragmenten in den Quellcode der Vorlage möglich ist.
- Einfach in eine bestehende Java-Anwendung zu integrieren.
- Unterstützt die Vererbung von Vorlagen sowie Makros.
- Umgang mit komplexen Datentypen.
Für weitere Einzelheiten siehe Rythm templates.
Beachten Sie, dass Sie auch die Rythm-Syntax verwenden können, um die vorkonfigurierten Berichtsvorlagen an Ihre Bedürfnisse anzupassen. Details dazu finden Sie im Video Customized HTML Reports with SEP sesam.
Mustache Syntax
Derzeit generiert SEP sesam den Namen des Sicherungsauftrags automatisch, indem es die Mustache-Spezifikation für eine Schablonensprache verwendet. Wenn der Parameter Sicherungsauftragsname beispielsweise auf backup_task_{{client}} gesetzt ist und die Client-Eigenschaft des Sicherungsauftrags auf snowfix ausgewertet wird, aktualisiert der UI-Server den Namen des Sicherungsauftrags auf backup_task_snowfix, bevor dieser Sicherungsauftrag in die Datenbank übertragen wird.
Die von Mustache verwendete Syntax zur Bezeichnung eines Platzhalters für eine benannte Eigenschaft ist:
{{<Eigenschaftsname>}}
Rythm Syntax
Die Rythm-Vorlagegenerierung verwendet eine andere Syntax. Der vollständige Rythm-Vorlagenquelltext für das gleiche Ergebnis wie im obigen Beispiel lautet:
@args String client backup_task_@(client)
Anmerkung | |
Es sind keine vorkonfigurierten Sicherungsauftragsvorlagen zur Anpassung verfügbar. Bevor Sie eine Rythm-Vorlage konfigurieren, verwendet SEP sesam die automatisch generierten Standardnamen für Sicherungsaufträge. |
Verwendung von Platzhaltern
In der folgenden Tabelle sind Platzhalter aufgeführt, die in der Vorlage für den Namen des Sicherungsauftrags verwendet werden können.
Name | Typ | Beschreibung |
---|---|---|
client | string | Der Name des Clients, der mit dem Objekt des Sicherungsauftrags verbunden ist. |
source | string | Die im Sicherungsauftrag angegebene Sicherungsquelle. |
count | string | Eine Zahl zwischen 1 und 10000. Wird auf die erste Zahl in diesem Bereich ausgewertet, was zu einem eindeutigen Auftragsnamen führt. |
count_optional | string | Entspricht dem Platzhalter count, wird jedoch nur verwendet, wenn ein Auftragsname bereits existiert. |
task | tasks | Objekt des Sicherungsauftrags Hinweis: Dieser Platzhalter kann nur zusammen mit einer nativen Rythm-Vorlage verwendet werden. |
Funktionen (nur Mustache Syntax)
Die folgenden Transformationsfunktionen werden bei Verwendung der Mustache Syntax unterstützt.
Anmerkung | |
Diese Funktionen können bei der Verwendung von Mustache nicht kombiniert werden. Wenn komplexere Transformationen erforderlich sind, verwenden Sie die Rythm Syntax. |
Name | Beschreibung |
---|---|
toLower | Konvertiert alle Zeichen im Platzhalterwert in Kleinbuchstaben. |
toUpper | Konvertiert alle Zeichen im Platzhalterwert in Großbuchstaben. |
dashPrefix | Stellt dem Platzhalterwert ein Bindestrichzeichen (-) voran, wenn der Wert nicht leer ist. |
dotPrefix | Stellt dem Platzhalterwert ein Punktzeichen (.) voran, wenn der Wert nicht leer ist. |
underPrefix | Stellt dem Platzhalterwert einen Unterstrich (_) voran, wenn der Wert nicht leer ist. |
substring (start,end) | Ergibt eine Zeichenkette, die einen Teil der Zeichenketten des Platzhalterwerts ist. Die Zeichenindizes beginnen mit 0. |
replace (target,replacement) | Ergibt eine Zeichenkette, bei der die Zeichen aus target durch die Zeichen aus replacement ersetzt sind. |
trimUnderPrefix | Entfernt alle führenden Unterstrichzeichen (_) aus dem Platzhalterwert. |
trimUnderTrailing | Entfernt alle nachgestellten Unterstriche (_) aus dem Platzhalterwert. |
Beispiele
In unserem Beispiel werden die folgenden Platzhalterwerte verwendet:
Name | Typ | Wert |
---|---|---|
client | string | SnowFix |
source | string | C:\work\test |
count | string | 10 |
Mustache
Unter Verwendung der Mustache Syntax werden die Vorlagen wie folgt ausgewertet.
Name | Wert |
---|---|
sep-task-{{client}} | sep-task-SnowFix |
sep-task-{{toLower client}} | sep-task-snowfix |
sep-task-{{toUpper client}} | sep-task-SNOWFIX |
sep-task-{{client}}-{{source}} | sep-task-SnowFix_C_work_test |
sep-task-{{client}}-{{substring(3,7) source}} | sep-task-SnowFix-work |
sep-task-{{client}}-{{replace("test","folder") source}} | sep-task-SnowFix_C_work_folder |
sep-task{{underPrefix count}} | sep-task_10 |
sep-task{{dashPrefix count_optional}} | sep-task (not exist) sep-task-0 (already exists) |
Rythmus
Unter Verwendung der Rythm Syntax werden die Vorlagen wie folgt ausgewertet.
Name | Wert |
---|---|
@args String client;tasks_rythm_@(client) | tasks_rythm_SnowFix |
@args String client, String source;tasks_rythm_@(client.toLowerCase())_@(source.substring(3,7).toUpperCase()) | tasks_rythm_snowfix_WORK |
Abkürzungen für Virtualisierungsattribute von Sicherungsaufträgen
Sie können auf alle Werte der Virtualisierungsattribute eines Sicherungsauftrags mit Hilfe von Abkürzungen zugreifen. Jede Abkürzung steht für den Wert eines Attributs.
Gültige Abkürzungen für Virtualisierungsattribute: name, isVCenter, path, datacenter, moref, powerState, ipAddress, hostName, macAddress, hostSystem, cluster, version, guestFullName, uuid, sesamClient, folder, vapp, taskGroupRef, hostVersion
Beispiel:
add task "@args de.sep.sesam.model.dto.VMDto vmDto;@ deb_ (vmDto.getMoRef())" …
ist das gleiche wie
add task "@args String moref;deb_@(moref)"…
Beispiel mit direktem Zugriff auf Virtualisierungsattribute:
add taskgen "@args de.sep.sesam.model.dto.FileDto fileDto;@(fileDto.getAdditionalInformationAsMap().get(\"Status\"))" "-c" "hypervdev" "-t" "Hyper-V" -s hyperV -f "c:\tmp\hyperv.txt" -G "hyperVGenGroup3"
add taskgen "@args de.sep.sesam.model.Tasks task;qs-@(task.getClient().getShortName())- @(task.getShortType())_@(task.getSourceSegment(0))" -f d:\input.json -O remove_all -G vm-8
Spezielle Abkürzungen für den einfachen Zugriff (ohne Rythm Schlüsselwörter)
Die Rythm Syntax ist nicht erforderlich, wenn spezielle Abkürzungen in Tags - geschweiften Klammern - verwendet werden, d.h. {{<Abkürzung>}}.
Abkürzungen für die Namensgenerierung
Abkürzung | Beschreibung |
---|---|
{{CLIENT_SHORT}} | ermittelt Client ohne Domäne |
{{TASK_TYPE_SHORT}} | ermittelt Kurzbezeichnung des Auftragstyps |
{{SOURCE_LAST_ITEM}} | ermittelt letztes Sicherungsquellensegment durch Schrägstrich getrennt |
{{SOURCE_ITEM[<pos>]}} | ermittelt die Segmentposition durch Schrägstrich getrennt (negative Position = Position von hinten ermittelt) |
{{<field>}} | ermittelt das Feld aus dem Auftragsbeschreibungsblock (cli action dir last param). Beispiel: ...Status=Running,OwnerNode=HYPERVDEV,Clustered=No,uuid=2E4120B2-C0FC-4D99-8737-21EC5C9D7BC... {{uuid}}=2E4120B2-C0FC-4D99-8737-21EC5C9D7BC Anmerkung: Sie können alle Beschreibungsfelder (UUID, Ordner, Gastbetriebssystem,...) aus der Ausgabe der Liste (-f -) für den Auftragsnamen verwenden. |
Beispiele
- Sicherungsauftrag vom Typ Hyper-V aus dem Eingabestrom:
sm_cmd dir -F JSON client "/hypervdev.sep.de/Hyper-V:" | sm_cmd add taskgen "gen_{{TASK_TYPE_SHORT}}_{{SOURCE_ITEM[1]}}-{{SOURCE_ITEM[-1]}}-{{uuid}}" "-t" "Hyper-V" –c hypervdev.sep.de -f - -O remove_all -G hv-5
- Sicherungsauftrag vom Typ Hyper-V aus einer Datei:
sm_cmd add taskgen "gen_{{TASK_TYPE_SHORT}}_{{SOURCE_ITEM[1]}}-{{SOURCE_ITEM[-1]}}-{{uuid}}" "-t" "Hyper-V" -c hypervdev.sep.de -f d:\hyperv.json -O remove_all -G hv-5
- Sicherungsauftrag vom Typ Pfad aus einer Datei:
sm_cmd add taskgen "{{CLIENT_SHORT}}-{{TASK_TYPE_SHORT}}_{{SOURCE_LAST_ITEM}}" -G pathgroup -f c:\root\path.json –t “Path”
See also
GUI-Konfigurationsoptionen: Extras