This is an automated email from the ASF dual-hosted git repository.

pearl11594 pushed a commit to branch nsx-add-lb-rule
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit d9dba4fbac6740f1a503e02462213f77042dbd76
Author: Pearl Dsilva <[email protected]>
AuthorDate: Fri Oct 27 16:10:34 2023 -0400

    fix deletion of lb rules
---
 .../org/apache/cloudstack/service/NsxApiClient.java    | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
index 736eeeca262..8b108d0929a 100644
--- 
a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
+++ 
b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java
@@ -39,9 +39,11 @@ import 
com.vmware.nsx_policy.model.EnforcementPointListResult;
 import com.vmware.nsx_policy.model.L4PortSetServiceEntry;
 import com.vmware.nsx_policy.model.LBAppProfileListResult;
 import com.vmware.nsx_policy.model.LBPool;
+import com.vmware.nsx_policy.model.LBPoolListResult;
 import com.vmware.nsx_policy.model.LBPoolMember;
 import com.vmware.nsx_policy.model.LBService;
 import com.vmware.nsx_policy.model.LBVirtualServer;
+import com.vmware.nsx_policy.model.LBVirtualServerListResult;
 import com.vmware.nsx_policy.model.LocaleServicesListResult;
 import com.vmware.nsx_policy.model.PolicyNatRule;
 import com.vmware.nsx_policy.model.Segment;
@@ -497,17 +499,21 @@ public class NsxApiClient {
             // Delete associated Virtual servers
             LbVirtualServers lbVirtualServers = (LbVirtualServers) 
nsxService.apply(LbVirtualServers.class);
             String lbVirtualServerName = 
getVirtualServerName(tier1GatewayName, lbId);
-            lbVirtualServers.delete(lbVirtualServerName, true);
+            lbVirtualServers.delete(lbVirtualServerName, false);
 
             // Delete LB pool
             LbPools lbPools = (LbPools) nsxService.apply(LbPools.class);
-            String lbServerPoolName = getServerPoolName(tier1GatewayName, 
vmId);
-            lbPools.delete(lbServerPoolName, true);
+            String lbServerPoolName = getServerPoolName(tier1GatewayName, 
lbId);
+            lbPools.delete(lbServerPoolName, false);
 
             // Delete load balancer
-            String lbName = getLoadBalancerName(tier1GatewayName);
-            LbServices lbServices = (LbServices) 
nsxService.apply(LbServices.class);
-            lbServices.delete(lbName, true);
+            LBVirtualServerListResult lbVsListResult = 
lbVirtualServers.list(null, null, null, null, null, null);
+            LBPoolListResult lbPoolListResult = lbPools.list(null, null, null, 
null, null, null);
+            if (CollectionUtils.isEmpty(lbVsListResult.getResults()) && 
CollectionUtils.isEmpty(lbPoolListResult.getResults())) {
+                String lbName = getLoadBalancerName(tier1GatewayName);
+                LbServices lbServices = (LbServices) 
nsxService.apply(LbServices.class);
+                lbServices.delete(lbName, true);
+            }
 
         } catch (Error error) {
             ApiError ae = error.getData()._convertTo(ApiError.class);

Reply via email to