From 24023fd14d4233bbf01649e89f470d0aa64cd09d Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 5 Jul 2012 15:20:22 -0700 Subject: [PATCH] VPC: don't allow vpcs for the same account with overlapping cidrs --- server/src/com/cloud/network/vpc/VpcManagerImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 1697864323f..1ad63f1ffa6 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 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);