바인딩은 간단한 워크플로 예제의 작업 요소가 입력 및 출력 매개 변수를 처리하는 방법을 정의합니다.

리소스 풀에 있는 모든 가상 시스템의 스냅샷 생성 워크플로에는 다음과 같은 입력 및 출력 매개 변수 바인딩이 필요합니다. 또한 스크립팅 가능한 작업 요소에 대한 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();

처리할 VM? 의사 결정 요소

처리할 VM? 의사 결정 요소는 스냅샷을 생성할 가상 시스템이 리소스 풀에 있는지 여부를 결정합니다. 다음 표에는 처리할 VM? 의사 결정 요소에 필요한 바인딩을 보여 줍니다.

표 2. 바인딩 - 처리할 VM? 의사 결정 요소

매개 변수 이름

바인딩 유형

기존 매개 변수에 바인딩 또는 매개 변수 생성?

바인딩 값

numberOfVMs

의사 결정

바인딩

  • 소스 매개 변수: numberOfVMs[attribute]

  • 의사 결정 문: Greater than

  • 값: 0.0

  • 설명: 리소스 풀에 있는 가상 시스템 수

풀에 VM 없음 스크립팅 가능한 작업 요소

풀에 VM 없음 스크립팅 가능한 작업 요소는 리소스 풀에 Orchestrator 데이터베이스의 적합한 가상 시스템이 없다는 사실을 로깅합니다. 다음 표에서는 풀에 VM 없음 스크립팅 가능한 작업 요소에 필요한 바인딩을 보여 줍니다.

표 3. 바인딩 - 풀에 VM 없음 스크립팅 가능한 작업 요소

매개 변수 이름

바인딩 유형

기존 매개 변수에 바인딩 또는 매개 변수 생성?

바인딩 값

resourcePool

입력

바인딩

  • 로컬 매개 변수: resourcePool

  • 소스 매개 변수: resourcePool[in-parameter]

  • 유형: VC:ResourcePool

  • 설명: 스냅샷을 생성할 가상 시스템이 포함된 리소스 풀

풀에 VM 없음 스크립팅 가능한 작업 요소는 다음과 같은 스크립팅된 함수를 수행합니다.

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

남은 VM? 사용자 지정 의사 결정 요소

남은 VM? 사용자 지정 의사 결정 요소는 스냅샷을 생성할 가상 시스템이 리소스 풀에 남아 있는지 여부를 결정합니다. 다음 표에서는 남은 VM? 사용자 지정 의사 결정 요소에 필요한 바인딩을 보여 줍니다.

표 4. 바인딩 - 남은 VM? 사용자 지정 의사 결정 요소

매개 변수 이름

바인딩 유형

기존 매개 변수에 바인딩 또는 매개 변수 생성?

바인딩 값

numberOfVMs

입력

바인딩

  • 소스 매개 변수: numberOfVMs[attribute]

  • 의사 결정 문: Greater than

  • 값: 0.0

  • 설명: 리소스 풀에 있는 가상 시스템 수

vmCounter

입력

바인딩

  • 로컬 매개 변수: vmCounter

  • 소스 매개 변수: vmCounter[attribute]

  • 유형: 숫자

  • 설명: 어레이 내의 가상 시스템 카운터

남은 VM? 사용자 지정 의사 결정 요소는 다음과 같은 스크립팅된 함수를 수행합니다.

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

VM 스냅샷 스크립팅 가능한 작업 요소

VM 스냅샷 스크립팅 가능한 작업 요소는 어레이에 스냅샷을 추가합니다. 다음 표에서는 VM 스냅샷 스크립팅 가능한 작업 요소에 필요한 바인딩을 보여 줍니다.

표 8. 바인딩 - VM 스냅샷 스크립팅 가능한 작업 요소

매개 변수 이름

바인딩 유형

기존 매개 변수에 바인딩 또는 매개 변수 생성?

바인딩 값

vm

입력

바인딩

  • 로컬 매개 변수: vm

  • 소스 매개 변수: vm[attribute]

  • 유형: VC:VirtualMachine

  • 설명: 스냅샷을 생성할 활성 가상 시스템

snapshotVmArray

입력

바인딩

  • 로컬 매개 변수: snapshotVmArray

  • 소스 매개 변수: snapshotVmArray[attribute]

  • 유형: Array/VC:VirtualMachine

  • 설명: 스냅샷을 생성한 가상 시스템의 어레이

snapshotVmArray

출력

바인딩

  • 로컬 매개 변수: snapshotVmArray

  • 소스 매개 변수: snapshotVmArray[attribute]

  • 유형: Array/VC:VirtualMachine

  • 설명: 스냅샷을 생성한 가상 시스템의 어레이

VM 스냅샷 스크립팅 가능한 작업 요소는 다음과 같은 스크립팅된 함수를 수행합니다.

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