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