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);