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.
