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: VcVirtualMachineExportOvfPropertiesToCsv
public VcVirtualMachineExportOvfPropertiesToCsv(@notNull @notEmpty @required arrVcVirtualMachine: VcVirtualMachine[]): string {
let arrLine: string[] = [];
arrLine.push("vmName,ovfKey,value,defaultValue,category,type");
arrVcVirtualMachine.forEach((objVcVirtualMachine: VcVirtualMachine): void => {
let objVcVirtualMachineConfigInfo: VcVirtualMachineConfigInfo = objVcVirtualMachine.config;
let objVcVmConfigInfo: VcVmConfigInfo = objVcVirtualMachineConfigInfo.vAppConfig;
let arrVcVAppPropertyInfo: VcVAppPropertyInfo[] = objVcVmConfigInfo.property;
arrVcVAppPropertyInfo.forEach((objVcVAppPropertyInfo: VcVAppPropertyInfo): void => {
let strOvfKey: string = "";
if (objVcVAppPropertyInfo.classId && objVcVAppPropertyInfo.instanceId) {
strOvfKey = objVcVAppPropertyInfo.classId + "." + objVcVAppPropertyInfo.id + "." + objVcVAppPropertyInfo.instanceId;
} else if (objVcVAppPropertyInfo.classId) {
strOvfKey = objVcVAppPropertyInfo.classId + "." + objVcVAppPropertyInfo.id;
} else {
strOvfKey = objVcVAppPropertyInfo.id;
}
let strValue: string = objVcVAppPropertyInfo.value || "";
let strDefaultValue: string = objVcVAppPropertyInfo.defaultValue || "";
let strCategory: string = objVcVAppPropertyInfo.category || "";
let strType: string = objVcVAppPropertyInfo.type || "";
strValue = strValue.replace(/""/g, "\"");
strOvfKey = Utilities.escapeValuesForCsv(strOvfKey);
strValue = Utilities.escapeValuesForCsv(strValue);
strDefaultValue = Utilities.escapeValuesForCsv(strDefaultValue);
strCategory = Utilities.escapeValuesForCsv(strCategory);
strType = Utilities.escapeValuesForCsv(strType);
arrLine.push(objVcVirtualMachine.name + "," + strOvfKey + "," + strValue + "," + strDefaultValue + "," + strCategory + "," + strType);
});
});
return arrLine.join("\n");
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
