This is an automated email from the ASF dual-hosted git repository. bhaisaab pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push: new 7f987ac CLOUDSTACK-9165: unable to use reserved IP range in a network for external VMs (#1246) 7f987ac is described below commit 7f987ace358231307a5ee42066df7b58948763c3 Author: SudharmaJain <sudharma.j...@accelerite.com> AuthorDate: Wed Aug 23 00:41:45 2017 +0530 CLOUDSTACK-9165: unable to use reserved IP range in a network for external VMs (#1246) --- api/src/com/cloud/network/NetworkModel.java | 2 ++ server/src/com/cloud/network/NetworkModelImpl.java | 6 ++++++ server/src/com/cloud/network/guru/GuestNetworkGuru.java | 2 +- server/src/com/cloud/network/router/NetworkHelperImpl.java | 2 +- server/src/com/cloud/network/router/NicProfileHelperImpl.java | 2 +- .../cloud/network/router/VirtualNetworkApplianceManagerImpl.java | 2 +- server/test/com/cloud/network/MockNetworkModelImpl.java | 5 +++++ server/test/com/cloud/vpc/MockNetworkModelImpl.java | 5 +++++ 8 files changed, 22 insertions(+), 4 deletions(-) diff --git a/api/src/com/cloud/network/NetworkModel.java b/api/src/com/cloud/network/NetworkModel.java index 811c792..4a09ea7 100644 --- a/api/src/com/cloud/network/NetworkModel.java +++ b/api/src/com/cloud/network/NetworkModel.java @@ -287,4 +287,6 @@ public interface NetworkModel { List<String[]> generateVmData(String userData, String serviceOffering, String zoneName, String vmName, long vmId, String publicKey, String password, Boolean isWindows); + String getValidNetworkCidr(Network guestNetwork); + } diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index fbed851..7caa328 100644 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -2377,4 +2377,10 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel, Confi public ConfigKey<?>[] getConfigKeys() { return new ConfigKey<?>[] {MACIdentifier}; } + + @Override + public String getValidNetworkCidr(Network guestNetwork) { + String networkCidr = guestNetwork.getNetworkCidr(); + return networkCidr == null ? guestNetwork.getCidr() : networkCidr; + } } diff --git a/server/src/com/cloud/network/guru/GuestNetworkGuru.java b/server/src/com/cloud/network/guru/GuestNetworkGuru.java index f6aeeab..74d7740 100644 --- a/server/src/com/cloud/network/guru/GuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/GuestNetworkGuru.java @@ -376,7 +376,7 @@ public abstract class GuestNetworkGuru extends AdapterBase implements NetworkGur } nic.setIPv4Address(guestIp); - nic.setIPv4Netmask(NetUtils.cidr2Netmask(network.getCidr())); + nic.setIPv4Netmask(NetUtils.cidr2Netmask(_networkModel.getValidNetworkCidr(network))); nic.setIPv4Dns1(dc.getDns1()); nic.setIPv4Dns2(dc.getDns2()); diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index 12ef0f9..9f59293 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -743,7 +743,7 @@ public class NetworkHelperImpl implements NetworkHelper { gatewayNic.setBroadcastType(guestNetwork.getBroadcastDomainType()); gatewayNic.setIsolationUri(guestNetwork.getBroadcastUri()); gatewayNic.setMode(guestNetwork.getMode()); - final String gatewayCidr = guestNetwork.getCidr(); + final String gatewayCidr = _networkModel.getValidNetworkCidr(guestNetwork); gatewayNic.setIPv4Netmask(NetUtils.getCidrNetmask(gatewayCidr)); } else { gatewayNic.setDefaultNic(true); diff --git a/server/src/com/cloud/network/router/NicProfileHelperImpl.java b/server/src/com/cloud/network/router/NicProfileHelperImpl.java index 7575aad..92a5915 100644 --- a/server/src/com/cloud/network/router/NicProfileHelperImpl.java +++ b/server/src/com/cloud/network/router/NicProfileHelperImpl.java @@ -127,7 +127,7 @@ public class NicProfileHelperImpl implements NicProfileHelper { guestNic.setBroadcastType(guestNetwork.getBroadcastDomainType()); guestNic.setIsolationUri(guestNetwork.getBroadcastUri()); guestNic.setMode(guestNetwork.getMode()); - final String gatewayCidr = guestNetwork.getCidr(); + final String gatewayCidr = _networkModel.getValidNetworkCidr(guestNetwork); guestNic.setIPv4Netmask(NetUtils.getCidrNetmask(gatewayCidr)); return guestNic; diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 43669d1..e0b08d1 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1535,7 +1535,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM } } } else if (dc.getNetworkType() == NetworkType.Advanced) { - final String cidr = guestNetwork.getCidr(); + final String cidr = _networkModel.getValidNetworkCidr(guestNetwork); if (cidr != null) { cidrSize = NetUtils.getCidrSize(NetUtils.getCidrNetmask(cidr)); dhcpRange = NetUtils.getDhcpRange(cidr); diff --git a/server/test/com/cloud/network/MockNetworkModelImpl.java b/server/test/com/cloud/network/MockNetworkModelImpl.java index f3d1f38..4b4aebd 100644 --- a/server/test/com/cloud/network/MockNetworkModelImpl.java +++ b/server/test/com/cloud/network/MockNetworkModelImpl.java @@ -901,4 +901,9 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel { return null; } + @Override + public String getValidNetworkCidr(Network guestNetwork) { + return null; + } + } diff --git a/server/test/com/cloud/vpc/MockNetworkModelImpl.java b/server/test/com/cloud/vpc/MockNetworkModelImpl.java index 89a7ab7..6cd1ea1 100644 --- a/server/test/com/cloud/vpc/MockNetworkModelImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkModelImpl.java @@ -916,4 +916,9 @@ public class MockNetworkModelImpl extends ManagerBase implements NetworkModel { return null; } + @Override + public String getValidNetworkCidr(Network guestNetwork) { + return null; + } + } -- To stop receiving notification emails like this one, please contact ['"commits@cloudstack.apache.org" <commits@cloudstack.apache.org>'].