Updated Branches: refs/heads/vpc e8ad5b7d0 -> b410cbff5
CS-15730: Prohibit create VPN connection from different gateway to same customer gateway Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/b410cbff Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/b410cbff Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/b410cbff Branch: refs/heads/vpc Commit: b410cbff5fec2940aa80d68875edaf8cdd9579c7 Parents: e8ad5b7 Author: Sheng Yang <[email protected]> Authored: Fri Jul 27 17:40:54 2012 -0700 Committer: Sheng Yang <[email protected]> Committed: Fri Jul 27 17:41:47 2012 -0700 ---------------------------------------------------------------------- .../network/dao/Site2SiteVpnConnectionDao.java | 1 + .../network/dao/Site2SiteVpnConnectionDaoImpl.java | 7 +++++++ .../cloud/network/vpn/Site2SiteVpnManagerImpl.java | 6 ++++++ 3 files changed, 14 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b410cbff/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDao.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDao.java b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDao.java index 6954287..2239ec7 100644 --- a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDao.java +++ b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDao.java @@ -10,4 +10,5 @@ public interface Site2SiteVpnConnectionDao extends GenericDao<Site2SiteVpnConnec List<Site2SiteVpnConnectionVO> listByVpnGatewayId(long id); List<Site2SiteVpnConnectionVO> listByVpcId(long vpcId); Site2SiteVpnConnectionVO findByVpnGatewayIdAndCustomerGatewayId(long vpnId, long customerId); + Site2SiteVpnConnectionVO findByCustomerGatewayId(long customerId); } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b410cbff/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java index 8940192..2d147d2 100644 --- a/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java +++ b/server/src/com/cloud/network/dao/Site2SiteVpnConnectionDaoImpl.java @@ -67,4 +67,11 @@ public class Site2SiteVpnConnectionDaoImpl extends GenericDaoBase<Site2SiteVpnCo sc.setParameters("customerGatewayId", customerId); return findOneBy(sc); } + + @Override + public Site2SiteVpnConnectionVO findByCustomerGatewayId(long customerId) { + SearchCriteria<Site2SiteVpnConnectionVO> sc = AllFieldsSearch.create(); + sc.setParameters("customerGatewayId", customerId); + return findOneBy(sc); + } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b410cbff/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 48bb387..e64962a 100644 --- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -205,6 +205,12 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { throw new InvalidParameterValueException("The vpn connection with customer gateway id " + customerGatewayId + " or vpn gateway id " + vpnGatewayId + " already existed!"); } + if (_vpnConnectionDao.findByCustomerGatewayId(customerGatewayId) != null) { + List<IdentityProxy> idList = new ArrayList<IdentityProxy>(); + idList.add(new IdentityProxy(customerGateway, customerGatewayId, "customerGatewayId")); + throw new InvalidParameterValueException("The vpn connection with specified customer gateway id " + + " already exists!", idList); + } Site2SiteVpnConnectionVO conn = new Site2SiteVpnConnectionVO(owner.getAccountId(), owner.getDomainId(), vpnGatewayId, customerGatewayId); conn.setState(State.Pending); _vpnConnectionDao.persist(conn);
