To use this function add it to the class library file named PluginVCHostSystemService.ts
GitHub Repository: https://github.com/SimonSparksUK/Orchestrator
Filename: PluginVCHostSystemService.ts
Description: Orchestrator Function to Configure vCenter Host System Vmk Interface
Function ConfigureVmkInterface
public ConfigureVmkInterface(objVcClusterComputeResource: VcClusterComputeResource, strVmkNicType: "vsan" | "vMotion" | "vSphereProvisioning" | "faultToleranceLogging" | "vsanWitness" | "vSphereReplication" | "vSphereReplicationNFC" | "vSphereBackupNFC" | "nvmeTcp" | "nvmeRdma", strVmkNic: string = "vmk0", strAction: "Add" | "Remove", intMTU: number = 9000): void {
let arrVcHostSystem: VcHostSystem[] = objVcClusterComputeResource.host;
let objVcHostVirtualNicSpec: VcHostVirtualNicSpec = new VcHostVirtualNicSpec();
objVcHostVirtualNicSpec.mtu = intMTU;
arrVcHostSystem.forEach((objVcHostSystem: VcHostSystem): void => {
let objVcHostConfigManager: VcHostConfigManager = objVcHostSystem.configManager;
let objVcHostNetworkSystem: VcHostNetworkSystem = objVcHostConfigManager.networkSystem;
objVcHostNetworkSystem.updateVirtualNic(strVmkNic, objVcHostVirtualNicSpec);
let objVcHostVirtualNicManager: VcHostVirtualNicManager = objVcHostConfigManager.virtualNicManager;
if (strAction === "Add") {
objVcHostVirtualNicManager.selectVnicForNicType(strVmkNicType, strVmkNic);
} else if (strAction === "Remove") {
objVcHostVirtualNicManager.deselectVnicForNicType(strVmkNicType, strVmkNic);
}
if (strVmkNicType === "vsan") {
let arrVcVsanHostConfigInfoNetworkInfoPortConfig: VcVsanHostConfigInfoNetworkInfoPortConfig[];
if (strAction === "Add") {
let objVcVsanHostConfigInfoNetworkInfoPortConfig: VcVsanHostConfigInfoNetworkInfoPortConfig = new VcVsanHostConfigInfoNetworkInfoPortConfig();
objVcVsanHostConfigInfoNetworkInfoPortConfig.device = strVmkNic;
arrVcVsanHostConfigInfoNetworkInfoPortConfig.push(objVcVsanHostConfigInfoNetworkInfoPortConfig);
} else if (strAction === "Remove") {
arrVcVsanHostConfigInfoNetworkInfoPortConfig = [];
}
let objVcVsanHostConfigInfoNetworkInfo: VcVsanHostConfigInfoNetworkInfo = new VcVsanHostConfigInfoNetworkInfo();
objVcVsanHostConfigInfoNetworkInfo.port = arrVcVsanHostConfigInfoNetworkInfoPortConfig;
let objVcVsanHostConfigInfo: VcVsanHostConfigInfo = new VcVsanHostConfigInfo();
objVcVsanHostConfigInfo.networkInfo = objVcVsanHostConfigInfoNetworkInfo;
let objVcHostVsanSystem: VcHostVsanSystem = objVcHostConfigManager.vsanSystem;
objVcHostVsanSystem.updateVsan_Task(objVcVsanHostConfigInfo);
}
});
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
