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: VcVirtualMachineSetBootOrder
public VcVirtualMachineSetBootOrder(objVcVirtualMachine: VcVirtualMachine, enumBootOrder: BootOrder): boolean {
this.objLogger.info(`setBootOrder on ${objVcVirtualMachine.name}`);
let arrVcVirtualDevice: VcVirtualDevice[] = this.VcVirtualMachineGetAllVcVirtualDevices(objVcVirtualMachine);
let arrVcVirtualDisk: VcVirtualDisk[] = arrVcVirtualDevice.filter((objVcVirtualDevice: VcVirtualDevice) => { return objVcVirtualDevice instanceof VcVirtualDisk; }) as VcVirtualDisk[];
let arrVcVirtualDiskKey: number[] = arrVcVirtualDisk.map<number>((objVcVirtualDisk: VcVirtualDisk) => { return objVcVirtualDisk.key; });
let arrVcVirtualVmxnet3: VcVirtualVmxnet3[] = arrVcVirtualDevice.filter((objVcVirtualDevice: VcVirtualDevice) => { return objVcVirtualDevice instanceof VcVirtualVmxnet3; }) as VcVirtualVmxnet3[];
let arrVcVirtualVmxnet3Key: number[] = arrVcVirtualVmxnet3.map<number>((objVcVirtualVmxnet3: VcVirtualVmxnet3) => { return objVcVirtualVmxnet3.key; });
let objVcVirtualMachineBootOptionsBootableEthernetDevice: VcVirtualMachineBootOptionsBootableEthernetDevice = new VcVirtualMachineBootOptionsBootableEthernetDevice();
objVcVirtualMachineBootOptionsBootableEthernetDevice.deviceKey = arrVcVirtualVmxnet3Key[0];
let objVcVirtualMachineBootOptionsBootableDiskDevice: VcVirtualMachineBootOptionsBootableDiskDevice = new VcVirtualMachineBootOptionsBootableDiskDevice();
objVcVirtualMachineBootOptionsBootableDiskDevice.deviceKey = arrVcVirtualDiskKey[0];
let objVcVirtualMachineBootOptionsBootableCdromDevice: VcVirtualMachineBootOptionsBootableCdromDevice = new VcVirtualMachineBootOptionsBootableCdromDevice();
let arrVcVirtualMachineBootOptionsBootableDevice: VcVirtualMachineBootOptionsBootableDevice[] = [];
switch (enumBootOrder) {
case BootOrder.HDD: {
arrVcVirtualMachineBootOptionsBootableDevice = [objVcVirtualMachineBootOptionsBootableDiskDevice, objVcVirtualMachineBootOptionsBootableCdromDevice, objVcVirtualMachineBootOptionsBootableEthernetDevice];
break;
}
case BootOrder.ISO: {
arrVcVirtualMachineBootOptionsBootableDevice = [objVcVirtualMachineBootOptionsBootableCdromDevice, objVcVirtualMachineBootOptionsBootableDiskDevice, objVcVirtualMachineBootOptionsBootableEthernetDevice];
break;
}
case BootOrder.NET: {
break;
}
}
this.objLogger.info(`Setting boot order to ${enumBootOrder.toString()} first.`);
let objVcVirtualMachineBootOptions: VcVirtualMachineBootOptions = new VcVirtualMachineBootOptions();
objVcVirtualMachineBootOptions.bootOrder = arrVcVirtualMachineBootOptionsBootableDevice;
objVcVirtualMachineBootOptions;
let objVcVirtualMachineConfigSpec: VcVirtualMachineConfigSpec = new VcVirtualMachineConfigSpec();
objVcVirtualMachineConfigSpec.bootOptions = objVcVirtualMachineBootOptions;
let blnResult: boolean = this.VcVirtualMachineReconfigure(objVcVirtualMachine, objVcVirtualMachineConfigSpec);
return blnResult;
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
