Updated Branches: refs/heads/vpc 6ad7f2f80 -> 96ac18d8e
S2S VPN: CS-15810: Add check for customer gateway subnets / VPC CIDR overlap Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/96ac18d8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/96ac18d8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/96ac18d8 Branch: refs/heads/vpc Commit: 96ac18d8ed6f27a1ee92200536387ef3f09e4638 Parents: 6ad7f2f Author: Sheng Yang <[email protected]> Authored: Wed Aug 1 15:18:19 2012 -0700 Committer: Sheng Yang <[email protected]> Committed: Wed Aug 1 15:31:17 2012 -0700 ---------------------------------------------------------------------- .../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/96ac18d8/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index 3b6e533..83fc102 100644 --- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -209,6 +209,18 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { throw new InvalidParameterValueException("The vpn connection with specified customer gateway id " + customerGatewayId + " already exists!"); } + + String[] cidrList = customerGateway.getGuestCidrList().split(","); + String vpcCidr = _vpcDao.findById(vpnGateway.getVpcId()).getCidr(); + for (String cidr : cidrList) { + if (NetUtils.isNetworksOverlap(vpcCidr, cidr)) { + List<IdentityProxy> idList = new ArrayList<IdentityProxy>(); + idList.add(new IdentityProxy(customerGateway, customerGatewayId, "customerGatewayId")); + throw new InvalidParameterValueException("The subnet of customer gateway " + cidr + " is overlapped with VPC cidr " + + vpcCidr + "!", idList); + } + } + Site2SiteVpnConnectionVO conn = new Site2SiteVpnConnectionVO(owner.getAccountId(), owner.getDomainId(), vpnGatewayId, customerGatewayId); conn.setState(State.Pending); _vpnConnectionDao.persist(conn);
