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 Configure Storage DRS Anti Affinity for an Array of vCenter Virtual Machines
private StorageDrsConfigure(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);
}Enable Function:
public StorageDrsAntiAffinityEnable(objVcStoragePod: VcStoragePod, strVcClusterAntiAffinityRuleSpecName: string, arrVcVirtualMachine: VcVirtualMachine[]): void {
let objVcClusterAntiAffinityRuleSpec: VcClusterAntiAffinityRuleSpec = new VcClusterAntiAffinityRuleSpec();
objVcClusterAntiAffinityRuleSpec.vm = arrVcVirtualMachine;
objVcClusterAntiAffinityRuleSpec.name = strVcClusterAntiAffinityRuleSpecName;
objVcClusterAntiAffinityRuleSpec.userCreated = true;
objVcClusterAntiAffinityRuleSpec.enabled = true;
let objVcClusterRuleSpec: VcClusterRuleSpec = new VcClusterRuleSpec();
objVcClusterRuleSpec.operation = VcArrayUpdateOperation.add;
objVcClusterRuleSpec.info = objVcClusterAntiAffinityRuleSpec;
let arrVcClusterRuleSpec: VcClusterRuleSpec[] = [];
arrVcClusterRuleSpec.push(objVcClusterRuleSpec);
let objVcStorageDrsPodConfigSpec: VcStorageDrsPodConfigSpec = new VcStorageDrsPodConfigSpec();
objVcStorageDrsPodConfigSpec.rule = arrVcClusterRuleSpec;
let objVcStorageDrsConfigSpec: VcStorageDrsConfigSpec = new VcStorageDrsConfigSpec();
objVcStorageDrsConfigSpec.podConfigSpec = objVcStorageDrsPodConfigSpec;
this.StorageDrsConfigure(objVcStoragePod, objVcStorageDrsConfigSpec);
}Disable Function:
public StorageDrsAntiAffinityDisable(objVcStoragePod: VcStoragePod, intVcClusterRuleSpecKey: number): void {
let objVcClusterRuleSpec: VcClusterRuleSpec = new VcClusterRuleSpec();
objVcClusterRuleSpec.removeKey_IntValue = intVcClusterRuleSpecKey;
objVcClusterRuleSpec.operation = VcArrayUpdateOperation.remove;
let arrVcClusterRuleSpec: VcClusterRuleSpec[] = [];
arrVcClusterRuleSpec.push(objVcClusterRuleSpec);
let objVcStorageDrsPodConfigSpec: VcStorageDrsPodConfigSpec = new VcStorageDrsPodConfigSpec();
objVcStorageDrsPodConfigSpec.rule = arrVcClusterRuleSpec;
var objVcStorageDrsConfigSpec: VcStorageDrsConfigSpec = new VcStorageDrsConfigSpec();
objVcStorageDrsConfigSpec.podConfigSpec = objVcStorageDrsPodConfigSpec;
this.StorageDrsConfigure(objVcStoragePod, objVcStorageDrsConfigSpec);
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
