绑定用于定义简单工作流示例的操作元素对输入和输出参数的处理方式。

“创建资源池中所有虚拟机的快照”工作流需要使用以下输入和输出参数绑定。您还可以定义可编辑脚本任务元素的 JavaScript 函数。

如果与现有参数绑定,则绑定后会继承原始参数的类型和说明值。

“初始化”可编辑脚本任务

“初始化”可编辑脚本任务元素会初始化该工作流的各种属性。下表中显示了“初始化”可编辑脚本任务元素所需的输入和输出参数绑定。

表 1. “初始化”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
resourcePool 输入 绑定
  • 本地参数:resourcePool
  • 源参数:resourcePool[in-parameter]
  • 类型:VC:ResourcePool
  • 说明:资源池包含要对其创建快照的虚拟机
allVMs 输出 创建
  • 本地参数:allVMs
  • 源参数:allVMs[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:资源池中的虚拟机。
numberOfVMs 输出 创建
  • 本地参数:numberOfVMs
  • 源参数:numberOfVMs[attribute]
  • 类型:数字
  • 说明:资源池中找到的虚拟机数量
vmCounter 输出 创建
  • 本地参数:vmCounter
  • 源参数:vmCounter[attribute]
  • 类型:数字
  • 说明:阵列中虚拟机的计数器
vm 输出 创建
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:当前已创建了快照的虚拟机
snapshotVmArray 输出 创建
  • 本地参数:snapshotVmArray
  • 源参数:snapshotVmArray[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:已对其创建了快照的虚拟机阵列

“初始化”可编辑脚本任务元素会执行以下脚本函数。

//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();

“要处理虚拟机?”决策元素

“要处理虚拟机?”决策元素用于确定资源池中是否存在任何要对其创建快照的虚拟机。下表中显示了“要处理虚拟机?”决策元素所需的绑定。

表 2. “要处理虚拟机?”决策元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
numberOfVMs 决策 绑定
  • 源参数:numberOfVMs[attribute]
  • 决策声明:大于
  • 值:0.0
  • 说明:资源池中找到的虚拟机数量

“池中没有虚拟机”可编辑脚本任务元素

“池中没有虚拟机”可编辑脚本任务元素会记录资源池中不包含可合格用于 Orchestrator 数据库的虚拟机这一事实。下表中显示了“池中没有虚拟机”可编辑脚本任务元素所需的绑定。

表 3. “池中没有虚拟机”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
resourcePool 输入 绑定
  • 本地参数:resourcePool
  • 源参数:resourcePool[in-parameter]
  • 类型:VC:ResourcePool
  • 说明:资源池包含要对其创建快照的虚拟机。

“池中没有虚拟机”可编辑脚本任务元素会执行以下脚本函数。

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

“剩余有虚拟机?”自定义决策元素

“剩余有虚拟机?”自定义决策元素用于确定资源池中是否剩余任何要创建快照的虚拟机。下表中显示了“剩余有虚拟机?”自定义决策元素所需的绑定。

表 4. “剩余有虚拟机?”自定义决策元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
numberOfVMs 输入 绑定
  • 源参数:numberOfVMs[attribute]
  • 决策声明:大于
  • 值:0.0
  • 说明:资源池中找到的虚拟机数量
vmCounter 输入 绑定
  • 本地参数:vmCounter
  • 源参数:vmCounter[attribute]
  • 类型:数字
  • 说明:阵列中虚拟机的计数器
“剩余有虚拟机?”自定义决策元素会执行以下脚本函数。
//Checks if the workflow has reached the end of the array of VMs
if (vmCounter < numberOfVms) {
	return true;
} else {
	return false;
}

getVMDisksModes 操作元素

getVMDisksModes 操作元素用于获取正在虚拟机中运行的磁盘的模式。下表中显示了 getVMDisksModes 操作元素所需的绑定。

表 5. getVMDisksModes 操作元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vm 输入 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:当前已创建了快照的虚拟机
actionResult 输出 创建
  • 本地参数:actionResult
  • 源参数:vmDisksModes[attribute]
  • 类型:阵列/字符串
  • 说明:虚拟机的当前磁盘模式
errorCode 异常 创建 本地参数:errorCode

“创建快照?”自定义决策元素

“创建快照?”自定义决策元素用于根据虚拟机的磁盘模式来确定是否对虚拟机创建快照。下表中显示了“创建快照?”自定义决策元素所需的绑定。

表 6. “创建快照?”决策元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vmDisksMode 输入 绑定
  • 本地参数:vmDisksMode
  • 源参数:vmDisksMode[attribute]
  • 类型:阵列/字符串
  • 说明:虚拟机的当前磁盘模式
vm 输入 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:当前已创建了快照的虚拟机

“创建快照?”自定义决策元素会执行以下脚本函数。

//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;
}

“创建快照”工作流元素

“创建快照”工作流元素用于创建虚拟机快照。下表中显示了“创建快照”工作流元素所需的绑定。

表 7. “创建快照”工作流元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vm 输入 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:要对其创建快照的活动虚拟机。
name 输入 创建
  • 本地参数:name
  • 源参数:snapshotName[attribute]
  • 类型:字符串
  • 说明:此快照的名称。此名称无需对该虚拟机唯一。
description 输入 创建
  • 本地参数:description
  • 源参数:snapshotDescription[attribute]
  • 类型:字符串
  • 说明:此快照的说明。
memory 输入 创建
  • 本地参数:memory
  • 源参数:snapshotMemory[attribute]
  • 类型:布尔
  • 值:no
  • 说明:如果为 TRUE,则快照中会包含该虚拟机内部状态的转储(内存转储)。
quiesce 输入 创建
  • 本地参数:quiesce
  • 源参数:snapshotQuiesce[attribute]
  • 类型:布尔
  • 值:yes
  • 说明:如果为 TRUE 且该虚拟机在创建快照时处于启动状态,则 VMware Tools 将用于静默虚拟机中的文件系统。
snapshot 输出 创建
  • 本地参数:snapshot
  • 源参数:NULL
  • 类型:VC:VirtualMachineSnapshot
  • 说明:创建的快照。
errorCode 异常 创建 本地参数:errorCode

“虚拟机快照”可编辑脚本任务元素

“虚拟机快照”可编辑脚本任务元素用于向阵列添加快照。下表中显示了“虚拟机快照”可编辑脚本任务元素所需的绑定。

表 8. “虚拟机快照”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vm 输入 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:要对其创建快照的活动虚拟机。
snapshotVmArray 输入 绑定
  • 本地参数:snapshotVmArray
  • 源参数:snapshotVmArray[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:已对其创建了快照的虚拟机阵列
snapshotVmArray 输出 绑定
  • 本地参数:snapshotVmArray
  • 源参数:snapshotVmArray[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:已对其创建了快照的虚拟机阵列

“虚拟机快照”可编辑脚本任务元素会执行以下脚本函数。

//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);

“增量”可编辑脚本任务元素

“增量”可编辑脚本任务元素用于对统计阵列中虚拟机数目的计数器进行递增操作。下表中显示了“增量”可编辑脚本任务元素所需的绑定。

表 9. “增量”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vmCounter 输入 绑定
  • 本地参数:vmCounter
  • 源参数:vmCounter[attribute]
  • 类型:数字
  • 说明:阵列中虚拟机的计数器
allVMs 输入 绑定
  • 本地参数:allVMs
  • 源参数:allVMs[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:资源池中的虚拟机。
vmCounter 输出 绑定
  • 本地参数:vmCounter
  • 源参数:vmCounter[attribute]
  • 类型:数字
  • 说明:阵列中虚拟机的计数器
vm 输出 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:当前已创建了快照的虚拟机

“增量”可编辑脚本任务元素会执行以下脚本函数。

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

“记录异常”可编辑脚本任务元素

“记录异常”可编辑脚本任务元素用于处理工作流和操作元素中的异常行为。下表中显示了“记录异常”可编辑脚本任务元素所需的绑定。

表 10. “记录异常”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
vm 输入 绑定
  • 本地参数:vm
  • 源参数:vm[attribute]
  • 类型:VC:VirtualMachine
  • 说明:当前已创建了快照的虚拟机
errorCode 输入 绑定
  • 本地参数:errorCode
  • 源参数:errorCode[attribute]
  • 类型:字符串
  • 说明:创建虚拟机快照时发现的异常行为

“记录异常”可编辑脚本任务元素会执行以下脚本函数。

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

“设置输出”可编辑脚本任务元素

“设置输出”可编辑脚本任务元素用于生成工作流的输出参数,其中包含已对其创建了快照的虚拟机阵列。下表中显示了“设置输出”可编辑脚本任务元素所需的绑定。

表 11. “设置输出”可编辑脚本任务元素的绑定
参数名称 绑定类型 绑定到现有参数或创建参数? 绑定值
snapshotVmArray 输入 绑定
  • 本地参数:snapshotVmArray
  • 源参数:snapshotVmArray[attribute]
  • 类型:Array/VC:VirtualMachine
  • 说明:已对其创建了快照的虚拟机阵列
snapshotVmArrayOut 输出 绑定
  • 本地参数:snapshotVmArrayOut
  • 源参数:snapshotVmArrayOut[out-parameter]
  • 类型:Array/VC:VirtualMachine
  • 说明:已对其创建了快照的虚拟机阵列。

“设置输出”可编辑脚本任务元素会执行以下脚本函数。

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