You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2014/02/04 03:28:44 UTC
[2/3] git commit: updated refs/heads/rbac to 72c0f1a
Support deleteAffinitygroup - remove access
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cb4d3a3c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cb4d3a3c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cb4d3a3c
Branch: refs/heads/rbac
Commit: cb4d3a3c5499ea7436360dcc4f7b3e2e34002a9e
Parents: 022b9b8
Author: Prachi Damle <pr...@cloud.com>
Authored: Mon Feb 3 18:22:57 2014 -0800
Committer: Prachi Damle <pr...@cloud.com>
Committed: Mon Feb 3 18:22:57 2014 -0800
----------------------------------------------------------------------
.../affinity/AffinityGroupServiceImpl.java | 49 ++++++++++++--------
1 file changed, 30 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cb4d3a3c/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
index ce56311..27c541b 100644
--- a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
+++ b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
@@ -46,6 +46,8 @@ import com.cloud.event.ActionEvent;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
+import com.cloud.network.dao.NetworkAccountVO;
+import com.cloud.network.dao.NetworkDomainVO;
import com.cloud.user.Account;
import com.cloud.user.AccountManager;
import com.cloud.user.DomainManager;
@@ -271,29 +273,38 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
public void doInTransactionWithoutResult(TransactionStatus status) {
AffinityGroupVO group = _affinityGroupDao.lockRow(affinityGroupIdFinal, true);
- if (group == null) {
- throw new InvalidParameterValueException("Unable to find affinity group by id " + affinityGroupIdFinal);
- }
+ if (group == null) {
+ throw new InvalidParameterValueException("Unable to find affinity group by id " + affinityGroupIdFinal);
+ }
List<AffinityGroupVMMapVO> affinityGroupVmMap = _affinityGroupVMMapDao.listByAffinityGroup(affinityGroupIdFinal);
- if (!affinityGroupVmMap.isEmpty()) {
- SearchBuilder<AffinityGroupVMMapVO> listByAffinityGroup = _affinityGroupVMMapDao.createSearchBuilder();
- listByAffinityGroup.and("affinityGroupId", listByAffinityGroup.entity().getAffinityGroupId(), SearchCriteria.Op.EQ);
- listByAffinityGroup.done();
- SearchCriteria<AffinityGroupVMMapVO> sc = listByAffinityGroup.create();
- sc.setParameters("affinityGroupId", affinityGroupIdFinal);
-
- _affinityGroupVMMapDao.lockRows(sc, null, true);
- _affinityGroupVMMapDao.remove(sc);
- }
+ if (!affinityGroupVmMap.isEmpty()) {
+ SearchBuilder<AffinityGroupVMMapVO> listByAffinityGroup = _affinityGroupVMMapDao.createSearchBuilder();
+ listByAffinityGroup.and("affinityGroupId", listByAffinityGroup.entity().getAffinityGroupId(), SearchCriteria.Op.EQ);
+ listByAffinityGroup.done();
+ SearchCriteria<AffinityGroupVMMapVO> sc = listByAffinityGroup.create();
+ sc.setParameters("affinityGroupId", affinityGroupIdFinal);
+
+ _affinityGroupVMMapDao.lockRows(sc, null, true);
+ _affinityGroupVMMapDao.remove(sc);
+ }
- // call processor to handle the group delete
- AffinityGroupProcessor processor = getAffinityGroupProcessorForType(group.getType());
- if (processor != null) {
- processor.handleDeleteGroup(group);
- }
+ // call processor to handle the group delete
+ AffinityGroupProcessor processor = getAffinityGroupProcessorForType(group.getType());
+ if (processor != null) {
+ processor.handleDeleteGroup(group);
+ }
- _affinityGroupDao.expunge(affinityGroupIdFinal);
+ if(_affinityGroupDao.expunge(affinityGroupIdFinal)){
+ AffinityGroupDomainMapVO groupDomain = _affinityGroupDomainMapDao
+ .findByAffinityGroup(affinityGroupIdFinal);
+ if (groupDomain != null) {
+ _affinityGroupDomainMapDao.remove(groupDomain.getId());
+ }
+ // remove its related ACL permission
+ Pair<AclEntityType, Long> params = new Pair<AclEntityType, Long>(AclEntityType.AffinityGroup, affinityGroupIdFinal);
+ _messageBus.publish(_name, EntityManager.MESSAGE_REMOVE_ENTITY_EVENT, PublishScope.LOCAL, params);
+ }
}
});