Function: Find a vCloud vApp Template object by Name

by Simon Sparks · 5 September 2025

To use this function add it to the class library file named vCloudService.ts

GitHub Repository: https://github.com/SimonSparksUK/Orchestrator

Filename: vCloudService.ts

Description: Orchestrator Function to find a vCloud vApp Template object

Function VclVAppTemplateFind

public VclVAppTemplateFind(objVclHost: VclHost, strDeployDataCentre: string): VclVAppTemplate[] {
    let objVclExpressionTEMPLATE: VclExpression = new VclExpression(VclQueryVAppTemplateField.NAME, strDeployDataCentre + "-CurrentTemplates*", VclExpressionType.EQUALS);

    let objVclExpressionCATALOG: VclExpression = new VclExpression(VclQueryVAppTemplateField.CATALOGNAME, "Global Master", VclExpressionType.EQUALS);

    let objVclExpressionVDC: VclExpression = new VclExpression(VclQueryVAppTemplateField.VDCNAME, "Catalogs*", VclExpressionType.EQUALS);

    let arrVclExpression: VclExpression[] = [];
    arrVclExpression.push(objVclExpressionTEMPLATE);
    arrVclExpression.push(objVclExpressionCATALOG);
    arrVclExpression.push(objVclExpressionVDC);

    let objVclFilter: VclFilter = new VclFilter(arrVclExpression, VclFilterType.AND);

    let arrVclQueryVAppTemplateField: VclQueryVAppTemplateField[] = [];
    arrVclQueryVAppTemplateField.push(VclQueryVAppTemplateField.NAME);

    let objVclQueryParams: VclQueryParams = new VclQueryParams();
    objVclQueryParams.setFilter(objVclFilter);
    objVclQueryParams.setFields(arrVclQueryVAppTemplateField);

    let objVclQueryService: VclQueryService = objVclHost.getQueryService();

    let objVclAbstractRecordResultSet: VclAbstractRecordResultSet = objVclQueryService.queryRecords(VclQueryRecordType.VAPPTEMPLATE, objVclQueryParams);

    let arrVclVAppTemplate: VclVAppTemplate[] = [];

    if (objVclAbstractRecordResultSet == null) {
        throw "No matching catalogue items found.";
    }
    else {
        let arrVclQueryResultVAppTemplateRecord: VclQueryResultVAppTemplateRecord[] = objVclAbstractRecordResultSet.getRecords(new VclQueryResultVAppTemplateRecord());

        arrVclVAppTemplate = arrVclQueryResultVAppTemplateRecord.map((objVclQueryResultVAppTemplateRecord: VclQueryResultVAppTemplateRecord): VclVAppTemplate => {

            let objVclReference: VclReference = new VclReference();
            objVclReference.href = objVclQueryResultVAppTemplateRecord.href;
            objVclReference.name = objVclQueryResultVAppTemplateRecord.name;

            let objVclVAppTemplate: VclVAppTemplate = objVclHost.getEntityByReference("VAPP_TEMPLATE", objVclReference);

            return objVclVAppTemplate;
        });
    }

    return arrVclVAppTemplate;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like