Function: vCenter Virtual Machine Storage DRS Override Toggle

by Simon Sparks · 10 December 2025

To use this function add it to the class library file named vCenterServerService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: vCenterServerService.ts

Function VcStoragePodStorageDrsOverrideToggle

Description: Orchestrator Function to Enable and Disable Storage DRS Override for a vCenter Virtual Machine

Private Function: VcStoragePodStorageDrsOverrideToggle

private VcStoragePodStorageDrsOverrideToggle(objVcVirtualMachine: VcVirtualMachine, objVcStoragePod: VcStoragePod, blnToggle: boolean = true): void {

    let objVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo = new VcStorageDrsVmConfigInfo();
    objVcStorageDrsVmConfigInfo.vm = objVcVirtualMachine;

    let objVcStorageDrsVmConfigSpec: VcStorageDrsVmConfigSpec = new VcStorageDrsVmConfigSpec();
    objVcStorageDrsVmConfigSpec.operation = VcArrayUpdateOperation.add;
    objVcStorageDrsVmConfigSpec.info = objVcStorageDrsVmConfigInfo;
    
    if (strAction === "Enable") {
        objVcStorageDrsVmConfigInfo.behavior = 'automated';
        objVcStorageDrsVmConfigInfo.enabled = true;
    }

    let arrVcStorageDrsVmConfigSpec: VcStorageDrsVmConfigSpec[] = [];
    arrVcStorageDrsVmConfigSpec.push(objVcStorageDrsVmConfigSpec);

    let objVcStorageDrsConfigSpec: VcStorageDrsConfigSpec = new VcStorageDrsConfigSpec();
    objVcStorageDrsConfigSpec.vmConfigSpec = arrVcStorageDrsVmConfigSpec;

    this.VcStoragePodConfigureDrs(objVcStoragePod, objVcStorageDrsConfigSpec);
}

Private Function: VcStoragePodConfigureDrs

private VcStoragePodConfigureDrs(objVcStoragePod: VcStoragePod, objVcStorageDrsConfigSpec: VcStorageDrsConfigSpec): void {

    let objobjVcSdkConnection: VcSdkConnection = objVcStoragePod.sdkConnection;

    let objVcStorageResourceManager: VcStorageResourceManager = objobjVcSdkConnection.storageResourceManager;

    let objVcTask: VcTask = objVcStorageResourceManager.configureStorageDrsForPod_Task(objVcStoragePod, objVcStorageDrsConfigSpec, true);

    this.WaitForVcTaskEnd(objVcTask, 1);
}

Public Function: VcStoragePodStorageDrsOverrideEnable

public VcStoragePodStorageDrsOverrideEnable(objVcVirtualMachine: VcVirtualMachine, objVcStoragePod: VcStoragePod): void {

    this.VcStoragePodStorageDrsOverrideToggle(objVcVirtualMachine, objVcStoragePod, true);
}

Public Function: VcStoragePodStorageDrsOverrideDisable

public VcStoragePodStorageDrsOverrideDisable(objVcVirtualMachine: VcVirtualMachine, objVcStoragePod: VcStoragePod): void {

    this.VcStoragePodStorageDrsOverrideToggle(objVcVirtualMachine, objVcStoragePod, false);

}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like