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
public ComputeVMotionWithNetworkChange(objVcVirtualMachine: VcVirtualMachine, objVcHostSystem: VcHostSystem, objVcResourcePool: VcResourcePool, objVcDistributedVirtualPortgroup: VcDistributedVirtualPortgroup): void {
let objVcDVPortgroupConfigInfo: VcDVPortgroupConfigInfo = objVcDistributedVirtualPortgroup.config;
let objVcDistributedVirtualSwitch: VcDistributedVirtualSwitch = objVcDVPortgroupConfigInfo.distributedVirtualSwitch;
let objVcDistributedVirtualSwitchPortConnection: VcDistributedVirtualSwitchPortConnection = new VcDistributedVirtualSwitchPortConnection();
objVcDistributedVirtualSwitchPortConnection.switchUuid = objVcDistributedVirtualSwitch.uuid;
objVcDistributedVirtualSwitchPortConnection.portgroupKey = objVcDistributedVirtualPortgroup.key;
let objVcVirtualEthernetCardDistributedVirtualPortBackingInfo: VcVirtualEthernetCardDistributedVirtualPortBackingInfo = new VcVirtualEthernetCardDistributedVirtualPortBackingInfo();
objVcVirtualEthernetCardDistributedVirtualPortBackingInfo.port = objVcDistributedVirtualSwitchPortConnection;
let arrVcVirtualNetwork: (VcVirtualE1000 | VcVirtualE1000e | VcVirtualPCNet32 | VcVirtualVmxnet | VcVirtualVmxnet2 | VcVirtualVmxnet3 | VcVirtualSriovEthernetCard)[] = this.GetAllVcVirtualNetworkCards(objVcVirtualMachine);
let arrVcVirtualDeviceConfigSpec: VcVirtualDeviceConfigSpec[] = arrVcVirtualNetwork.map((objVcVirtualNetworkAdapter: (VcVirtualE1000 | VcVirtualE1000e | VcVirtualPCNet32 | VcVirtualVmxnet | VcVirtualVmxnet2 | VcVirtualVmxnet3 | VcVirtualSriovEthernetCard)): VcVirtualDeviceConfigSpec => {
objVcVirtualNetworkAdapter.backing = objVcVirtualEthernetCardDistributedVirtualPortBackingInfo;
let objVcVirtualDeviceConfigSpec: VcVirtualDeviceConfigSpec = new VcVirtualDeviceConfigSpec();
objVcVirtualDeviceConfigSpec.operation = VcVirtualDeviceConfigSpecOperation.edit;
objVcVirtualDeviceConfigSpec.device = objVcVirtualNetworkAdapter;
return objVcVirtualDeviceConfigSpec;
});
let objVcVirtualMachineRelocateSpec: VcVirtualMachineRelocateSpec = new VcVirtualMachineRelocateSpec();
objVcVirtualMachineRelocateSpec.host = objVcHostSystem;
objVcVirtualMachineRelocateSpec.pool = objVcResourcePool;
objVcVirtualMachineRelocateSpec.deviceChange = arrVcVirtualDeviceConfigSpec;
let objVcTask: 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.
