Function: vCenter Virtual Machine Relocate

by Simon Sparks · 5 January 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 Relocate vCenter Virtual Machine operation.

Public Function: Relocate

public Relocate(objVcVirtualMachine: VcVirtualMachine, objVcDatastore: VcDatastore, objVcResourcePool: VcResourcePool, objVcHostSystem: VcHostSystem, objVcFolder: VcFolder, arrVcVirtualDeviceConfigSpec: VcVirtualDeviceConfigSpec[], objVcServiceLocator: VcServiceLocator): boolean {
    let objVcVirtualMachineRelocateSpec: VcVirtualMachineRelocateSpec = new VcVirtualMachineRelocateSpec();
    objVcVirtualMachineRelocateSpec.datastore = objVcDatastore;
    objVcVirtualMachineRelocateSpec.pool = objVcResourcePool;
    objVcVirtualMachineRelocateSpec.host = objVcHostSystem;
    objVcVirtualMachineRelocateSpec.folder = objVcFolder;
    objVcVirtualMachineRelocateSpec.deviceChange = arrVcVirtualDeviceConfigSpec;
    objVcVirtualMachineRelocateSpec.service = objVcServiceLocator;

    let objVcVirtualMachineMovePriority: VcVirtualMachineMovePriority = VcVirtualMachineMovePriority["highPriority"];

    try {
        Locking.lock(`${objVcVirtualMachine.name}-Modification`);

        let objVcTask: VcTask = objVcVirtualMachine.relocateVM_Task(objVcVirtualMachineRelocateSpec, objVcVirtualMachineMovePriority);

        this.WaitForVcTaskEnd(objVcTask, 15);

        Locking.unlock(`${objVcVirtualMachine.name}-Modification`);

        return true;
    }
    catch (objException) {
        Utilities.logException(objException, this.objLogger, "VcVirtualMachineRelocate");

        Locking.unlock(`${objVcVirtualMachine.name}-Modification`);

        return false;
    }
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like