Updated Branches:
  refs/heads/master fef8f6d4a -> 82cb1095d

CS-16188: S2S VPN: Limit VPN customer gateway name duplicate checking within 
account

Reviewed-by: Anthony Xu

Conflicts:

        server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/82cb1095
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/82cb1095
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/82cb1095

Branch: refs/heads/master
Commit: 82cb1095dc69198cef6839ad2cc7934886ae0dec
Parents: fef8f6d
Author: Sheng Yang <[email protected]>
Authored: Mon Aug 27 14:32:41 2012 -0700
Committer: Sheng Yang <[email protected]>
Committed: Mon Aug 27 16:11:36 2012 -0700

----------------------------------------------------------------------
 .../network/dao/Site2SiteCustomerGatewayDao.java   |    2 +-
 .../dao/Site2SiteCustomerGatewayDaoImpl.java       |    3 +-
 .../cloud/network/vpn/Site2SiteVpnManagerImpl.java |   19 +++++++++++----
 3 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/82cb1095/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDao.java 
b/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDao.java
index c716961..997322b 100644
--- a/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDao.java
+++ b/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDao.java
@@ -23,6 +23,6 @@ import com.cloud.utils.db.GenericDao;
 
 public interface Site2SiteCustomerGatewayDao extends 
GenericDao<Site2SiteCustomerGatewayVO, Long> {
     Site2SiteCustomerGatewayVO findByGatewayIp(String ip);
-    Site2SiteCustomerGatewayVO findByName(String name);
+    Site2SiteCustomerGatewayVO findByNameAndAccountId(String name, long 
accountId);
     List<Site2SiteCustomerGatewayVO> listByAccountId(long accountId);
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/82cb1095/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDaoImpl.java 
b/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDaoImpl.java
index 971c707..bf6900d 100644
--- a/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDaoImpl.java
+++ b/server/src/com/cloud/network/dao/Site2SiteCustomerGatewayDaoImpl.java
@@ -49,9 +49,10 @@ public class Site2SiteCustomerGatewayDaoImpl extends 
GenericDaoBase<Site2SiteCus
     }
 
     @Override
-    public Site2SiteCustomerGatewayVO findByName(String name) {
+    public Site2SiteCustomerGatewayVO findByNameAndAccountId(String name, long 
accountId) {
         SearchCriteria<Site2SiteCustomerGatewayVO> sc = 
AllFieldsSearch.create();
         sc.setParameters("name", name);
+        sc.setParameters("accountId", accountId);
         return findOneBy(sc);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/82cb1095/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 ba4d974..db678ae 100644
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -210,7 +210,7 @@ public class Site2SiteVpnManagerImpl implements 
Site2SiteVpnManager, Manager {
         }
         Long espLifetime = cmd.getEspLifetime();
         if (espLifetime == null) {
-            // Default value of lifetime is 1 day
+            // Default value of lifetime is 1 hour
             espLifetime = (long) 3600;
         }
         if (espLifetime > 86400) {
@@ -222,16 +222,17 @@ public class Site2SiteVpnManagerImpl implements 
Site2SiteVpnManager, Manager {
             dpd = false;
         }
 
+        long accountId = owner.getAccountId();
         if (_customerGatewayDao.findByGatewayIp(gatewayIp) != null) {
-            throw new InvalidParameterValueException("The customer gateway 
with ip " + gatewayIp + " already existed!");
+            throw new InvalidParameterValueException("The customer gateway 
with ip " + gatewayIp + " already existed in the system!");
         }
-        if (_customerGatewayDao.findByName(name) != null) {
+        if (_customerGatewayDao.findByNameAndAccountId(name, accountId) != 
null) {
             throw new InvalidParameterValueException("The customer gateway 
with name " + name + " already existed!");
         }
         
         checkCustomerGatewayCidrList(guestCidrList);
         
-        Site2SiteCustomerGatewayVO gw = new Site2SiteCustomerGatewayVO(name, 
owner.getAccountId(), owner.getDomainId(), gatewayIp, guestCidrList, ipsecPsk,
+        Site2SiteCustomerGatewayVO gw = new Site2SiteCustomerGatewayVO(name, 
accountId, owner.getDomainId(), gatewayIp, guestCidrList, ipsecPsk,
                 ikePolicy, espPolicy, ikeLifetime, espLifetime, dpd);
         _customerGatewayDao.persist(gw);
         return gw;
@@ -454,7 +455,7 @@ public class Site2SiteVpnManagerImpl implements 
Site2SiteVpnManager, Manager {
         }
         Long espLifetime = cmd.getEspLifetime();
         if (espLifetime == null) {
-            // Default value of lifetime is 1 day
+            // Default value of lifetime is 1 hour
             espLifetime = (long) 3600;
         }
         if (espLifetime > 86400) {
@@ -467,6 +468,14 @@ public class Site2SiteVpnManagerImpl implements 
Site2SiteVpnManager, Manager {
         }
 
         checkCustomerGatewayCidrList(guestCidrList);
+        
+        long accountId = gw.getAccountId();
+        if (_customerGatewayDao.findByGatewayIp(gatewayIp) != null) {
+            throw new InvalidParameterValueException("The customer gateway 
with ip " + gatewayIp + " already existed in the system!");
+        }
+        if (_customerGatewayDao.findByNameAndAccountId(name, accountId) != 
null) {
+            throw new InvalidParameterValueException("The customer gateway 
with name " + name + " already existed!");
+        }
 
         gw.setName(name);
         gw.setGatewayIp(gatewayIp);

Reply via email to