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);