Bindungen definieren, wie die Aktionselemente des einfachen Workflowbeispiels Eingabe- und Ausgabeparameter verarbeiten.

Der Workflow „Snapshots von allen virtuellen Maschinen in einem Ressourcenpool erstellen“ benötigt die folgenden Bindungen für Eingabe- und Ausgabeparameter. Sie können auch die JavaScript-Funktionen für die skriptfähigen Ausgabenelemente definieren.

In Fällen, in denen Sie an vorhandene Parameter binden, übernimmt die Bindung die Typ- und Beschreibungswerte vom ursprünglichen Parameter.

Skriptfähige Aufgabe „Initialisierung“

Das skriptfähige Aufgabenelement „Initialisierung“ initialisiert die Attribute des Workflows. In der folgenden Tabelle sind die Bindungen für Eingabe- und Ausgabeparameter enthalten, die das skriptfähige Aufgabenelement „Initialisierung“ benötigt.

Tabelle 1. Bindungen des skriptfähigen Aufgabenelements „Initialisierung“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

resourcePool

EIN

Binden

  • Lokaler Parameter: resourcePool

  • Quellparameter: resourcePool[in-parameter]

  • Typ: VC:ResourcePool

  • Beschreibung: Der Ressourcenpool enthält die virtuellen Maschinen, von denen Snapshots angefertigt werden sollen

allVMs

AUS

Erstellen

  • Lokaler Parameter: allVMs

  • Quellparameter: allVMs[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Die virtuellen Maschinen im Ressourcenpool

numberOfVMs

AUS

Erstellen

  • Lokaler Parameter: numberOfVMs

  • Quellparameter: numberOfVMs[attribute]

  • Typ: Zahl

  • Beschreibung: Die Anzahl virtueller Maschinen im resourcePool

vmCounter

AUS

Erstellen

  • Lokaler Parameter: vmCounter

  • Quellparameter: vmCounter[attribute]

  • Typ: Zahl

  • Beschreibung: Die Anzahl der virtuellen Maschinen innerhalb eines Arrays

vm

AUS

Erstellen

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Die aktuelle virtuelle Maschine mit erstelltem Snapshot

snapshotVmArray

AUS

Erstellen

  • Lokaler Parameter: snapshotVmArray

  • Quellparameter: snapshotVmArray[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Das Array der virtuellen Maschinen, von denen Snapshots erstellt wurden

Das skriptfähige Aufgabenelement „Initialisierung“ führt die folgende Skriptfunktion durch.

//Retrieve an array of virtual machines contained in the specified Resource Pool
allVMs = resourcePool.vm;
//Initialize the size of the Array and the first VM to snapshot
if (allVMs!=null && allVMs.length!=0) {
	numberOfVms = allVMs.length;
	vm = allVMs[0];
} else {
	numberOfVms = 0;
}
//Initialize the VM counter
vmCounter = 0;
//Initializing the array of VM snapshots
snapshotVmArray = new Array();

Zu verarbeitende VMs? – Entscheidungselement

Das Entscheidungselement „Zu verarbeitenden VMs?“ ermittelt, ob sämtliche virtuellen Maschinen, von denen Snapshots erstellt werden sollen, im Ressourcenpool vorhanden sind. Die folgende Tabelle zeigt die Bindungen, die die das Entscheidungselement „ Zu verarbeitende VMs?“ benötigt.

Tabelle 2. Bindungen des Entscheidungselements „Zu verarbeitende VMs?“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

numberOfVMs

Entscheidung

Binden

  • Quellparameter: numberOfVMs[attribute]

  • Entscheidungsanweisung: Größer als

  • Wert: 0.0

  • Beschreibung: Die Anzahl virtueller Maschinen im resourcePool

Skriptfähiges Aufgabenelement „Pool verfügt über keine VMs“

Das skriptfähige Aufgabenelement „Pool verfügt über keine VMs“ protokolliert die Tatsache, dass der Ressourcenpool keine berechtigten virtuellen Maschinen in der Orchestrator-Datenbank enthält. Die folgende Tabelle zeigt die Bindungen, die das skriptfähige Aufgabenelement „Pool verfügt über keine VMs“ benötigt.

Tabelle 3. Bindungen des skriptfähigen Aufgabenelements „Pool verfügt über keine VMs“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

resourcePool

EIN

Binden

  • Lokaler Parameter: resourcePool

  • Quellparameter: resourcePool[in-parameter]

  • Typ: VC:ResourcePool

  • Beschreibung: Der Ressourcenpool mit den virtuellen Maschinen, von denen Snapshots angefertigt werden sollen.

Das skriptfähige Aufgabenelement „Pool verfügt über keine VMs“ führt die folgende Skriptfunktion durch.

//Writes the following event in the Orchestrator database
Server.warn("The specified ResourcePool "+resourcePool.name+" does not contain any VMs.");

Verbleibende VMs? – benutzerdefiniertes Entscheidungselement

Das benutzerdefinierte Entscheidungselement „Verbleibende VMs?“ bestimmt, ob sämtliche virtuellen Maschinen, von denen Snapshots erstellt werden sollen, im Ressourcenpool verbleiben. Die folgende Tabelle zeigt die Bindungen, die das benutzerdefinierte Entscheidungselement „Verbleibende VMs?“ benötigt.

Tabelle 4. Bindungen des benutzerdefinierten Entscheidungselements „Verbleibende VMs?“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

numberOfVMs

EIN

Binden

  • Quellparameter: numberOfVMs[attribute]

  • Entscheidungsanweisung: Größer als

  • Wert: 0.0

  • Beschreibung: Die Anzahl virtueller Maschinen im resourcePool

vmCounter

EIN

Binden

  • Lokaler Parameter: vmCounter

  • Quellparameter: vmCounter[attribute]

  • Typ: Zahl

  • Beschreibung: Die Anzahl der virtuellen Maschinen innerhalb eines Arrays

Das benutzerdefinierte Entscheidungselement „Verbleibende VMs?“ führt die folgende Skriptfunktion durch.

//Checks if the workflow has reached the end of the array of VMs
if (vmCounter < numberOfVms) {
	return true;
} else {
	return false;
}

Aktionselement getVMDisksModes

Das Aktionselement getVMDisksModes ruft die Modi der Festplatten ab, die in einer virtuellen Maschine ausgeführt werden. Die folgende Tabelle zeigt die Bindungen, die das Aktionselement getVMDisksModes benötigt.

Tabelle 5. Bindungen des Aktionselements getVMDisksModes

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vm

EIN

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Die aktuelle virtuelle Maschine mit erstelltem Snapshot

actionResult

AUS

Erstellen

  • Lokaler Parameter: actionResult

  • Quellparameter: vmDisksModes[attribute]

  • Typ: Array/Zeichenfolge

  • Beschreibung: Die aktuellen Festplattenmodi der virtuellen Maschine

errorCode

Ausnahme

Erstellen

Lokaler Parameter: errorCode

Snapshot erstellen? – benutzerdefiniertes Entscheidungselement

Das benutzerdefinierte Entscheidungselement „Snapshot erstellen?“ bestimmt, ob Snapshots virtueller Maschinen erstellt werden sollen, und zwar unabhängig von den Festplattenmodi der virtuellen Maschinen. Die folgende Tabelle zeigt die Bindungen, die das benutzerdefinierte Entscheidungselement „Snapshot erstellen“? benötigt.

Tabelle 6. Bindungen des Entscheidungselements „Snapshot erstellen?“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vmDisksMode

EIN

Binden

  • Lokaler Parameter: vmDisksMode

  • Quellparameter: vmDisksMode[attribute]

  • Typ: Array/Zeichenfolge

  • Beschreibung: Die aktuellen Festplattenmodi der virtuellen Maschine

vm

EIN

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Die aktuelle virtuelle Maschine mit erstelltem Snapshot

Das benutzerdefinierte Entscheidungselement „Snapshot erstellen?“ führt die folgende Skriptfunktion durch.

//A snapshot cannot be taken if one of its disks is in independent mode 
// (independent-persistent or independent-nonpersistent)
var containsIndependentDisks = false;
if (vmDisksModes!=null && vmDisksModes.length>0) {
	for (i in vmDisksModes) {
		if (vmDisksModes[i].charAt(0)=="i") {
			containsIndependentDisks = true;
		}
	}
} else {
	//if no disk found no need to try to snapshot the VM
	System.warn("Won't snapshot '"+vm.name+"', no disks found");
	return false;
}
if (containsIndependentDisks) {
	System.warn("Won't snapshot '"+vm.name+"', independent disk(s) found");
	return false;
} else {
	System.log("Snapshoting '"+vm.name+"'");
	return true;
}

Workflowelement „Snapshot erstellen“

Das Workflow-Element „Snapshot erstellen“ erstellt Snapshots von virtuellen Maschinen. Die folgende Tabelle zeigt die Bindungen, die das Workflow-Element „Snapshot erstellen“ benötigt.

Tabelle 7. Bindungen des Workflowelements „Snapshot erstellen“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vm

EIN

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Eine aktive virtuelle Maschine, von der ein Snapshot erstellt werden soll.

name

EIN

Erstellen

  • Lokaler Parameter: name

  • Quellparameter: snapshotName[attribute]

  • Typ: Zeichenfolge

  • Beschreibung: Der Name dieses Snapshots. Der Name muss für diese virtuelle Maschine nicht eindeutig sein.

description

EIN

Erstellen

  • Lokaler Parameter: description

  • Quellparameter: snapshotDescription[attribute]

  • Typ: Zeichenfolge

  • Beschreibung: Eine Beschreibung für diesen Snapshot.

memory

EIN

Erstellen

  • Lokaler Parameter: memory

  • Quellparameter: snapshotMemory[attribute]

  • Typ: Boolesch

  • Wert: no

  • Beschreibung: Wenn TRUE, wird ein Abbild des internen Zustands der virtuellen Maschine (ein Speicherabbild) in den Snapshot eingefügt.

quiesce

EIN

Erstellen

  • Lokaler Parameter: quiesce

  • Quellparameter: snapshotQuiesce[attribute]

  • Typ: Boolesch

  • Wert: yes

  • Beschreibung: Wenn TRUE und wenn die virtuelle Maschine beim Erstellen des Snapshots eingeschaltet ist, werden die VMware Tools zum Stilllegen des Dateisystems in der virtuellen Maschine verwendet.

snapshot

AUS

Erstellen

  • Lokaler Parameter: snapshot

  • Quellparameter: NULL

  • Typ: VC:VirtualMachineSnapshot

  • Beschreibung: Der Snapshot wurde erstellt.

errorCode

Ausnahme

Erstellen

Lokaler Parameter: errorCode

Skriptfähiges Aufgabenelement „VM-Snapshots“

Das skriptfähige Aufgabenelement für VM-Snapshots fügt die Snapshots einem Array hinzu. Die folgende Tabelle zeigt die Bindungen, die das skriptfähige Aufgabenelement für VM-Snapshots benötigt.

Tabelle 8. Bindungen des skriptfähigen Aufgabenelements für VM-Snapshots

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vm

EIN

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Eine aktive virtuelle Maschine, von der ein Snapshot erstellt werden soll.

snapshotVmArray

EIN

Binden

  • Lokaler Parameter: snapshotVmArray

  • Quellparameter: snapshotVmArray[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Das Array der virtuellen Maschinen, von denen Snapshots erstellt wurden

snapshotVmArray

AUS

Binden

  • Lokaler Parameter: snapshotVmArray

  • Quellparameter: snapshotVmArray[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Das Array der virtuellen Maschinen, von denen Snapshots erstellt wurden

Das skriptfähige Aufgabenelement für VM-Snapshots führt die folgende Skriptfunktion durch.

//Writes the following event in the Orchestrator database 
Server.log("Successfully took snapshot of the VM '"+vm.name);
//Inserts the VM snapshot in an array
snapshotVmArray.push(vm);

Skriptfähiges Aufgabenelement für Inkrement

Das skriptfähige Aufgabenelement für Inkrement inkrementiert den Indikator, der die Anzahl virtueller Maschinen im Array zählt. Die folgende Tabelle zeigt die Bindungen, die das skriptfähige Aufgabenelement für Inkrement benötigt.

Tabelle 9. Bindungen des skriptfähigen Aufgabenelements für Inkrement

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vmCounter

EIN

Binden

  • Lokaler Parameter: vmCounter

  • Quellparameter: vmCounter[attribute]

  • Typ: Zahl

  • Beschreibung: Die Anzahl der virtuellen Maschinen innerhalb eines Arrays

allVMs

EIN

Binden

  • Lokaler Parameter: allVMs

  • Quellparameter: allVMs[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Die virtuellen Maschinen im Ressourcenpool

vmCounter

AUS

Binden

  • Lokaler Parameter: vmCounter

  • Quellparameter: vmCounter[attribute]

  • Typ: Zahl

  • Beschreibung: Die Anzahl der virtuellen Maschinen innerhalb eines Arrays

vm

AUS

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Die aktuelle virtuelle Maschine mit erstelltem Snapshot

Das skriptfähige Aufgabenelement für Inkrement führt die folgende Skriptfunktion durch.

//Increases the array VM counter
vmCounter++;
//Sets the next VM to be snapshot in the attribute vm
vm = allVMs[vmCounter];

Skriptfähiges Aufgabenelement „Ausnahme protokollieren“

Das skriptfähige Aufgabenelement „Ausnahme protokollieren“ behandelt Ausnahmen vom Workflow und den Aktionselementen. Die folgende Tabelle zeigt die Bindungen, die das skriptfähige Aufgabenelement „Ausnahme protokollieren“ benötigt.

Tabelle 10. Bindungen des Aufgabenelements „Ausnahme protokollieren“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

vm

EIN

Binden

  • Lokaler Parameter: vm

  • Quellparameter: vm[attribute]

  • Typ: VC:VirtualMachine

  • Beschreibung: Die aktuelle virtuelle Maschine mit erstelltem Snapshot

errorCode

EIN

Binden

  • Lokaler Parameter: errorCode

  • Quellparameter: errorCode[attribute]

  • Typ: Zeichenfolge

  • Beschreibung: Beim Erstellen eines Snapshots einer virtuellen Maschine wurde eine Ausnahme gefunden

Das skriptfähige Aufgabenelement „Ausnahme protokollieren“ führt die folgende Skriptfunktion durch.

//Writes  the following event in the Orchestrator database
Server.error("Coudln't snapshot the VM '"+vm.name+"', exception: "+errorCode);

Skriptfähiges Aufgabenelement „Ausgabe festlegen“

Das skriptfähige Aufgabenelement „Ausgabe festlegen“ generiert den Ausgabeparameter des Workflows, in dem das Array virtueller Maschinen enthalten ist, von denen Snapshots erstellt wurden. Die folgende Tabelle zeigt die Bindungen, die das skriptfähige Aufgabenelement „Ausgabe festlegen“ benötigt.

Tabelle 11. Bindungen des Aufgabenelements „Ausgabe festlegen“

Parametername

Bindungstyp

Binden an vorhandenen Parameter oder Parameter erstellen?

Bindungswerte

snapshotVmArray

EIN

Binden

  • Lokaler Parameter: snapshotVmArray

  • Quellparameter: snapshotVmArray[attribute]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Das Array der virtuellen Maschinen, von denen Snapshots erstellt wurden

snapshotVmArrayOut

AUS

Binden

  • Lokaler Parameter: snapshotVmArrayOut

  • Quellparameter: snapshotVmArrayOut[out-parameter]

  • Typ: Array/VC:VirtualMachine

  • Beschreibung: Das Array der virtuellen Maschinen, von denen Snapshots erstellt wurden

Das skriptfähige Aufgabenelement „Ausgabe festlegen“ führt die folgende Skriptfunktion durch.

//Passes the value of the internal attribute to a workflow output parameter
snapshotVmArrayOut = snapshotVmArray;