You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/03/09 12:00:47 UTC
[2/2] git commit: updated refs/heads/4.4 to c4c7837
CLOUDSTACK-7639: make cidr updation more efficient
check and update only when required
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
(cherry picked from commit b879916f5c64ddbca8713852b2c0ac187e9be1ff)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c4c78372
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c4c78372
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c4c78372
Branch: refs/heads/4.4
Commit: c4c783727d38ea1cfb9b39eeb3ee6dd6ad815617
Parents: bba292f
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Mon Mar 9 16:29:05 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Mar 9 16:30:29 2015 +0530
----------------------------------------------------------------------
.../com/cloud/network/vpc/NetworkACLItemCidrsDao.java | 2 ++
.../network/vpc/dao/NetworkACLItemCidrsDaoImpl.java | 11 +++++++++++
.../com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java | 2 +-
3 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c4c78372/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java b/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java
index 5e49368..3b661fa 100644
--- a/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java
+++ b/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java
@@ -31,6 +31,8 @@ public interface NetworkACLItemCidrsDao extends GenericDao<NetworkACLItemCidrsVO
void persist(long networkACLItemId, List<String> cidrs);
+ void updateCidrs(long networkACLItemId, List<String> cidrs);
+
List<String> getCidrs(long networkACLItemId);
@DB
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c4c78372/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemCidrsDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemCidrsDaoImpl.java b/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemCidrsDaoImpl.java
index 7c02f8b..4c2574e 100644
--- a/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemCidrsDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemCidrsDaoImpl.java
@@ -64,6 +64,17 @@ public class NetworkACLItemCidrsDaoImpl extends GenericDaoBase<NetworkACLItemCid
txn.commit();
}
+ @Override
+ public void updateCidrs(long networkACLItemId, List<String> cidrs) {
+ List<String> oldCidrs = getCidrs(networkACLItemId);
+ if (!(oldCidrs.size() == cidrs.size() && oldCidrs.equals(cidrs))) {
+ SearchCriteria<NetworkACLItemCidrsVO> sc = cidrsSearch.create();
+ sc.setParameters("networkAclItemId", networkACLItemId);
+ remove(sc);
+ persist(networkACLItemId, cidrs);
+ }
+ }
+
/* (non-Javadoc)
* @see com.cloud.network.dao.NetworkAclItemCidrsDao#getCidrs(long)
*/
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c4c78372/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java b/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java
index 88e00a1..201197c 100644
--- a/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/vpc/dao/NetworkACLItemDaoImpl.java
@@ -93,7 +93,7 @@ public class NetworkACLItemDaoImpl extends GenericDaoBase<NetworkACLItemVO, Long
@Override
public boolean update(Long id, NetworkACLItemVO item) {
boolean result = super.update(id, item);
- saveCidrs(item, item.getSourceCidrList());
+ _networkACLItemCidrsDao.updateCidrs(item.getId(), item.getSourceCidrList());
return result;
}