To use this function add it to the class library file named OrchestratorService.ts
GitHub Repository: https://github.com/SimonSparksUK/Orchestrator
Filename: OrchestratorService.ts
Description: Orchestrator Function to Filter vSphere Update Manager Host Baselines
Private Function: filterBaselines
private filterBaselines(arrVumBaseline: VumBaseline[], strMaxVersion: string, strType: "Extension" | "Patch" | "Upgrade"): string[] {
let intCurrentVersion: number = parseInt(strMaxVersion.split('.')[0]);
let intNextVersion: number = intCurrentVersion + 1;
let objRegExp: RegExp = strType !== "Upgrade" ? new RegExp(`^ESXI_${strMaxVersion}`) : new RegExp(`^ESXI_`);
let arrVumBaselineFiltered: VumBaseline[] = arrVumBaseline.filter((objVumBaseline: VumBaseline): boolean => {
return objRegExp.test(objVumBaseline.name) && objVumBaseline.baselineType == strType;
});
let arrMapped: string[] = arrVumBaselineFiltered.map((objVumBaseline: VumBaseline): string => {
return objVumBaseline.name;
});
if (strType === "Upgrade") {
let isThereMajorUpgrade: boolean = arrMapped.some((strName: string): boolean => strName.indexOf(`ESXI_${intNextVersion.toString()}.x`) !== -1);
return arrMapped.filter((strName: string): boolean => isThereMajorUpgrade ? strName.indexOf(`ESXI_${intNextVersion.toString()}.x`) !== -1 : strName.indexOf(`ESXI_${intCurrentVersion.toString()}.x`) !== -1);
}
return arrMapped;
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
