To use this function add it to the class library file named PluginVCVirtualMachineService.ts
GitHub Repository: https://github.com/SimonSparksUK/Orchestrator
Filename: PluginVCVirtualMachineService.ts
Description: Orchestrator Function to execute a vMotion operation including a change of Network.
Private Function: ComputeVMotionWithNetworkChange
publicComputeVMotionWithNetworkChange(objVcVirtualMachine:VcVirtualMachine,objVcHostSystem:VcHostSystem,objVcResourcePool:VcResourcePool,objVcDistributedVirtualPortgroup:VcDistributedVirtualPortgroup):void{
letobjVcDVPortgroupConfigInfo:VcDVPortgroupConfigInfo=objVcDistributedVirtualPortgroup.config;
letobjVcDistributedVirtualSwitch:VcDistributedVirtualSwitch=objVcDVPortgroupConfigInfo.distributedVirtualSwitch;
letobjVcDistributedVirtualSwitchPortConnection:VcDistributedVirtualSwitchPortConnection=newVcDistributedVirtualSwitchPortConnection();
objVcDistributedVirtualSwitchPortConnection.switchUuid=objVcDistributedVirtualSwitch.uuid;
objVcDistributedVirtualSwitchPortConnection.portgroupKey=objVcDistributedVirtualPortgroup.key;
letobjVcVirtualEthernetCardDistributedVirtualPortBackingInfo:VcVirtualEthernetCardDistributedVirtualPortBackingInfo=newVcVirtualEthernetCardDistributedVirtualPortBackingInfo();
objVcVirtualEthernetCardDistributedVirtualPortBackingInfo.port=objVcDistributedVirtualSwitchPortConnection;
letarrVcVirtualNetwork: (VcVirtualE1000|VcVirtualE1000e|VcVirtualPCNet32|VcVirtualVmxnet|VcVirtualVmxnet2|VcVirtualVmxnet3|VcVirtualSriovEthernetCard)[]=this.GetAllVcVirtualNetworkCards(objVcVirtualMachine);
letarrVcVirtualDeviceConfigSpec:VcVirtualDeviceConfigSpec[]=arrVcVirtualNetwork.map((objVcVirtualNetworkAdapter: (VcVirtualE1000|VcVirtualE1000e|VcVirtualPCNet32|VcVirtualVmxnet|VcVirtualVmxnet2|VcVirtualVmxnet3|VcVirtualSriovEthernetCard)):VcVirtualDeviceConfigSpec=>{
objVcVirtualNetworkAdapter.backing=objVcVirtualEthernetCardDistributedVirtualPortBackingInfo;
letobjVcVirtualDeviceConfigSpec:VcVirtualDeviceConfigSpec=newVcVirtualDeviceConfigSpec();
objVcVirtualDeviceConfigSpec.operation=VcVirtualDeviceConfigSpecOperation.edit;
objVcVirtualDeviceConfigSpec.device=objVcVirtualNetworkAdapter;
returnobjVcVirtualDeviceConfigSpec;
});
letobjVcVirtualMachineRelocateSpec:VcVirtualMachineRelocateSpec=newVcVirtualMachineRelocateSpec();
objVcVirtualMachineRelocateSpec.host=objVcHostSystem;
objVcVirtualMachineRelocateSpec.pool=objVcResourcePool;
objVcVirtualMachineRelocateSpec.deviceChange=arrVcVirtualDeviceConfigSpec;
letobjVcTask:VcTask=objVcVirtualMachine.relocateVM_Task(objVcVirtualMachineRelocateSpec,VcVirtualMachineMovePriority["highPriority"]);
this.WaitForVcTaskEnd(objVcTask,1);
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
