diff --git a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java index d11f15493b0..e89dbc6f43d 100644 --- a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java @@ -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()); diff --git a/server/src/com/cloud/network/guru/GuestNetworkGuru.java b/server/src/com/cloud/network/guru/GuestNetworkGuru.java index 995563d3b1f..50b89f3b1c1 100755 --- a/server/src/com/cloud/network/guru/GuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/GuestNetworkGuru.java @@ -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);