Orchestrator Function: vCenter Virtual Machine Execute a vMotion with Change of Network

by Simon Sparks · 21 February 2026

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.

You may also like