CLOUDSTACK-118 Status of host resorce stuck in ErrorInMaintenance
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/a5bca099 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/a5bca099 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/a5bca099 Branch: refs/heads/javelin Commit: a5bca0999aa010252b1390c4db6dc5023967ab06 Parents: a964d78 Author: Mice Xia <[email protected]> Authored: Mon Oct 8 14:05:05 2012 +0800 Committer: Mice Xia <[email protected]> Committed: Mon Oct 8 14:05:05 2012 +0800 ---------------------------------------------------------------------- api/src/com/cloud/resource/ResourceState.java | 1 + .../com/cloud/vm/VirtualMachineManagerImpl.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/a5bca099/api/src/com/cloud/resource/ResourceState.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/resource/ResourceState.java b/api/src/com/cloud/resource/ResourceState.java index bb4c7e9..6e0afa6 100755 --- a/api/src/com/cloud/resource/ResourceState.java +++ b/api/src/com/cloud/resource/ResourceState.java @@ -113,6 +113,7 @@ public enum ResourceState { s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.Disable, ResourceState.Disabled); s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.DeleteHost, ResourceState.Disabled); s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.InternalEnterMaintenance, ResourceState.Maintenance); + s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.AdminCancelMaintenance, ResourceState.Enabled); s_fsm.addTransition(ResourceState.Error, Event.InternalCreated, ResourceState.Error); } } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/a5bca099/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 b208177..9230f4a 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1995,7 +1995,10 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene } if (vm.getHostId() == null || hostId != vm.getHostId()) { try { - stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId); + ItWorkVO workItem = _workDao.findByOutstandingWork(vm.getId(), State.Migrating); + if(workItem == null){ + stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId); + } } catch (NoTransitionException e) { } }
