CS-15719: Fix state change when stopping
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/fd9ef34a Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/fd9ef34a Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/fd9ef34a Branch: refs/heads/vpc Commit: fd9ef34a0fde0dad6279820af8e35449b742990b Parents: 8eee8f3 Author: Sheng Yang <[email protected]> Authored: Fri Jul 27 14:43:26 2012 -0700 Committer: Sheng Yang <[email protected]> Committed: Fri Jul 27 16:28:06 2012 -0700 ---------------------------------------------------------------------- server/src/com/cloud/user/AccountManagerImpl.java | 12 +++++++++++- .../com/cloud/vm/VirtualMachineManagerImpl.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/fd9ef34a/server/src/com/cloud/user/AccountManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 0202e20..503c45a 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -129,7 +129,9 @@ import com.cloud.vm.ReservationContextImpl; import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmVO; import com.cloud.vm.VMInstanceVO; +import com.cloud.vm.VirtualMachine.Type; import com.cloud.vm.VirtualMachineManager; +import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.InstanceGroupDao; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.VMInstanceDao; @@ -207,6 +209,8 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag private IPAddressDao _ipAddressDao; @Inject private VpcManager _vpcMgr; + @Inject + private DomainRouterDao _routerDao; private Adapters<UserAuthenticator> _userAuthenticators; @@ -678,7 +682,13 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag for (VMInstanceVO vm : vms) { try { try { - success = (success && _itMgr.advanceStop(vm, false, getSystemUser(), getSystemAccount())); + if (vm.getType() == Type.User) { + success = (success && _itMgr.advanceStop(_userVmDao.findById(vm.getId()), false, getSystemUser(), getSystemAccount())); + } else if (vm.getType() == Type.DomainRouter) { + success = (success && _itMgr.advanceStop(_routerDao.findById(vm.getId()), false, getSystemUser(), getSystemAccount())); + } else { + success = (success && _itMgr.advanceStop(vm, false, getSystemUser(), getSystemAccount())); + } } catch (OperationTimedoutException ote) { s_logger.warn("Operation for stopping vm timed out, unable to stop vm " + vm.getHostName(), ote); success = false; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/fd9ef34a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 68e2edd..adb0715 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -2562,4 +2562,4 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene return result; } -} \ No newline at end of file +}
