Skip to content

Commit 06bca1d

Browse files
Mice Xiasudison
authored andcommitted
CLOUDSTACK-118 Status of host resorce stuck in ErrorInMaintenance
1 parent 196961c commit 06bca1d

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

api/src/com/cloud/resource/ResourceState.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public static String[] toString(ResourceState... states) {
113113
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.Disable, ResourceState.Disabled);
114114
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.DeleteHost, ResourceState.Disabled);
115115
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.InternalEnterMaintenance, ResourceState.Maintenance);
116+
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.AdminCancelMaintenance, ResourceState.Enabled);
116117
s_fsm.addTransition(ResourceState.Error, Event.InternalCreated, ResourceState.Error);
117118
}
118119
}

server/src/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1995,7 +1995,10 @@ protected Command compareState(long hostId, VMInstanceVO vm, final AgentVmInfo i
19951995
}
19961996
if (vm.getHostId() == null || hostId != vm.getHostId()) {
19971997
try {
1998-
stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId);
1998+
ItWorkVO workItem = _workDao.findByOutstandingWork(vm.getId(), State.Migrating);
1999+
if(workItem == null){
2000+
stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId);
2001+
}
19992002
} catch (NoTransitionException e) {
20002003
}
20012004
}

0 commit comments

Comments
 (0)