From b3760350fe73c4001aa5a0d5bb97ec3717a3db2b Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Mon, 13 Aug 2012 16:58:45 -0700 Subject: [PATCH] VPC: CS-15805 - guest cidr should be RFC1918 complient --- .../src/com/cloud/network/vpc/VpcManagerImpl.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 3d6f930fc9e..492e6a81903 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -583,6 +583,11 @@ public class VpcManagerImpl implements VpcManager, Manager{ if (!NetUtils.isValidCIDR(cidr)) { throw new InvalidParameterValueException("Invalid CIDR specified " + cidr); } + + //cidr has to be RFC 1918 complient + if (!NetUtils.validateGuestCidr(cidr)) { + throw new InvalidParameterValueException("Guest Cidr " + cidr + " is not RFC1918 compliant"); + } // validate network domain if (!NetUtils.verifyDomainName(networkDomain)) { @@ -593,16 +598,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ + "and the hyphen ('-'); can't start or end with \"-\""); } - -// //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, null); -// } -// } - Transaction txn = Transaction.currentTxn(); txn.start(); VpcVO vpc = new VpcVO (zoneId, vpcName, displayText, vpcOwner.getId(), vpcOwner.getDomainId(), vpcOffId, cidr,