Function: Find a vCloud Virtual Data Center Network 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 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.

You may also like