From fca1df4ce7b8eb8eb9b8b0e4d99b945ea9a219af Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 24 Jan 2024 13:45:17 -0500 Subject: [PATCH] add lb removal logic --- .../java/org/apache/cloudstack/resource/NsxResource.java | 2 ++ .../java/org/apache/cloudstack/service/NsxApiClient.java | 8 ++++++-- ui/src/views/network/VpcTiersTab.vue | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java index ec4de6b3ef7..bf16b056e6c 100644 --- a/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java +++ b/plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java @@ -308,7 +308,9 @@ public class NsxResource implements ServerResource { private Answer executeRequest(DeleteNsxTier1GatewayCommand cmd) { String tier1Id = NsxControllerUtils.getTier1GatewayName(cmd.getDomainId(), cmd.getAccountId(), cmd.getZoneId(), cmd.getNetworkResourceId(), cmd.isResourceVpc()); + String lbName = NsxControllerUtils.getLoadBalancerName(tier1Id); try { + nsxApiClient.deleteLoadBalancer(lbName); nsxApiClient.deleteTier1Gateway(tier1Id); } catch (Exception e) { return new NsxAnswer(cmd, new CloudRuntimeException(e.getMessage())); 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 cdcb83ec572..cb81a736c37 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 @@ -707,8 +707,7 @@ public class NsxApiClient { 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); + deleteLoadBalancer(lbName); } } catch (Error error) { @@ -719,6 +718,11 @@ public class NsxApiClient { } } + public void deleteLoadBalancer(String lbName) { + LbServices lbServices = (LbServices) nsxService.apply(LbServices.class); + lbServices.delete(lbName, true); + } + private String getLbPoolPath(String lbPoolName) { try { LbPools lbPools = (LbPools) nsxService.apply(LbPools.class); diff --git a/ui/src/views/network/VpcTiersTab.vue b/ui/src/views/network/VpcTiersTab.vue index 755c84fd4e6..e06feae0868 100644 --- a/ui/src/views/network/VpcTiersTab.vue +++ b/ui/src/views/network/VpcTiersTab.vue @@ -463,7 +463,8 @@ export default { }, async showIlb (network) { const networkOffering = await this.getNetworkOffering(network.networkofferingid) - return ((networkOffering.supportsinternallb && network.service.filter(s => (s.name === 'Lb') && (s.capability.filter(c => c.name === 'LbSchemes' && c.value.split(',').includes('Internal')).length > 0)).length > 0)) + console.log((networkOffering.supportsinternallb && network.service.filter(s => (s.name === 'Lb') && (s.capability.filter(c => c.name === 'LbSchemes' && c.value.split(',').includes('Internal')).length > 0)).length > 0)) + return ((networkOffering.supportsinternallb && network.service.filter(s => (s.name === 'Lb') && (s.capability.filter(c => c.name === 'LbSchemes' && c.value.split(',').includes('Internal')).length > 0)).length > 0)) || false }, updateMtu () { if (this.form.privatemtu > this.privateMtuMax) {