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
privateStorageDrsConfigure(objVcStoragePod:VcStoragePod,objVcStorageDrsConfigSpec:VcStorageDrsConfigSpec):void{
letobjobjVcSdkConnection:VcSdkConnection=objVcStoragePod.sdkConnection;
letobjVcStorageResourceManager:VcStorageResourceManager=objobjVcSdkConnection.storageResourceManager;
letobjVcTask:VcTask=objVcStorageResourceManager.configureStorageDrsForPod_Task(objVcStoragePod,objVcStorageDrsConfigSpec,true);
this.WaitForVcTaskEnd(objVcTask,1);
}Enable Function:
publicStorageDrsAntiAffinityEnable(objVcStoragePod:VcStoragePod,strVcClusterAntiAffinityRuleSpecName:string,arrVcVirtualMachine:VcVirtualMachine[]):void{
letobjVcClusterAntiAffinityRuleSpec:VcClusterAntiAffinityRuleSpec=newVcClusterAntiAffinityRuleSpec();
objVcClusterAntiAffinityRuleSpec.vm=arrVcVirtualMachine;
objVcClusterAntiAffinityRuleSpec.name=strVcClusterAntiAffinityRuleSpecName;
objVcClusterAntiAffinityRuleSpec.userCreated=true;
objVcClusterAntiAffinityRuleSpec.enabled=true;
letobjVcClusterRuleSpec:VcClusterRuleSpec=newVcClusterRuleSpec();
objVcClusterRuleSpec.operation=VcArrayUpdateOperation.add;
objVcClusterRuleSpec.info=objVcClusterAntiAffinityRuleSpec;
letarrVcClusterRuleSpec:VcClusterRuleSpec[]= [];
arrVcClusterRuleSpec.push(objVcClusterRuleSpec);
letobjVcStorageDrsPodConfigSpec:VcStorageDrsPodConfigSpec=newVcStorageDrsPodConfigSpec();
objVcStorageDrsPodConfigSpec.rule=arrVcClusterRuleSpec;
letobjVcStorageDrsConfigSpec:VcStorageDrsConfigSpec=newVcStorageDrsConfigSpec();
objVcStorageDrsConfigSpec.podConfigSpec=objVcStorageDrsPodConfigSpec;
this.StorageDrsConfigure(objVcStoragePod,objVcStorageDrsConfigSpec);
}Disable Function:
publicStorageDrsAntiAffinityDisable(objVcStoragePod:VcStoragePod,intVcClusterRuleSpecKey:number):void{
letobjVcClusterRuleSpec:VcClusterRuleSpec=newVcClusterRuleSpec();
objVcClusterRuleSpec.removeKey_IntValue=intVcClusterRuleSpecKey;
objVcClusterRuleSpec.operation=VcArrayUpdateOperation.remove;
letarrVcClusterRuleSpec:VcClusterRuleSpec[]= [];
arrVcClusterRuleSpec.push(objVcClusterRuleSpec);
letobjVcStorageDrsPodConfigSpec:VcStorageDrsPodConfigSpec=newVcStorageDrsPodConfigSpec();
objVcStorageDrsPodConfigSpec.rule=arrVcClusterRuleSpec;
varobjVcStorageDrsConfigSpec:VcStorageDrsConfigSpec=newVcStorageDrsConfigSpec();
objVcStorageDrsConfigSpec.podConfigSpec=objVcStorageDrsPodConfigSpec;
this.StorageDrsConfigure(objVcStoragePod,objVcStorageDrsConfigSpec);
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
