Function: vCenter Virtual Machine Storage DRS Anti Affinity Get All and Get by Name

by Simon Sparks · 25 January 2026

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

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

Filename: vCenterServerService.ts

Description: Orchestrator Function to Get Storage DRS Settings for a vCenter Virtual Machine

Function StorageDrsAntiAffinityGetAll

private StorageDrsAntiAffinityGetAll(objVcStoragePod: VcStoragePod): VcStorageDrsVmConfigInfo[] {

    let objVcPodStorageDrsEntry: VcPodStorageDrsEntry = objVcStoragePod.podStorageDrsEntry;

    let objVcStorageDrsConfigInfo: VcStorageDrsConfigInfo = objVcPodStorageDrsEntry.storageDrsConfig;

    let arrVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo[] = objVcStorageDrsConfigInfo.vmConfig;

    return arrVcStorageDrsVmConfigInfo;
}

Function: StorageDrsAntiAffinityGetByStatus

public StorageDrsAntiAffinityGetByStatus(objVcStoragePod: VcStoragePod, blnEnabled: boolean = true): VcStorageDrsVmConfigInfo[] {

    let arrVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo[] = this.StorageDrsAntiAffinityGetAll(objVcStoragePod);

    arrVcStorageDrsVmConfigInfo = arrVcStorageDrsVmConfigInfo.filter((objVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo): boolean => {
        return objVcStorageDrsVmConfigInfo.enabled = blnEnabled;
    });

    return arrVcStorageDrsVmConfigInfo;
}

Function: StorageDrsAntiAffinityGet

public StorageDrsAntiAffinityGet(objVcStoragePod: VcStoragePod, strVcClusterAntiAffinityRuleSpecName: string): VcStorageDrsVmConfigInfo {

    let arrVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo[] = this.StorageDrsAntiAffinityGetAll(objVcStoragePod)

    let objVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo = arrVcStorageDrsVmConfigInfo.find((objVcStorageDrsVmConfigInfo: VcStorageDrsVmConfigInfo): boolean => {

        let objVcVirtualDiskAntiAffinityRuleSpec: VcVirtualDiskAntiAffinityRuleSpec = objVcStorageDrsVmConfigInfo.intraVmAntiAffinity;

        objVcStorageDrsVmConfigInfo.intraVmAffinityDisks

        return objVcVirtualDiskAntiAffinityRuleSpec.name === strVcClusterAntiAffinityRuleSpecName;
    });

    return objVcStorageDrsVmConfigInfo;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like