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