Function: Delete a Load Balancer off an Edge

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 Delete aa Load Balancer off an Edge

Function VclLoadBalancerVirtualServerDelete

public VclLoadBalancerVirtualServerDelete(objVclGateway: VclGateway, strLoadBalancerName: string): void {
    objVclGateway.updateInternalState();

    let objVclGatewayConfiguration: VclGatewayConfiguration = objVclGateway.configuration;

    let objVclGatewayFeatures: VclGatewayFeatures = objVclGatewayConfiguration.edgeGatewayServiceConfiguration;

    let objVclAbstractObjectSet: VclAbstractObjectSet = objVclGatewayFeatures.networkService;

    let arrVclLoadBalancerService: VclLoadBalancerService[] = objVclAbstractObjectSet.find(new VclLoadBalancerService());

    let objVclLoadBalancerService: VclLoadBalancerService = arrVclLoadBalancerService[0];

    this.objLogger.info("Load Balancer Service Enabled ?: " + objVclLoadBalancerService.isEnabled);

    let objVclObjectListVirtualServer: VclObjectList = objVclLoadBalancerService.virtualServer;

    let arrVclLoadBalancerVirtualServer: VclLoadBalancerVirtualServer[] = objVclObjectListVirtualServer.enumerate();

    this.objLogger.info("Before deletion the number of Load Balancer Virtual Servers are: " + objVclObjectListVirtualServer.size());

    let objVclLoadBalancerVirtualServer: VclLoadBalancerVirtualServer = arrVclLoadBalancerVirtualServer.find((objVclLoadBalancerVirtualServer: VclLoadBalancerVirtualServer): boolean => {
        return objVclLoadBalancerVirtualServer.name == strLoadBalancerName + "-VirtualServer";
    });

    this.objLogger.info("A Match was Found for " + objVclLoadBalancerVirtualServer.name + ", this Virtual Server will be deleted.");

    let intVirtualServerIndex: number = objVclObjectListVirtualServer.indexOf(objVclLoadBalancerVirtualServer);

    objVclLoadBalancerService.virtualServer.remove(intVirtualServerIndex);

    this.objLogger.info("After deletion the number of Load Balancer Virtual Servers are: " + objVclLoadBalancerService.virtualServer.size());

    objVclObjectListVirtualServer = objVclLoadBalancerService.virtualServer;

    arrVclLoadBalancerVirtualServer = objVclObjectListVirtualServer.enumerate();

    arrVclLoadBalancerVirtualServer.forEach((objVclLoadBalancerVirtualServer: VclLoadBalancerVirtualServer): void => {

        this.objLogger.info("AFTER DECOM - objVclLoadBalancerVirtualServer.name = " + objVclLoadBalancerVirtualServer.name);

    });

    let objVclObjectListPool: VclObjectList = objVclLoadBalancerService.pool;

    let arrVclLoadBalancerPool: VclLoadBalancerPool[] = objVclObjectListPool.enumerate();

    this.objLogger.info("Before deletion the number of Load Balancer Pools are: " + objVclObjectListPool.size());

    let objVclLoadBalancerPool: VclLoadBalancerPool = arrVclLoadBalancerPool.find((objVclLoadBalancerPool: VclLoadBalancerPool): boolean => {
        return objVclLoadBalancerPool.name == strLoadBalancerName + "-Pool";
    });

    this.objLogger.info("A Match was Found for " + objVclLoadBalancerPool.name + ", this Pool will be deleted.");

    let intPoolIndex: number = objVclObjectListPool.indexOf(objVclLoadBalancerPool);

    objVclLoadBalancerService.pool.remove(intPoolIndex);

    this.objLogger.info("After deletion the number of Load Balancer Pools are: " + objVclLoadBalancerService.pool.size());

    objVclObjectListPool = objVclLoadBalancerService.pool;

    arrVclLoadBalancerPool = objVclObjectListPool.enumerate();

    arrVclLoadBalancerPool.forEach((objVclLoadBalancerPool: VclLoadBalancerPool): void => {

        this.objLogger.info("AFTER DECOM - objVclLoadBalancerPool.name = " + objVclLoadBalancerPool.name);

    });

    let objVclTask: VclTask = objVclGateway.update();

    this.WaitForVclTask(objVclTask, 1);
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like