cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From muralire...@apache.org
Subject git commit: updated refs/heads/master to aaa99cd
Date Fri, 18 Oct 2013 10:09:45 GMT
Updated Branches:
  refs/heads/master 325c94ed6 -> aaa99cd9d


CLOUDSTACK-4596: CloudStack is currently allowing same ip range to be
defined in different VLANs across public and portable ranges

added checks to restric same ip range to be configure as both public ip
range and portable ip range


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/aaa99cd9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/aaa99cd9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/aaa99cd9

Branch: refs/heads/master
Commit: aaa99cd9de3c671a4fe5d95fa6dff4f19d8c0fba
Parents: 325c94e
Author: Murali Reddy <muralimmreddy@gmail.com>
Authored: Fri Oct 18 15:38:41 2013 +0530
Committer: Murali Reddy <muralimmreddy@gmail.com>
Committed: Fri Oct 18 15:38:41 2013 +0530

----------------------------------------------------------------------
 .../configuration/ConfigurationManagerImpl.java      | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aaa99cd9/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 4fda3b1..b4429cb 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -2922,6 +2922,12 @@ public class ConfigurationManagerImpl extends ManagerBase implements
Configurati
             // Check if there are any errors with the IP range
             checkPublicIpRangeErrors(zoneId, vlanId, vlanGateway, vlanNetmask, startIP, endIP);
 
+            // check and throw exception if there is portable IP range that overlaps with
ip range being configure
+            if (checkOverlapPortableIpRange(_regionDao.getRegionId(), startIP, endIP)) {
+                throw new InvalidParameterValueException("Ip  range: " + startIP + "-" +
endIP +
+                        " overlaps with a portable" + " IP range already configured in the
region " + _regionDao.getRegionId());
+            }
+
             // Throw an exception if this subnet overlaps with subnet on other VLAN,
             // if this is ip range extension, gateway, network mask should be same and ip
range should not overlap
 
@@ -4809,13 +4815,15 @@ public class ConfigurationManagerImpl extends ManagerBase implements
Configurati
                 throw new InvalidParameterValueException("Invalid vlan id " + vlanId);
             }
 
-            // check if there is zone vlan with same id
             List<DataCenterVO> zones= _zoneDao.listAllZones();
             if (zones != null && !zones.isEmpty()) {
                 for (DataCenterVO zone: zones) {
+                    // check if there is zone vlan with same id
                     if (_vlanDao.findByZoneAndVlanId(zone.getId(), vlanId) != null)
                         throw new InvalidParameterValueException("Found a VLAN id " + vlanId
+ " already existing in"
                                 + " zone " + zone.getUuid() + " that conflicts with VLAN
id of the portable ip range being configured");
+                    //check if there is a public ip range that overlaps with portable ip
range being created
+                    checkOverlapPublicIpRange(zone.getId(), startIP, endIP);
                 }
             }
 
@@ -4921,6 +4929,11 @@ public class ConfigurationManagerImpl extends ManagerBase implements
Configurati
         long newEndIp = NetUtils.ip2Long(newEndIpStr);
 
         List<PortableIpRangeVO> existingPortableIPRanges = _portableIpRangeDao.listByRegionId(regionId);
+
+        if (existingPortableIPRanges == null || existingPortableIPRanges.isEmpty()) {
+            return false;
+        }
+
         for (PortableIpRangeVO portableIpRange : existingPortableIPRanges) {
             String ipRangeStr = portableIpRange.getIpRange();
             String[] range = ipRangeStr.split("-");


Mime
View raw message