Repository: cloudstack Updated Branches: refs/heads/4.4 5a84654d1 -> 4c9bf8a70
CLOUDSTACK-6595: call expunge method marked with @ActionEvent from expunge thread context. So the action even EXPUNGE.VM is generated when vm is expunged by the thread. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4c9bf8a7 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4c9bf8a7 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4c9bf8a7 Branch: refs/heads/4.4 Commit: 4c9bf8a70f6bec881d2d34afe498012e6b871b6c Parents: 5a84654 Author: Alena Prokharchyk <alena.prokharc...@citrix.com> Authored: Wed May 7 13:44:26 2014 -0700 Committer: Daan Hoogland <d...@onecht.net> Committed: Wed May 7 23:14:04 2014 +0200 ---------------------------------------------------------------------- api/src/com/cloud/vm/UserVmService.java | 3 --- .../api/command/admin/vm/ExpungeVMCmd.java | 2 +- server/src/com/cloud/vm/UserVmManagerImpl.java | 15 ++++----------- 3 files changed, 5 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4c9bf8a7/api/src/com/cloud/vm/UserVmService.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/vm/UserVmService.java b/api/src/com/cloud/vm/UserVmService.java index af4e1d3..c0c0335 100755 --- a/api/src/com/cloud/vm/UserVmService.java +++ b/api/src/com/cloud/vm/UserVmService.java @@ -21,7 +21,6 @@ import java.util.Map; import org.apache.cloudstack.api.BaseCmd.HTTPMethod; import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd; -import org.apache.cloudstack.api.command.admin.vm.ExpungeVMCmd; import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd; import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd; import org.apache.cloudstack.api.command.user.vm.DeployVMCmd; @@ -457,8 +456,6 @@ public interface UserVmService { UserVm upgradeVirtualMachine(ScaleVMCmd cmd) throws ResourceUnavailableException, ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException; - UserVm expungeVm(ExpungeVMCmd cmd) throws ResourceUnavailableException, ConcurrentOperationException; - UserVm expungeVm(long vmId) throws ResourceUnavailableException, ConcurrentOperationException; /** http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4c9bf8a7/api/src/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java b/api/src/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java index 40b9bb8..155fcff 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/vm/ExpungeVMCmd.java @@ -106,7 +106,7 @@ public class ExpungeVMCmd extends BaseAsyncCmd { public void execute() throws ResourceUnavailableException, ConcurrentOperationException { CallContext.current().setEventDetails("Vm Id: " + getId()); try { - UserVm result = _userVmService.expungeVm(this); + UserVm result = _userVmService.expungeVm(this.getId()); if (result != null) { SuccessResponse response = new SuccessResponse(getCommandName()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4c9bf8a7/server/src/com/cloud/vm/UserVmManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index b55fb19..f0169eb 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -35,9 +35,6 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; -import org.apache.commons.codec.binary.Base64; -import org.apache.log4j.Logger; - import org.apache.cloudstack.acl.ControlledEntity.ACLType; import org.apache.cloudstack.acl.SecurityChecker.AccessType; import org.apache.cloudstack.affinity.AffinityGroupService; @@ -47,7 +44,6 @@ import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.BaseCmd.HTTPMethod; import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd; -import org.apache.cloudstack.api.command.admin.vm.ExpungeVMCmd; import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd; import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd; import org.apache.cloudstack.api.command.user.vm.DeployVMCmd; @@ -87,6 +83,8 @@ import org.apache.cloudstack.storage.command.DeleteCommand; import org.apache.cloudstack.storage.command.DettachCommand; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; +import org.apache.commons.codec.binary.Base64; +import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; import com.cloud.agent.api.Answer; @@ -1800,7 +1798,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } for (UserVmVO vm : vms) { try { - expunge(vm, _accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount()); + expungeVm(vm.getId()); } catch (Exception e) { s_logger.warn("Unable to expunge " + vm, e); } @@ -2083,12 +2081,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } @Override - @ActionEvent(eventType = EventTypes.EVENT_VM_EXPUNGE, eventDescription = "expunging Vm", async = true) - public UserVm expungeVm(ExpungeVMCmd cmd) throws ResourceUnavailableException, ConcurrentOperationException { - return expungeVm(cmd.getId()); - } - - @Override @DB public InstanceGroupVO createVmGroup(CreateVMGroupCmd cmd) { Account caller = CallContext.current().getCallingAccount(); @@ -3589,6 +3581,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } @Override + @ActionEvent(eventType = EventTypes.EVENT_VM_EXPUNGE, eventDescription = "expunging Vm", async = true) public UserVm expungeVm(long vmId) throws ResourceUnavailableException, ConcurrentOperationException { Account caller = CallContext.current().getCallingAccount(); Long userId = caller.getId();