Function: vCenter VAPI Plugin Check if Tag Exists in All vCenters

by Simon Sparks · 13 January 2026

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

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

Filename: vCenterVAPIService.ts

Type vCenterServer

type vCenterServer = {
    Name: string;
    Environment: Environment;
    vCenterType: vCenterType;
    Location: ServerLocation;
    Priority: ServerPriority;
    Secret: string;
    vCenterAssociation: string[];
};

enum vCenterType {
  Management = "Management",
  Workload = "Workload"
}

enum ServerLocation {
  SiteEast = "Site East",
  SiteWest = "Site West",
  SiteStretched = "Site Stretched"
}

enum ServerPriority {
  Primary = "Primary",
  Secondary = "Secondary"
}

Function isTagExistsInAllVCenterServers

Explanation: arrVCenterServers is an array of the type vCneterServer and it contains a static list of all vCenters and is maintained in the Constants.ts file of the project so that it can be used by any function that needs it.

    public isTagExistsInAllVCenterServers(strTagName: string, strTagCategoryName: string): boolean {
        let blnResult: boolean = true;

        this.objLogger.info(`Start - Checking if Tag '${strTagName}' exists in all vCenter Servers`);

        this.arrVCenterServers.forEach((objVCenterServer: vCenterServer): void => {
            let strVCenterServerName: string = objVCenterServer.Name;

            let objVAPIClient: VAPIClient;

            try {
                let objVAPIEndpoint: VAPIEndpoint = VAPIManager.findEndpoint(`https://${strVCenterServerName}/api`);

                objVAPIClient = objVAPIEndpoint.client(null, null);

                let strTagCategoryID: string = this.findTagCategoryIDByName(objVAPIClient, strTagCategoryName);

                this.objLogger.info(`===== vCenter Server = '${strVCenterServerName}' for Tag Category Name = '${strTagCategoryName}' - Checking`);

                if (strTagCategoryID) {
                    this.objLogger.info(`===== vCenter Server = '${strVCenterServerName}' for Tag Category Name = '${strTagCategoryName}' - Found`);

                    let strTagID: string = this.findTagIDByNameFromSpecificCategoryID(objVAPIClient, strTagName, strTagCategoryID);

                    if (strTagID) {
                        this.objLogger.info(`===== vCenter Server = '${strVCenterServerName}' for Tag Category Name '${strTagCategoryName}' and Tag Name '${strTagName}' - Found.`);
                    } else {
                        blnResult = false;

                        this.objLogger.warn(`===== vCenter Server = '${strVCenterServerName}' for Tag Category Name = '${strTagCategoryName}' and Tag Name '${strTagName}' - Not Found.`);
                    }
                }
                else {
                    blnResult = false;

                    this.objLogger.warn(`===== vCenter Server = '${strVCenterServerName}' for Tag Category Name = '${strTagCategoryName}' - Not Found`);
                }
            } catch (objException) {
                blnResult = false;

                this.objLogger.info(`End - Checking if Tag '${strTagName}' exists in all vCenter Servers failed`);
            } finally {
                objVAPIClient.close();

                this.objLogger.info(`End - Checking if Tag '${strTagName}' exists in all vCenter Servers completed with result ${blnResult}.`);
            }
        });

        return blnResult;
    }

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like