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

pearl11594 pushed a commit to branch nsx-cleanup-dhcp-relay-config
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 693be745ea5b6e11b69ff26ceead0bb9b45e9f19
Author: Pearl Dsilva <[email protected]>
AuthorDate: Fri Oct 6 14:05:46 2023 -0400

    update segment & relay name generators and call delete dhcprelay after 
deletion of segment
---
 .../apache/cloudstack/resource/NsxResource.java    | 28 +++++++++++-----------
 1 file changed, 14 insertions(+), 14 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 2999638242e..00ecf1684fa 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
@@ -335,7 +335,7 @@ public class NsxResource implements ServerResource {
                 return new NsxAnswer(cmd, new CloudRuntimeException(errorMsg));
             }
 
-            String segmentName = getSegmentName(cmd);
+            String segmentName = getSegmentName(cmd.getAccountName(), 
cmd.getTierNetwork().getName(), cmd.getVpcName());
             Segments segmentService = (Segments) 
nsxService.apply(Segments.class);
             SegmentSubnet subnet = new SegmentSubnet.Builder()
                     .setGatewayAddress(cmd.getTierNetwork().getGateway() + "/" 
+ cmd.getTierNetwork().getCidr().split("/")[1]).build();
@@ -360,13 +360,13 @@ public class NsxResource implements ServerResource {
     private NsxAnswer executeRequest(DeleteNsxSegmentCommand cmd) {
         try {
             Thread.sleep(30*1000);
-            String segmentName = getSegmentName(cmd);
-            DhcpRelayConfigs dhcpRelayConfig = (DhcpRelayConfigs) 
nsxService.apply(DhcpRelayConfigs.class);
-            dhcpRelayConfig.delete(getDhcpRelayId(cmd));
+            String segmentName = getSegmentName(cmd.getAccountName(), 
cmd.getTierNetwork().getName(), cmd.getVpcName());
             Segments segmentService = (Segments) 
nsxService.apply(Segments.class);
             segmentService.delete(segmentName);
+            DhcpRelayConfigs dhcpRelayConfig = (DhcpRelayConfigs) 
nsxService.apply(DhcpRelayConfigs.class);
+            dhcpRelayConfig.delete(getDhcpRelayId(cmd));
         } catch (Exception e) {
-            LOGGER.error(String.format("Failed to delete NSX segment: %s", 
getSegmentName(cmd)) );
+            LOGGER.error(String.format("Failed to delete NSX segment: %s", 
getSegmentName(cmd.getAccountName(), cmd.getTierNetwork().getName(), 
cmd.getVpcName())));
             return new NsxAnswer(cmd, new 
CloudRuntimeException(e.getMessage()));
         }
         return new NsxAnswer(cmd, true, null);
@@ -423,20 +423,20 @@ public class NsxResource implements ServerResource {
         return cmd.getZoneName() + "-" + cmd.getAccountName() + "-" + 
cmd.getVpcName();
     }
 
-    private String getSegmentName(CreateNsxSegmentCommand cmd) {
-        String segmentName = cmd.getAccountName() + "-";
-        if (isNull(cmd.getVpcName())) {
-            return segmentName + cmd.getTierNetwork().getName();
+    private String getSegmentName(String accountName, String tierNetworkName, 
String vpcName) {
+        String segmentName = accountName + "-";
+        if (isNull(vpcName)) {
+            return segmentName + tierNetworkName;
         }
-         return segmentName + cmd.getVpcName() + "-" + 
cmd.getTierNetwork().getName();
+         return segmentName + vpcName + "-" + tierNetworkName;
     }
 
-    private String getDhcpRelayId(CreateNsxSegmentCommand cmd) {
+    private String getDhcpRelayId(String zoneName, String accountName, String 
vpcName, String networkName) {
         String suffix = "-Relay";
-        if (isNull(cmd.getVpcName())) {
-            return cmd.getTierNetwork() + suffix;
+        if (isNull(vpcName)) {
+            return zoneName + "-" + networkName + suffix;
         }
-        return String.format("%s-%s%s", cmd.getVpcName(), 
cmd.getTierNetwork(), suffix);
+        return String.format("%s-%s-%s-%s%s", zoneName, accountName, vpcName, 
networkName, suffix);
     }
 
     @Override

Reply via email to