Skip to content

Commit 386ba2f

Browse files
committed
Merge branch 'nsx-integration' of https://github.com/apache/cloudstack into nsx-refactor-update-offering
2 parents 0e3fd1f + 69ded80 commit 386ba2f

File tree

30 files changed

+241
-109
lines changed

30 files changed

+241
-109
lines changed

api/src/main/java/com/cloud/network/guru/NetworkGuru.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ public interface NetworkGuru extends Adapter {
9696
*/
9797
Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, String name, Long vpcId, Account owner);
9898

99+
void setup(Network network, long networkId);
100+
99101
/**
100102
* For guest networks that are in Allocated state after the design stage,
101103
* resources are allocated when the guest network is actually being used

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1484,12 +1484,24 @@ public void setVmNetworkDetails(VMInstanceVO vm, VirtualMachineTO vmTO) {
14841484
Account acc = accountDao.findById(networkVO.getAccountId());
14851485
Domain domain = domainDao.findById(networkVO.getDomainId());
14861486
DataCenter zone = _dcDao.findById(vm.getDataCenterId());
1487-
String networkName = domain.getName() + "-" + acc.getAccountName() + "-" + zone.getName() + "-";
1487+
if (Objects.isNull(zone)) {
1488+
throw new CloudRuntimeException(String.format("Failed to find zone with ID: %s", vm.getDataCenterId()));
1489+
}
1490+
if (Objects.isNull(acc)) {
1491+
throw new CloudRuntimeException(String.format("Failed to find account with ID: %s", networkVO.getAccountId()));
1492+
}
1493+
if (Objects.isNull(domain)) {
1494+
throw new CloudRuntimeException(String.format("Failed to find domain with ID: %s", networkVO.getDomainId()));
1495+
}
1496+
String networkName = String.format("D%s-A%s-Z%s", domain.getId(), acc.getId(), zone.getId());
14881497
if (Objects.isNull(networkVO.getVpcId())) {
1489-
networkName += networkVO.getName();
1498+
networkName += "-S"+networkVO.getId();
14901499
} else {
14911500
VpcVO vpc = vpcDao.findById(networkVO.getVpcId());
1492-
networkName += (vpc.getName() + "-" + networkVO.getName());
1501+
if (Objects.isNull(vpc)) {
1502+
throw new CloudRuntimeException(String.format("Failed to find VPC with ID: %s", networkVO.getVpcId()));
1503+
}
1504+
networkName = String.format("%s-V%s-S%s", networkName, vpc.getId(), networkVO.getId());
14931505
}
14941506
networkToNetworkNameMap.put(networkVO.getId(), networkName);
14951507
}

engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
812812
}
813813
}
814814
});
815+
guru.setup(network, relatedFile);
815816
}
816817

817818
if (networks.size() < 1) {

engine/orchestration/src/test/java/com/cloud/vm/VirtualMachineManagerImplTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -926,12 +926,12 @@ public void checkIfVmNetworkDetailsReturnedIsCorrect() {
926926

927927
VirtualMachineTO vmTO = new VirtualMachineTO() {};
928928
UserVmJoinVO userVm = new UserVmJoinVO();
929-
NetworkVO networkVO = new NetworkVO();
930-
AccountVO accountVO = new AccountVO();
931-
DomainVO domainVO = new DomainVO();
929+
NetworkVO networkVO = mock(NetworkVO.class);
930+
AccountVO accountVO = mock(AccountVO.class);
931+
DomainVO domainVO = mock(DomainVO.class);
932932
domainVO.setName("testDomain");
933933
DataCenterVO dataCenterVO = mock(DataCenterVO.class);
934-
VpcVO vpcVO = new VpcVO();
934+
VpcVO vpcVO = mock(VpcVO.class);
935935

936936
networkVO.setAccountId(1L);
937937
networkVO.setName("testNet");
@@ -949,9 +949,13 @@ public void checkIfVmNetworkDetailsReturnedIsCorrect() {
949949
Mockito.when(domainDao.findById(anyLong())).thenReturn(domainVO);
950950
Mockito.when(dcDao.findById(anyLong())).thenReturn(dataCenterVO);
951951
Mockito.when(vpcDao.findById(anyLong())).thenReturn(vpcVO);
952-
Mockito.when(dataCenterVO.getName()).thenReturn("testZone");
952+
Mockito.when(dataCenterVO.getId()).thenReturn(1L);
953+
when(accountVO.getId()).thenReturn(2L);
954+
Mockito.when(domainVO.getId()).thenReturn(3L);
955+
Mockito.when(vpcVO.getId()).thenReturn(4L);
956+
Mockito.when(networkVO.getId()).thenReturn(5L);
953957
virtualMachineManagerImpl.setVmNetworkDetails(vm, vmTO);
954958
assertEquals(vmTO.getNetworkIdToNetworkNameMap().size(), 1);
955-
assertEquals(vmTO.getNetworkIdToNetworkNameMap().get(0L), "testDomain-testAcc-testZone-VPC1-testNet");
959+
assertEquals(vmTO.getNetworkIdToNetworkNameMap().get(5L), "D3-A2-Z1-V4-S5");
956960
}
957961
}

plugins/network-elements/juniper-contrail/src/main/java/org/apache/cloudstack/network/contrail/management/ContrailGuru.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ public Network design(NetworkOffering offering, DeploymentPlan plan, Network use
138138
return network;
139139
}
140140

141+
@Override
142+
public void setup(Network network, long networkId) {
143+
// do nothing
144+
}
145+
141146
@Override
142147
public Network implement(Network network, NetworkOffering offering, DeployDestination destination, ReservationContext context)
143148
throws InsufficientVirtualNetworkCapacityException {

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxDhcpRelayConfigCommand.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,35 @@
2020

2121
public class CreateNsxDhcpRelayConfigCommand extends NsxCommand {
2222

23+
private Long vpcId;
2324
private String vpcName;
25+
private long networkId;
2426
private String networkName;
2527
private List<String> addresses;
2628

27-
public CreateNsxDhcpRelayConfigCommand(String domainName, String accountName, String zoneName,
28-
String vpcName, String networkName, List<String> addresses) {
29-
super(domainName, accountName, zoneName);
29+
public CreateNsxDhcpRelayConfigCommand(long domainId, long accountId, long zoneId,
30+
Long vpcId, String vpcName, long networkId, String networkName,
31+
List<String> addresses) {
32+
super(domainId, accountId, zoneId);
33+
this.vpcId = vpcId;
3034
this.vpcName = vpcName;
35+
this.networkId = networkId;
3136
this.networkName = networkName;
3237
this.addresses = addresses;
3338
}
3439

40+
public Long getVpcId() {
41+
return vpcId;
42+
}
43+
3544
public String getVpcName() {
3645
return vpcName;
3746
}
3847

48+
public long getNetworkId() {
49+
return networkId;
50+
}
51+
3952
public String getNetworkName() {
4053
return networkName;
4154
}

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxSegmentCommand.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,37 @@
2020

2121
public class CreateNsxSegmentCommand extends NsxCommand {
2222

23+
private Long vpcId;
2324
private String vpcName;
25+
private long networkId;
2426
private String networkName;
2527
private String networkGateway;
2628
private String networkCidr;
2729

28-
public CreateNsxSegmentCommand(String domainName, String accountName, String zoneName,
29-
String vpcName, String networkName, String networkGateway, String networkCidr) {
30-
super(domainName, accountName, zoneName);
30+
public CreateNsxSegmentCommand(long domainId, long accountId, long zoneId,
31+
Long vpcId, String vpcName, long networkId, String networkName,
32+
String networkGateway, String networkCidr) {
33+
super(domainId, accountId, zoneId);
34+
this.vpcId = vpcId;
3135
this.vpcName = vpcName;
36+
this.networkId = networkId;
3237
this.networkName = networkName;
3338
this.networkGateway = networkGateway;
3439
this.networkCidr = networkCidr;
3540
}
3641

42+
public Long getVpcId() {
43+
return vpcId;
44+
}
45+
3746
public String getVpcName() {
3847
return vpcName;
3948
}
4049

50+
public long getNetworkId() {
51+
return networkId;
52+
}
53+
4154
public String getNetworkName() {
4255
return networkName;
4356
}

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/CreateNsxTier1GatewayCommand.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,19 @@
1919
import java.util.Objects;
2020

2121
public class CreateNsxTier1GatewayCommand extends NsxCommand {
22+
private long vpcId;
2223
private String vpcName;
2324

24-
public CreateNsxTier1GatewayCommand(String domainName, String accountName, String zoneName, String vpcName) {
25-
super(domainName, accountName, zoneName);
25+
public CreateNsxTier1GatewayCommand(long domainId, long accountId, long zoneId, long vpcId, String vpcName) {
26+
super(domainId, accountId, zoneId);
27+
this.vpcId = vpcId;
2628
this.vpcName = vpcName;
2729
}
2830

31+
public long getVpcId() {
32+
return vpcId;
33+
}
34+
2935
public String getVpcName() {
3036
return vpcName;
3137
}

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/DeleteNsxSegmentCommand.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,33 @@
1818

1919
public class DeleteNsxSegmentCommand extends NsxCommand {
2020

21+
private Long vpcId;
2122
private String vpcName;
23+
24+
private long networkId;
2225
private String networkName;
2326

24-
public DeleteNsxSegmentCommand(String domainName, String accountName, String zoneName, String vpcName, String networkName) {
25-
super(domainName, accountName, zoneName);
27+
public DeleteNsxSegmentCommand(long domainId, long accountId, long zoneId, Long vpcId,
28+
String vpcName, long networkId, String networkName) {
29+
super(domainId, accountId, zoneId);
30+
this.vpcId = vpcId;
2631
this.vpcName = vpcName;
32+
this.networkId = networkId;
2733
this.networkName = networkName;
2834
}
2935

36+
public Long getVpcId() {
37+
return vpcId;
38+
}
39+
3040
public String getVpcName() {
3141
return vpcName;
3242
}
3343

44+
public long getNetworkId() {
45+
return networkId;
46+
}
47+
3448
public String getNetworkName() {
3549
return networkName;
3650
}

plugins/network-elements/nsx/src/main/java/org/apache/cloudstack/agent/api/DeleteNsxTier1GatewayCommand.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,19 @@
1818

1919
public class DeleteNsxTier1GatewayCommand extends NsxCommand {
2020

21+
private Long vpcId;
2122
private String vpcName;
2223

23-
public DeleteNsxTier1GatewayCommand(String domainName, String accountName, String zoneName, String vpcName) {
24-
super(domainName, accountName, zoneName);
24+
public DeleteNsxTier1GatewayCommand(long domainId, long accountId, long zoneId, Long vpcId, String vpcName) {
25+
super(domainId, accountId, zoneId);
26+
this.vpcId = vpcId;
2527
this.vpcName = vpcName;
2628
}
2729

30+
public Long getVpcId() {
31+
return vpcId;
32+
}
33+
2834
public String getVpcName() {
2935
return vpcName;
3036
}

0 commit comments

Comments
 (0)