mirror of https://github.com/apache/cloudstack.git
Don't allow guest network creation when guestCidr is not configured in corresponding zone
This commit is contained in:
parent
26d272021f
commit
4f2e9a5195
|
|
@ -259,7 +259,6 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
|||
nic.setGateway(config.getGateway());
|
||||
|
||||
if (nic.getIp4Address() == null) {
|
||||
|
||||
String guestIp = _networkMgr.acquireGuestIpAddress(config, null);
|
||||
if (guestIp == null) {
|
||||
throw new InsufficientVirtualNetworkCapcityException("Unable to acquire guest IP address for network " + config, DataCenter.class, dc.getId());
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ import com.cloud.utils.component.AdapterBase;
|
|||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.Ip4Address;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.Nic.ReservationStrategy;
|
||||
|
|
@ -136,11 +137,12 @@ public class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||
network.setGateway(userSpecified.getGateway());
|
||||
} else {
|
||||
String guestNetworkCidr = dc.getGuestNetworkCidr();
|
||||
// guest network cidr can be null for Basic zone
|
||||
if (guestNetworkCidr != null) {
|
||||
String[] cidrTuple = guestNetworkCidr.split("\\/");
|
||||
network.setGateway(NetUtils.getIpRangeStartIpFromCidr(cidrTuple[0], Long.parseLong(cidrTuple[1])));
|
||||
network.setCidr(guestNetworkCidr);
|
||||
} else if (dc.getNetworkType() == NetworkType.Advanced) {
|
||||
throw new CloudRuntimeException("Can't design network " + network + "; guest CIDR is not configured per zone " + dc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -150,6 +152,9 @@ public class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
|||
}
|
||||
} else {
|
||||
String guestNetworkCidr = dc.getGuestNetworkCidr();
|
||||
if (guestNetworkCidr == null && dc.getNetworkType() == NetworkType.Advanced) {
|
||||
throw new CloudRuntimeException("Can't design network " + network + "; guest CIDR is not configured per zone " + dc);
|
||||
}
|
||||
String[] cidrTuple = guestNetworkCidr.split("\\/");
|
||||
network.setGateway(NetUtils.getIpRangeStartIpFromCidr(cidrTuple[0], Long.parseLong(cidrTuple[1])));
|
||||
network.setCidr(guestNetworkCidr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue