You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pe...@apache.org on 2023/10/30 23:53:12 UTC

(cloudstack) 02/04: fix deletion of lb rules

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 <pe...@gmail.com>
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);