Skip to content

Commit de16411

Browse files
committed
Add missing design to NSX public guru
1 parent f94956b commit de16411

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,20 @@
1818

1919
import com.cloud.dc.VlanDetailsVO;
2020
import com.cloud.dc.dao.VlanDetailsDao;
21+
import com.cloud.deploy.DeploymentPlan;
2122
import com.cloud.exception.ConcurrentOperationException;
2223
import com.cloud.exception.InsufficientAddressCapacityException;
2324
import com.cloud.exception.InsufficientVirtualNetworkCapacityException;
2425
import com.cloud.network.Network;
26+
import com.cloud.network.Networks;
2527
import com.cloud.network.dao.IPAddressVO;
28+
import com.cloud.network.dao.NetworkVO;
2629
import com.cloud.network.guru.PublicNetworkGuru;
2730
import com.cloud.network.vpc.VpcVO;
2831
import com.cloud.network.vpc.dao.VpcDao;
2932
import com.cloud.network.vpc.dao.VpcOfferingServiceMapDao;
33+
import com.cloud.offering.NetworkOffering;
34+
import com.cloud.user.Account;
3035
import com.cloud.utils.exception.CloudRuntimeException;
3136
import com.cloud.vm.NicProfile;
3237
import com.cloud.vm.VirtualMachineProfile;
@@ -58,6 +63,26 @@ public NsxPublicNetworkGuru() {
5863
super();
5964
}
6065

66+
protected boolean canHandle(NetworkOffering offering) {
67+
return isMyTrafficType(offering.getTrafficType()) && offering.isSystemOnly() && offering.isForNsx();
68+
}
69+
70+
@Override
71+
public Network design(NetworkOffering offering, DeploymentPlan plan, Network network, String name, Long vpcId, Account owner) {
72+
if (!canHandle(offering)) {
73+
return null;
74+
}
75+
76+
if (offering.getTrafficType() == Networks.TrafficType.Public) {
77+
NetworkVO ntwk =
78+
new NetworkVO(offering.getTrafficType(), Networks.Mode.Static, network.getBroadcastDomainType(), offering.getId(), Network.State.Setup, plan.getDataCenterId(),
79+
plan.getPhysicalNetworkId(), offering.isRedundantRouter());
80+
return ntwk;
81+
} else {
82+
return null;
83+
}
84+
}
85+
6186
@Override
6287
public NicProfile allocate(Network network, NicProfile nic, VirtualMachineProfile vm) throws InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException, ConcurrentOperationException {
6388
s_logger.debug("NSX Public network guru: allocate");

server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,9 @@ public Vpc createVpc(CreateVPCCmd cmd) throws ResourceAllocationException {
11721172
}
11731173

11741174
private boolean isVpcForNsx(Vpc vpc) {
1175+
if (vpc == null) {
1176+
return false;
1177+
}
11751178
VpcOfferingServiceMapVO mapVO = _vpcOffSvcMapDao.findByServiceProviderAndOfferingId(Service.SourceNat.getName(), Provider.Nsx.getName(), vpc.getVpcOfferingId());
11761179
if (mapVO != null) {
11771180
s_logger.debug(String.format("The VPC %s is NSX-based and supports the %s service", vpc.getName(), Service.SourceNat.getName()));

0 commit comments

Comments
 (0)