Orchestrator Function: Find a vCloud Virtual Data Center Network 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 virtual data center and virtual data center network object by name

Function: VclOrgVdcNetworkGet

publicVclOrgVdcNetworkGet(objVclHost:VclHost,strVclOrgVdcNetworkName:string,strVclAdminVdcName:string):VclOrgVdcNetwork{
letobjVclExpression1: VclExpression=newVclExpression(VclQueryAdminVdcField.NAME,strVclAdminVdcName,VclExpressionType.EQUALS);

letobjVclExpression2: VclExpression=newVclExpression(VclQueryAdminVdcField.ISENABLED,"true",VclExpressionType.EQUALS);

letobjVclExpression3: VclExpression=newVclExpression(VclQueryAdminVdcField.ISSYSTEMVDC,"false",VclExpressionType.EQUALS);

letarrVclExpression: VclExpression[]= [];
arrVclExpression.push(objVclExpression1);
arrVclExpression.push(objVclExpression2);
arrVclExpression.push(objVclExpression3);

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

letarrVclQueryOrgVdcField: VclQueryOrgVdcField[]= [];
arrVclQueryOrgVdcField.push(VclQueryOrgVdcField.NAME);

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

letobjVclQueryService: VclQueryService=objVclHost.getQueryService();

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

letobjVclOrgVdcNetwork: VclOrgVdcNetwork=null;

if (objVclAbstractRecordResultSet==null){
throw"No matching Organisational Virtual Data Center found.";
}
elseif (objVclAbstractRecordResultSet.getTotal()==0){
throw"No matching Organisational Virtual Data Center found.";
}
else{
letarrVclQueryResultAdminVdcRecord: VclQueryResultAdminVdcRecord[]=objVclAbstractRecordResultSet.getRecords(newVclQueryResultAdminVdcRecord());

arrVclQueryResultAdminVdcRecord.forEach((objVclQueryResultAdminVdcRecord: VclQueryResultAdminVdcRecord):void=>{

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

letobjVclAdminVdc: VclAdminVdc=objVclHost.getEntityByReference("ADMIN_VDC",objVclReference);

letobjVclVdc: VclVdc=objVclAdminVdc.toUserObject();

if (objVclVdc==null){
throw"No matching department Organisational Virtual Data Center found.";
}
else{
letarrVclOrgVdcNetwork: VclOrgVdcNetwork[]=objVclVdc.getOrgVdcNetworks();

objVclOrgVdcNetwork=arrVclOrgVdcNetwork.find((objVclOrgVdcNetwork: VclOrgVdcNetwork):boolean=>{

returnobjVclOrgVdcNetwork.name===strVclOrgVdcNetworkName

});

if (objVclOrgVdcNetwork==null){
throw"Could not find an Organisational Virtual Data Center Network";
}
}
});
}

returnobjVclOrgVdcNetwork;
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like