diff --git a/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java b/engine/schema/src/com/cloud/network/vpc/NetworkACLItemCidrsDao.java index 5e49368de7e..3b661faf2a9 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 cidrs); + void updateCidrs(long networkACLItemId, List cidrs); + List getCidrs(long networkACLItemId); @DB 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 7c02f8b554b..4c2574e6094 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 cidrs) { + List oldCidrs = getCidrs(networkACLItemId); + if (!(oldCidrs.size() == cidrs.size() && oldCidrs.equals(cidrs))) { + SearchCriteria sc = cidrsSearch.create(); + sc.setParameters("networkAclItemId", networkACLItemId); + remove(sc); + persist(networkACLItemId, cidrs); + } + } + /* (non-Javadoc) * @see com.cloud.network.dao.NetworkAclItemCidrsDao#getCidrs(long) */ 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 88e00a15629..201197c93f2 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