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
public VclOrgVdcNetworkGet(objVclHost: VclHost, strVclOrgVdcNetworkName: string, strVclAdminVdcName: string): VclOrgVdcNetwork {
let objVclExpression1: VclExpression = new VclExpression(VclQueryAdminVdcField.NAME, strVclAdminVdcName, VclExpressionType.EQUALS);
let objVclExpression2: VclExpression = new VclExpression(VclQueryAdminVdcField.ISENABLED, "true", VclExpressionType.EQUALS);
let objVclExpression3: VclExpression = new VclExpression(VclQueryAdminVdcField.ISSYSTEMVDC, "false", VclExpressionType.EQUALS);
let arrVclExpression: VclExpression[] = [];
arrVclExpression.push(objVclExpression1);
arrVclExpression.push(objVclExpression2);
arrVclExpression.push(objVclExpression3);
let objVclFilter: VclFilter = new VclFilter(arrVclExpression, VclFilterType.AND);
let arrVclQueryOrgVdcField: VclQueryOrgVdcField[] = [];
arrVclQueryOrgVdcField.push(VclQueryOrgVdcField.NAME);
let objVclQueryParams: VclQueryParams = new VclQueryParams();
objVclQueryParams.setFilter(objVclFilter);
objVclQueryParams.setFields(arrVclQueryOrgVdcField);
let objVclQueryService: VclQueryService = objVclHost.getQueryService();
let objVclAbstractRecordResultSet: VclAbstractRecordResultSet = objVclQueryService.queryRecords(VclQueryRecordType.ADMINORGVDC, objVclQueryParams);
let objVclOrgVdcNetwork: VclOrgVdcNetwork = null;
if (objVclAbstractRecordResultSet == null) {
throw "No matching Organisational Virtual Data Center found.";
}
else if (objVclAbstractRecordResultSet.getTotal() == 0) {
throw "No matching Organisational Virtual Data Center found.";
}
else {
let arrVclQueryResultAdminVdcRecord: VclQueryResultAdminVdcRecord[] = objVclAbstractRecordResultSet.getRecords(new VclQueryResultAdminVdcRecord());
arrVclQueryResultAdminVdcRecord.forEach((objVclQueryResultAdminVdcRecord: VclQueryResultAdminVdcRecord): void => {
let objVclReference: VclReference = new VclReference();
objVclReference.href = objVclQueryResultAdminVdcRecord.href;
objVclReference.name = objVclQueryResultAdminVdcRecord.name;
let objVclAdminVdc: VclAdminVdc = objVclHost.getEntityByReference("ADMIN_VDC", objVclReference);
let objVclVdc: VclVdc = objVclAdminVdc.toUserObject();
if (objVclVdc == null) {
throw "No matching department Organisational Virtual Data Center found.";
}
else {
let arrVclOrgVdcNetwork: VclOrgVdcNetwork[] = objVclVdc.getOrgVdcNetworks();
objVclOrgVdcNetwork = arrVclOrgVdcNetwork.find((objVclOrgVdcNetwork: VclOrgVdcNetwork): boolean => {
return objVclOrgVdcNetwork.name === strVclOrgVdcNetworkName
});
if (objVclOrgVdcNetwork == null) {
throw "Could not find an Organisational Virtual Data Center Network";
}
}
});
}
return objVclOrgVdcNetwork;
}Discover more from Cloud Build Tools
Subscribe to get the latest posts sent to your email.
