diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index be6b2d90cb7..cab31fe2f9e 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);