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>'].