Orchestrator Function: AVI Virtual Service Delete

by Simon Sparks · 11 March 2026

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

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

Filename: PluginAVIService.ts

Description: Orchestrator Function to Delete an AVI Virtual Service.

Private Function: AviVirtualServiceDelete

publicAviVirtualServiceDelete(objAviVirtualService:AviVirtualService,strTenant:string="admin"):void{

letstrAviObjectUrl:string=objAviVirtualService.getUrl();

letobjAviVroClient:AviVroClient=this.AviVroClientGetByAviObjectUrl(strAviObjectUrl);

objAviVroClient.deleteObject(objAviVirtualService,strTenant);

letstrVsvipRef:string=objAviVirtualService.getVsvipRef();

if (strVsvipRef!=null){
letstrVsvipUUID:string=strVsvipRef.substring(strVsvipRef.indexOf("vsvip-"),strVsvipRef.indexOf('#'));

objAviVroClient.deleteObjectByUUID("vsvip",strVsvipUUID,strTenant);
}

letstrPoolRef:string=objAviVirtualService.getPoolRef();

if (strPoolRef!=null){
letstrPoolUUID:string=strPoolRef.substring(strPoolRef.indexOf("pool-"),strPoolRef.indexOf('#'));

objAviVroClient.deleteObjectByUUID("pool",strPoolUUID,strTenant)

letobjAviPool:AviPool=objAviVroClient.getObjectByUUID("pool",strPoolUUID,strTenant)asAviPool;

letstrHealthMonitorRefToFind:string=objAviVirtualService.getName()+"_HealthMonitor";

letarrHealthMonitorRef:string[]=objAviPool.getHealthMonitorRefs();

arrHealthMonitorRef.forEach((strHealthMonitorRef:string):void=>{

if ((strHealthMonitorRef.indexOf(strHealthMonitorRefToFind))!==-1){
letstrHealthMonitorUUID:string=strHealthMonitorRef.substring(strHealthMonitorRef.indexOf("/healthmonitor-")+1,strHealthMonitorRef.indexOf("#"));

objAviVroClient.deleteObjectByUUID('healthmonitor',strHealthMonitorUUID,strTenant);
}
});
}

letstrPoolGroupRef:string=objAviVirtualService.getPoolGroupRef();

if (strPoolGroupRef!=null){
letstrPoolGroupUUID:string=strPoolGroupRef.substring(strPoolGroupRef.indexOf('poolgroup-'),strPoolGroupRef.indexOf('#'));

objAviVroClient.deleteObjectByUUID('poolgroup',strPoolGroupUUID,strTenant)

letobjAviPoolGroup:AviPoolGroup=objAviVroClient.getObjectByUUID("poolgroup",strPoolGroupUUID,strTenant)asAviPoolGroup;

letarrAviPoolGroupMember:AviPoolGroupMember[]=objAviPoolGroup.getMembers();

arrAviPoolGroupMember.forEach((objAviPoolGroupMember:AviPoolGroupMember):void=>{

letstrPoolRef:string=objAviPoolGroupMember.getPoolRef();

if (strPoolRef!=null){
letstrPoolUUID:string=strPoolRef.substring(strPoolRef.indexOf('pool-'),strPoolRef.indexOf('#'));

objAviVroClient.deleteObjectByUUID('pool',strPoolUUID,strTenant);
}
});

if (strPoolRef!=null){
letstrPoolUUID:string=strPoolRef.substring(strPoolRef.indexOf('pool-'),strPoolRef.indexOf('#'));

letobjAviPool:AviPool=objAviVroClient.getObjectByUUID("pool",strPoolUUID,strTenant)asAviPool;

letarrHealthMonitorRef:string[]=objAviPool.getHealthMonitorRefs();

letstrHealthMonitorRef:string=arrHealthMonitorRef.find((strHealthMonitorRef:string):boolean=>{
returnstrHealthMonitorRef===objAviVirtualService.getName()+"_HealthMonitor";
});

letstrHealthMonitorUUID:string=strHealthMonitorRef.substring(strHealthMonitorRef.indexOf("/healthmonitor-")+1,strHealthMonitorRef.indexOf("#"));

objAviVroClient.deleteObjectByUUID('healthmonitor',strHealthMonitorUUID,strTenant);
}
}

objAviVroClient.executeWorkflow();
}

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like