Orchestrator Function: Find a vCloud vApp Template object by Name

by Simon Sparks · 5 September 2013

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

publicVclVAppTemplateFind(objVclHost:VclHost,strDeployDataCentre:string):VclVAppTemplate[]{
letobjVclExpressionTEMPLATE: VclExpression=newVclExpression(VclQueryVAppTemplateField.NAME,strDeployDataCentre+"-CurrentTemplates*",VclExpressionType.EQUALS);

letobjVclExpressionCATALOG: VclExpression=newVclExpression(VclQueryVAppTemplateField.CATALOGNAME,"Global Master",VclExpressionType.EQUALS);

letobjVclExpressionVDC: VclExpression=newVclExpression(VclQueryVAppTemplateField.VDCNAME,"Catalogs*",VclExpressionType.EQUALS);

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

letobjVclFilter: VclFilter=newVclFilter(arrVclExpression,VclFilterType.AND);

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

letobjVclQueryParams: VclQueryParams=newVclQueryParams();
objVclQueryParams.setFilter(objVclFilter);
objVclQueryParams.setFields(arrVclQueryVAppTemplateField);

letobjVclQueryService: VclQueryService=objVclHost.getQueryService();

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

letarrVclVAppTemplate: VclVAppTemplate[]= [];

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

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

letobjVclReference: VclReference=newVclReference();
objVclReference.href=objVclQueryResultVAppTemplateRecord.href;
objVclReference.name=objVclQueryResultVAppTemplateRecord.name;

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

returnobjVclVAppTemplate;
});
}

returnarrVclVAppTemplate;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like