You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/07/06 20:11:02 UTC

[5/11] git commit: VPC: don't allow vpcs for the same account with overlapping cidrs

VPC: don't allow vpcs for the same account with overlapping cidrs


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

Branch: refs/heads/vpc
Commit: d6774e6a861b26faecfd428e37b656cc86870857
Parents: 83f566c
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Thu Jul 5 15:20:22 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Jul 6 11:08:58 2012 -0700

----------------------------------------------------------------------
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6774e6a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index be6b2d9..cab31fe 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -543,6 +543,15 @@ public class VpcManagerImpl implements VpcManager, Manager{
         }
         
         
+        //don't allow overlapping CIDRS for the VPCs of the same account
+        List<? extends Vpc> vpcs = getVpcsForAccount(vpcOwner.getId());
+        for (Vpc vpc : vpcs) {
+            if (NetUtils.isNetworksOverlap(cidr, vpc.getCidr())) {
+                throw new InvalidParameterValueException("Account already has vpc with cidr " + vpc.getCidr() + 
+                        " that overlaps the cidr specified: " + cidr);
+            }
+        }
+        
         VpcVO vpc = new VpcVO (zoneId, vpcName, displayText, vpcOwner.getId(), vpcOwner.getDomainId(), vpcOffId, cidr, 
                 networkDomain);
         vpc = _vpcDao.persist(vpc);