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
public AviVirtualServiceDelete(objAviVirtualService: AviVirtualService, strTenant: string = "admin"): void {
let strAviObjectUrl: string = objAviVirtualService.getUrl();
let objAviVroClient: AviVroClient = this.AviVroClientGetByAviObjectUrl(strAviObjectUrl);
objAviVroClient.deleteObject(objAviVirtualService, strTenant);
let strVsvipRef: string = objAviVirtualService.getVsvipRef();
if (strVsvipRef != null) {
let strVsvipUUID: string = strVsvipRef.substring(strVsvipRef.indexOf("vsvip-"), strVsvipRef.indexOf('#'));
objAviVroClient.deleteObjectByUUID("vsvip", strVsvipUUID, strTenant);
}
let strPoolRef: string = objAviVirtualService.getPoolRef();
if (strPoolRef != null) {
let strPoolUUID: string = strPoolRef.substring(strPoolRef.indexOf("pool-"), strPoolRef.indexOf('#'));
objAviVroClient.deleteObjectByUUID("pool", strPoolUUID, strTenant)
let objAviPool: AviPool = objAviVroClient.getObjectByUUID("pool", strPoolUUID, strTenant) as AviPool;
let strHealthMonitorRefToFind: string = objAviVirtualService.getName() + "_HealthMonitor";
let arrHealthMonitorRef: string[] = objAviPool.getHealthMonitorRefs();
arrHealthMonitorRef.forEach((strHealthMonitorRef: string): void => {
if ((strHealthMonitorRef.indexOf(strHealthMonitorRefToFind)) !== -1) {
let strHealthMonitorUUID: string = strHealthMonitorRef.substring(strHealthMonitorRef.indexOf("/healthmonitor-") + 1, strHealthMonitorRef.indexOf("#"));
objAviVroClient.deleteObjectByUUID('healthmonitor', strHealthMonitorUUID, strTenant);
}
});
}
let strPoolGroupRef: string = objAviVirtualService.getPoolGroupRef();
if (strPoolGroupRef != null) {
let strPoolGroupUUID: string = strPoolGroupRef.substring(strPoolGroupRef.indexOf('poolgroup-'), strPoolGroupRef.indexOf('#'));
objAviVroClient.deleteObjectByUUID('poolgroup', strPoolGroupUUID, strTenant)
let objAviPoolGroup: AviPoolGroup = objAviVroClient.getObjectByUUID("poolgroup", strPoolGroupUUID, strTenant) as AviPoolGroup;
let arrAviPoolGroupMember: AviPoolGroupMember[] = objAviPoolGroup.getMembers();
arrAviPoolGroupMember.forEach((objAviPoolGroupMember: AviPoolGroupMember): void => {
let strPoolRef: string = objAviPoolGroupMember.getPoolRef();
if (strPoolRef != null) {
let strPoolUUID: string = strPoolRef.substring(strPoolRef.indexOf('pool-'), strPoolRef.indexOf('#'));
objAviVroClient.deleteObjectByUUID('pool', strPoolUUID, strTenant);
}
});
if (strPoolRef != null) {
let strPoolUUID: string = strPoolRef.substring(strPoolRef.indexOf('pool-'), strPoolRef.indexOf('#'));
let objAviPool: AviPool = objAviVroClient.getObjectByUUID("pool", strPoolUUID, strTenant) as AviPool;
let arrHealthMonitorRef: string[] = objAviPool.getHealthMonitorRefs();
let strHealthMonitorRef: string = arrHealthMonitorRef.find((strHealthMonitorRef: string): boolean => {
return strHealthMonitorRef === objAviVirtualService.getName() + "_HealthMonitor";
});
let strHealthMonitorUUID: 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.
