CLOUDSTACK-7398 SecurityGroup Rule related tags cleanup on rule deletion

Signed-off-by: Ilia Shakitko <i.shaki...@tech.leaseweb.com>


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

Branch: refs/heads/saml2
Commit: 09b09c18cfb58e88ac44b7084f0c4171c19b79e5
Parents: 656fc69
Author: Ilia Shakitko <i.shaki...@tech.leaseweb.com>
Authored: Fri Aug 22 10:55:44 2014 +0200
Committer: Wei Zhou <w.z...@leaseweb.com>
Committed: Fri Aug 22 12:35:54 2014 +0200

----------------------------------------------------------------------
 .../security/dao/SecurityGroupRuleDaoImpl.java  | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09b09c18/engine/schema/src/com/cloud/network/security/dao/SecurityGroupRuleDaoImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/schema/src/com/cloud/network/security/dao/SecurityGroupRuleDaoImpl.java
 
b/engine/schema/src/com/cloud/network/security/dao/SecurityGroupRuleDaoImpl.java
index 564ec08..f6ea339 100644
--- 
a/engine/schema/src/com/cloud/network/security/dao/SecurityGroupRuleDaoImpl.java
+++ 
b/engine/schema/src/com/cloud/network/security/dao/SecurityGroupRuleDaoImpl.java
@@ -23,6 +23,8 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import com.cloud.server.ResourceTag.ResourceObjectType;
+import com.cloud.tags.dao.ResourceTagDao;
 import org.springframework.stereotype.Component;
 
 import com.cloud.network.security.SecurityGroupRuleVO;
@@ -32,6 +34,8 @@ import com.cloud.utils.db.GenericDaoBase;
 import com.cloud.utils.db.JoinBuilder;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.TransactionLegacy;
+import com.cloud.utils.db.DB;
 
 @Component
 @Local(value = {SecurityGroupRuleDao.class})
@@ -39,6 +43,8 @@ public class SecurityGroupRuleDaoImpl extends 
GenericDaoBase<SecurityGroupRuleVO
 
     @Inject
     SecurityGroupDao _securityGroupDao;
+    @Inject
+    ResourceTagDao _tagsDao;
 
     protected SearchBuilder<SecurityGroupRuleVO> securityGroupIdSearch;
     protected SearchBuilder<SecurityGroupRuleVO> securityGroupIdAndTypeSearch;
@@ -174,4 +180,18 @@ public class SecurityGroupRuleDaoImpl extends 
GenericDaoBase<SecurityGroupRuleVO
         sc.setParameters("allowedNetworkId", allowedGroupId);
         return findOneIncludingRemovedBy(sc);
     }
+
+    @Override
+    @DB
+    public boolean remove(Long id) {
+        TransactionLegacy txn = TransactionLegacy.currentTxn();
+        txn.start();
+        SecurityGroupRuleVO entry = findById(id);
+        if (entry != null) {
+            _tagsDao.removeByIdAndType(id, 
ResourceObjectType.SecurityGroupRule);
+        }
+        boolean result = super.remove(id);
+        txn.commit();
+        return result;
+    }
 }

Reply via email to