You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ja...@apache.org on 2013/12/26 12:50:24 UTC
[1/2] git commit: updated refs/heads/master to 16763be
Updated Branches:
refs/heads/master 1a033edda -> 16763be77
Fixed issue in setting vm ip,mac in vm_instance table
This issue is not seen in 4.2, It is observed only in 4.3.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/16763be7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/16763be7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/16763be7
Branch: refs/heads/master
Commit: 16763be77fab13d8b0a982b4461313bdfb41d61e
Parents: ab4f095
Author: Jayapal <ja...@apache.org>
Authored: Thu Dec 26 16:36:16 2013 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Thu Dec 26 16:58:04 2013 +0530
----------------------------------------------------------------------
server/src/com/cloud/vm/UserVmManagerImpl.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/16763be7/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index ebb36a7..257601c 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -3081,6 +3081,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
if (network.getTrafficType() == TrafficType.Guest || network.getTrafficType() == TrafficType.Public) {
userVm.setPrivateIpAddress(nic.getIp4Address());
userVm.setPrivateMacAddress(nic.getMacAddress());
+ _vmDao.update(userVm.getId(), userVm);
}
}
[2/2] git commit: updated refs/heads/master to 16763be
Posted by ja...@apache.org.
CLOUDSTACK-4622:If a VM from guest network is added to network tier of VPC then IP reservation allows the CIDR to be a superset of Network CIDR for that VPC tier
Signed-off-by: Jayapal <ja...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ab4f095c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ab4f095c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ab4f095c
Branch: refs/heads/master
Commit: ab4f095c68d4a4b4fb354b3d95096b193706987d
Parents: 1a033ed
Author: Saksham Srivastava <sa...@citrix.com>
Authored: Fri Sep 13 14:45:35 2013 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Thu Dec 26 16:58:04 2013 +0530
----------------------------------------------------------------------
utils/src/com/cloud/utils/net/NetUtils.java | 23 ++++++++++++++++++--
.../test/com/cloud/utils/net/NetUtilsTest.java | 15 +++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab4f095c/utils/src/com/cloud/utils/net/NetUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/NetUtils.java b/utils/src/com/cloud/utils/net/NetUtils.java
index f6f6285..2972a43 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -837,13 +837,32 @@ public class NetUtils {
}
public static boolean isNetworkAWithinNetworkB(String cidrA, String cidrB) {
+ // This utility returns true if IP range of cidrA is same or lies completely in cidrB
+ // Returns true if networkA is same as networkB or networkA is a subset of networkB
Long[] cidrALong = cidrToLong(cidrA);
Long[] cidrBLong = cidrToLong(cidrB);
if (cidrALong == null || cidrBLong == null) {
return false;
}
- long shift = 32 - cidrBLong[1];
- return ((cidrALong[0] >> shift) == (cidrBLong[0] >> shift));
+ if (isSameIpRange(cidrA, cidrB)) {
+ return true;
+ }
+ String[] cidrPairFirst = cidrA.split("\\/");
+ String[] cidrPairSecond = cidrB.split("\\/");
+
+ Long networkSizeFirst = Long.valueOf(cidrPairFirst[1]);
+ Long networkSizeSecond = Long.valueOf(cidrPairSecond[1]);
+ String ipRangeFirst [] = NetUtils.getIpRangeFromCidr(cidrPairFirst[0], networkSizeFirst);
+ String ipRangeSecond [] = NetUtils.getIpRangeFromCidr(cidrPairFirst[0], networkSizeSecond);
+
+ long startIpFirst = NetUtils.ip2Long(ipRangeFirst[0]);
+ long endIpFirst = NetUtils.ip2Long(ipRangeFirst[1]);
+ long startIpSecond = NetUtils.ip2Long(ipRangeSecond[0]);
+ long endIpSecond = NetUtils.ip2Long(ipRangeSecond[1]);
+
+ if((startIpFirst >= startIpSecond) && (endIpFirst <= endIpSecond))
+ return true;
+ return false;
}
public static Long[] cidrToLong(String cidr) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ab4f095c/utils/test/com/cloud/utils/net/NetUtilsTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/net/NetUtilsTest.java b/utils/test/com/cloud/utils/net/NetUtilsTest.java
index c7407bf..192ff6d 100644
--- a/utils/test/com/cloud/utils/net/NetUtilsTest.java
+++ b/utils/test/com/cloud/utils/net/NetUtilsTest.java
@@ -174,4 +174,19 @@ public class NetUtilsTest extends TestCase {
public void testGetLocalIPString() {
assertNotNull(NetUtils.getLocalIPString());
}
+
+ public void testSubnet() {
+ //Test to check if a cidr is a part of another cidr
+ //Test 2 same cidrs
+ assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/25", "10.1.1.0/25"));
+ //Tests when cidrA is smaller than cidrB
+ assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/26", "10.1.1.0/25"));
+ assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/25", "10.1.1.0/24"));
+ assertTrue(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/23", "10.1.1.0/22"));
+ assertTrue(NetUtils.isNetworkAWithinNetworkB("192.168.0.0/16" , "192.168.0.0/15"));
+ //Tests when cidrA is larger than cidrB
+ assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/26", "10.1.1.0/27"));
+ assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/24", "10.1.1.0/25"));
+ assertFalse(NetUtils.isNetworkAWithinNetworkB("10.1.1.0/22", "10.1.1.0/23"));
+ }
}