You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2017/08/22 19:11:50 UTC

[cloudstack] branch master updated: CLOUDSTACK-9165: unable to use reserved IP range in a network for external VMs (#1246)

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 <su...@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" <co...@cloudstack.apache.org>'].