Skip to content

Commit 80b7d83

Browse files
committed
add domain and zone names to the various networks - vpc & tier
1 parent 69b4e8f commit 80b7d83

File tree

5 files changed

+43
-25
lines changed

5 files changed

+43
-25
lines changed

engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
import javax.naming.ConfigurationException;
4949
import javax.persistence.EntityExistsException;
5050

51+
import com.cloud.domain.Domain;
52+
import com.cloud.domain.dao.DomainDao;
5153
import com.cloud.network.vpc.VpcVO;
5254
import com.cloud.network.vpc.dao.VpcDao;
5355
import com.cloud.user.dao.AccountDao;
@@ -392,6 +394,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
392394
private AccountDao accountDao;
393395
@Inject
394396
private VpcDao vpcDao;
397+
@Inject
398+
private DomainDao domainDao;
395399

396400
VmWorkJobHandlerProxy _jobHandlerProxy = new VmWorkJobHandlerProxy(this);
397401

@@ -1478,7 +1482,9 @@ private void setVmNetworkDetails(VMInstanceVO vm, VirtualMachineTO vmTO) {
14781482
for (UserVmJoinVO userVmJoinVO : userVmJoinVOs) {
14791483
NetworkVO networkVO = _networkDao.findById(userVmJoinVO.getNetworkId());
14801484
Account acc = accountDao.findById(networkVO.getAccountId());
1481-
String networkName = acc.getAccountName() + "-" ;
1485+
Domain domain = domainDao.findById(networkVO.getDomainId());
1486+
DataCenter zone = _dcDao.findById(vm.getDataCenterId());
1487+
String networkName = domain.getName() + "-" + acc.getAccountName() + "-" + zone.getName() + "-";
14821488
if (Objects.isNull(networkVO.getVpcId())) {
14831489
networkName += networkVO.getName();
14841490
} else {

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/resource/NsxResource.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,13 @@ public boolean configure(String name, Map<String, Object> params) throws Configu
212212

213213
private Answer executeRequest(CreateNsxDhcpRelayConfigCommand cmd) {
214214
String zoneName = cmd.getZoneName();
215+
String domainName = cmd.getDomainName();
215216
String accountName = cmd.getAccountName();
216217
String vpcName = cmd.getVpcName();
217218
String networkName = cmd.getNetworkName();
218219
List<String> addresses = cmd.getAddresses();
219220

220-
String dhcpRelayConfigName = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneName, accountName, vpcName, networkName);
221+
String dhcpRelayConfigName = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneName, domainName, accountName, vpcName, networkName);
221222

222223
String msg = String.format("Creating DHCP relay config with name %s on network %s of VPC %s",
223224
dhcpRelayConfigName, networkName, vpcName);
@@ -231,7 +232,7 @@ private Answer executeRequest(CreateNsxDhcpRelayConfigCommand cmd) {
231232
return new NsxAnswer(cmd, e);
232233
}
233234

234-
String segmentName = NsxControllerUtils.getNsxSegmentId(accountName, vpcName, networkName);
235+
String segmentName = NsxControllerUtils.getNsxSegmentId(domainName, accountName, zoneName, vpcName, networkName);
235236
String dhcpConfigPath = String.format("%s/%s", DHCP_RELAY_CONFIGS_PATH_PREFIX, dhcpRelayConfigName);
236237
try {
237238
Segment segment = nsxApiClient.getSegmentById(segmentName);
@@ -251,7 +252,7 @@ private Answer executeRequest(ReadyCommand cmd) {
251252
}
252253

253254
private Answer executeRequest(CreateNsxTier1GatewayCommand cmd) {
254-
String name = NsxControllerUtils.getTier1GatewayName(cmd.getZoneName(), cmd.getAccountName(), cmd.getVpcName());
255+
String name = NsxControllerUtils.getTier1GatewayName(cmd.getDomainName(), cmd.getAccountName(), cmd.getZoneName(), cmd.getVpcName());
255256
try {
256257
nsxApiClient.createTier1Gateway(name, tier0Gateway, edgeCluster);
257258
return new NsxAnswer(cmd, true, "");
@@ -262,7 +263,7 @@ private Answer executeRequest(CreateNsxTier1GatewayCommand cmd) {
262263
}
263264

264265
private Answer executeRequest(DeleteNsxTier1GatewayCommand cmd) {
265-
String tier1Id = NsxControllerUtils.getTier1GatewayName(cmd.getZoneName(), cmd.getAccountName(), cmd.getVpcName());
266+
String tier1Id = NsxControllerUtils.getTier1GatewayName(cmd.getDomainName(), cmd.getAccountName(), cmd.getZoneName(), cmd.getVpcName());
266267
try {
267268
nsxApiClient.deleteTier1Gateway(tier1Id);
268269
} catch (Exception e) {
@@ -304,10 +305,10 @@ private Answer executeRequest(CreateNsxSegmentCommand cmd) {
304305
return new NsxAnswer(cmd, new CloudRuntimeException(errorMsg));
305306
}
306307

307-
String segmentName = NsxControllerUtils.getNsxSegmentId(cmd.getAccountName(), cmd.getVpcName(), networkName);
308+
String segmentName = NsxControllerUtils.getNsxSegmentId(cmd.getDomainName(), cmd.getAccountName(), cmd.getZoneName(), cmd.getVpcName(), networkName);
308309
String gatewayAddress = cmd.getNetworkGateway() + "/" + cmd.getNetworkCidr().split("/")[1];
309310

310-
nsxApiClient.createSegment(cmd.getZoneName(), cmd.getAccountName(), cmd.getVpcName(),
311+
nsxApiClient.createSegment(cmd.getZoneName(), cmd.getDomainName(), cmd.getAccountName(), cmd.getVpcName(),
311312
segmentName, gatewayAddress, tier0Gateway, enforcementPointPath, transportZones);
312313
} catch (Exception e) {
313314
LOGGER.error(String.format("Failed to create network: %s", cmd.getNetworkName()));
@@ -317,12 +318,12 @@ private Answer executeRequest(CreateNsxSegmentCommand cmd) {
317318
}
318319

319320
private NsxAnswer executeRequest(DeleteNsxSegmentCommand cmd) {
321+
String segmentName = NsxControllerUtils.getNsxSegmentId(cmd.getDomainName(), cmd.getAccountName(), cmd.getZoneName(), cmd.getVpcName(), cmd.getNetworkName());
320322
try {
321323
Thread.sleep(30*1000);
322-
String segmentName = NsxControllerUtils.getNsxSegmentId(cmd.getAccountName(), cmd.getVpcName(), cmd.getNetworkName());
323-
nsxApiClient.deleteSegment(cmd.getZoneName(), cmd.getAccountName(), cmd.getVpcName(), cmd.getNetworkName(), segmentName);
324+
nsxApiClient.deleteSegment(cmd.getZoneName(), cmd.getDomainName(), cmd.getAccountName(), cmd.getVpcName(), cmd.getNetworkName(), segmentName);
324325
} catch (Exception e) {
325-
LOGGER.error(String.format("Failed to delete NSX segment: %s", NsxControllerUtils.getNsxSegmentId(cmd.getAccountName(), cmd.getVpcName(), cmd.getNetworkName())));
326+
LOGGER.error(String.format("Failed to delete NSX segment: %s", segmentName));
326327
return new NsxAnswer(cmd, new CloudRuntimeException(e.getMessage()));
327328
}
328329
return new NsxAnswer(cmd, true, null);

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/service/NsxApiClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ public TransportZoneListResult getTransportZones() {
249249
}
250250
}
251251

252-
public void createSegment(String zoneName, String accountName, String vpcName, String segmentName, String gatewayAddress, String tier0Gateway, String enforcementPointPath, List<TransportZone> transportZones) {
252+
public void createSegment(String zoneName, String domainName, String accountName, String vpcName, String segmentName, String gatewayAddress, String tier0Gateway, String enforcementPointPath, List<TransportZone> transportZones) {
253253
try {
254254
Segments segmentService = (Segments) nsxService.apply(Segments.class);
255255
SegmentSubnet subnet = new SegmentSubnet.Builder()
@@ -260,7 +260,7 @@ public void createSegment(String zoneName, String accountName, String vpcName, S
260260
.setId(segmentName)
261261
.setDisplayName(segmentName)
262262
.setConnectivityPath(isNull(vpcName) ? TIER_0_GATEWAY_PATH_PREFIX + tier0Gateway
263-
: TIER_1_GATEWAY_PATH_PREFIX + NsxControllerUtils.getTier1GatewayName(zoneName, accountName, vpcName))
263+
: TIER_1_GATEWAY_PATH_PREFIX + NsxControllerUtils.getTier1GatewayName(domainName, accountName, zoneName, vpcName))
264264
.setAdminState(AdminState.UP.name())
265265
.setSubnets(List.of(subnet))
266266
.setTransportZonePath(enforcementPointPath + "/transport-zones/" + transportZones.get(0).getId())
@@ -274,13 +274,13 @@ public void createSegment(String zoneName, String accountName, String vpcName, S
274274
}
275275
}
276276

277-
public void deleteSegment(String zoneName, String accountName, String vpcName, String networkName, String segmentName) {
277+
public void deleteSegment(String zoneName, String domainName, String accountName, String vpcName, String networkName, String segmentName) {
278278
try {
279279
Segments segmentService = (Segments) nsxService.apply(Segments.class);
280280
LOGGER.debug(String.format("Removing the segment with ID %s", segmentName));
281281
segmentService.delete(segmentName);
282282
DhcpRelayConfigs dhcpRelayConfig = (DhcpRelayConfigs) nsxService.apply(DhcpRelayConfigs.class);
283-
String dhcpRelayConfigId = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneName, accountName, vpcName, networkName);
283+
String dhcpRelayConfigId = NsxControllerUtils.getNsxDhcpRelayConfigId(zoneName, domainName, accountName, vpcName, networkName);
284284
LOGGER.debug(String.format("Removing the DHCP relay config with ID %s", dhcpRelayConfigId));
285285
dhcpRelayConfig.delete(dhcpRelayConfigId);
286286
} catch (Error error) {

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/utils/NsxControllerUtils.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,23 @@ public NsxAnswer sendNsxCommand(NsxCommand cmd, long zoneId) throws IllegalArgum
5656
return (NsxAnswer) answer;
5757
}
5858

59-
public static String getTier1GatewayName(String zoneName, String accountName, String vpcName) {
60-
return String.format("%s-%s-%s", zoneName, accountName, vpcName);
59+
public static String getTier1GatewayName(String domainName, String accountName, String zoneName, String vpcName) {
60+
return String.format("%s-%s-%s-%s", domainName, accountName, zoneName, vpcName);
6161
}
6262

63-
public static String getNsxSegmentId(String accountName, String vpcName, String tierNetworkName) {
64-
String segmentName = accountName + "-";
63+
public static String getNsxSegmentId(String domainName, String accountName, String zoneName, String vpcName, String tierNetworkName) {
64+
String segmentName = String.format("%s-%s-%s-", domainName, accountName, zoneName);
6565
if (isNull(vpcName)) {
6666
return segmentName + tierNetworkName;
6767
}
6868
return segmentName + vpcName + "-" + tierNetworkName;
6969
}
7070

71-
public static String getNsxDhcpRelayConfigId(String zoneName, String accountName, String vpcName, String networkName) {
71+
public static String getNsxDhcpRelayConfigId(String zoneName, String domainName, String accountName, String vpcName, String networkName) {
7272
String suffix = "-Relay";
7373
if (isNull(vpcName)) {
74-
return zoneName + "-" + accountName + "-" + networkName + suffix;
74+
return domainName + "-" + accountName + "-" + zoneName + "-" +networkName + suffix;
7575
}
76-
return String.format("%s-%s-%s-%s%s", zoneName, accountName, vpcName, networkName, suffix);
76+
return String.format("%s-%s-%s-%s-%s%s", domainName, accountName, zoneName, vpcName, networkName, suffix);
7777
}
7878
}

server/src/main/java/com/cloud/hypervisor/HypervisorGuruBase.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323

2424
import javax.inject.Inject;
2525

26+
import com.cloud.dc.DataCenter;
27+
import com.cloud.dc.dao.DataCenterDao;
28+
import com.cloud.domain.Domain;
29+
import com.cloud.domain.dao.DomainDao;
2630
import com.cloud.network.vpc.VpcVO;
2731
import com.cloud.network.vpc.dao.VpcDao;
2832
import com.cloud.user.Account;
@@ -86,6 +90,10 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
8690
@Inject
8791
protected AccountManager accountManager;
8892
@Inject
93+
private DomainDao domainDao;
94+
@Inject
95+
private DataCenterDao dcDao;
96+
@Inject
8997
private NetworkOfferingDetailsDao networkOfferingDetailsDao;
9098
@Inject
9199
protected
@@ -160,11 +168,13 @@ public NicTO toNicTO(NicProfile profile) {
160168
NetworkVO network = networkDao.findById(profile.getNetworkId());
161169
to.setNetworkUuid(network.getUuid());
162170
Account account = accountManager.getAccount(network.getAccountId());
171+
Domain domain = domainDao.findById(network.getDomainId());
172+
DataCenter zone = dcDao.findById(network.getDataCenterId());
163173
VpcVO vpc = null;
164174
if (Objects.nonNull(network) && Objects.nonNull(network.getVpcId())) {
165175
vpc = vpcDao.findById(network.getVpcId());
166176
}
167-
to.setNetworkSegmentName(getNetworkName(account.getAccountName(), vpc, network.getName()));
177+
to.setNetworkSegmentName(getNetworkName(zone.getName(), domain.getName(), account.getAccountName(), vpc, network.getName()));
168178

169179
// Workaround to make sure the TO has the UUID we need for Nicira integration
170180
NicVO nicVO = nicDao.findById(profile.getId());
@@ -193,11 +203,12 @@ public NicTO toNicTO(NicProfile profile) {
193203
return to;
194204
}
195205

196-
private String getNetworkName(String accountName, VpcVO vpc, String networkName) {
206+
private String getNetworkName(String zoneName, String domainName, String accountName, VpcVO vpc, String networkName) {
207+
String prefix = String.format("%s-%s-%s", domainName, accountName, zoneName);
197208
if (Objects.isNull(vpc)) {
198-
return accountName + "-" + networkName;
209+
return prefix + "-" + networkName;
199210
}
200-
return accountName + "-" + vpc.getName() + "-" + networkName;
211+
return prefix + "-" + vpc.getName() + "-" + networkName;
201212
}
202213

203214

0 commit comments

Comments
 (0)