mirror of https://github.com/apache/cloudstack.git
[NSX] Cleanup DHCP Relay config on segment deletion (#108)
* Cleanup DHCP Relay config on segment deletion * update segment & relay name generators and call delete dhcprelay after deletion of segment * address comment
This commit is contained in:
parent
e7e511b685
commit
dc1665cba7
|
|
@ -390,7 +390,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();
|
||||
|
|
@ -415,11 +415,13 @@ public class NsxResource implements ServerResource {
|
|||
private NsxAnswer executeRequest(DeleteNsxSegmentCommand cmd) {
|
||||
try {
|
||||
Thread.sleep(30*1000);
|
||||
String segmentName = getSegmentName(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.getZoneName(), cmd.getAccountName(), cmd.getVpcName(), cmd.getTierNetwork().getName()));
|
||||
} 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);
|
||||
|
|
@ -476,12 +478,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(String zoneName, String accountName, String vpcName, String networkName) {
|
||||
String suffix = "-Relay";
|
||||
if (isNull(vpcName)) {
|
||||
return zoneName + "-" + accountName + "-" + networkName + suffix;
|
||||
}
|
||||
return String.format("%s-%s-%s-%s%s", zoneName, accountName, vpcName, networkName, suffix);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue