Orchestrator Function: vCenter Virtual Machine Export Ovf Properties To Csv

by Simon Sparks · January 13, 2026

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.

You may also like