You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ya...@apache.org on 2012/07/28 02:41:57 UTC

git commit: CS-15730: Prohibit create VPN connection from different gateway to same customer gateway

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 <sh...@citrix.com>
Authored: Fri Jul 27 17:40:54 2012 -0700
Committer: Sheng Yang <sh...@citrix.com>
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);