mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Bug 12294 - fail to bring the host( resource_state) from un-managed to managed from CS
remove unmanaged event from resource state machine status 12294: resolved fixed
This commit is contained in:
parent
b8b2f786dd
commit
10593528ca
@ -21,11 +21,16 @@ public enum ResourceState {
|
||||
AdminAskMaintenace("Admin asks to enter maintenance"),
|
||||
AdminCancelMaintenance("Admin asks to cancel maintenance"),
|
||||
InternalEnterMaintenance("Resource enters maintenance"),
|
||||
Unmanaged("Admin turns a host into umanaged state"),
|
||||
UpdatePassword("Admin updates password of host"),
|
||||
UnableToMigrate("Management server migrates VM failed"),
|
||||
Error("An internal error happened"),
|
||||
DeleteHost("Admin delete a host");
|
||||
DeleteHost("Admin delete a host"),
|
||||
|
||||
/*
|
||||
* Below events don't cause resource state to change, they are merely
|
||||
* for ClusterManager propagating event from one mgmt server to another
|
||||
*/
|
||||
Unmanaged("Umanage a cluster");
|
||||
|
||||
private final String comment;
|
||||
private Event(String comment) {
|
||||
@ -62,32 +67,25 @@ public enum ResourceState {
|
||||
static {
|
||||
s_fsm.addTransition(null, Event.InternalCreated, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Creating, Event.InternalCreated, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Creating, Event.Unmanaged, ResourceState.Creating);
|
||||
s_fsm.addTransition(ResourceState.Creating, Event.Error, ResourceState.Error);
|
||||
s_fsm.addTransition(ResourceState.Enabled, Event.Enable, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Enabled, Event.InternalCreated, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Enabled, Event.Disable, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.Enabled, Event.Unmanaged, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Enabled, Event.AdminAskMaintenace, ResourceState.PrepareForMaintenance);
|
||||
s_fsm.addTransition(ResourceState.Disabled, Event.Enable, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Disabled, Event.Disable, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.Disabled, Event.InternalCreated, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.Disabled, Event.Unmanaged, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.InternalEnterMaintenance, ResourceState.Maintenance);
|
||||
s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.AdminCancelMaintenance, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.Unmanaged, ResourceState.PrepareForMaintenance);
|
||||
s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.UnableToMigrate, ResourceState.ErrorInMaintenance);
|
||||
s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.InternalCreated, ResourceState.PrepareForMaintenance);
|
||||
s_fsm.addTransition(ResourceState.Maintenance, Event.AdminCancelMaintenance, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Maintenance, Event.InternalCreated, ResourceState.Maintenance);
|
||||
s_fsm.addTransition(ResourceState.Maintenance, Event.DeleteHost, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.Maintenance, Event.Unmanaged, ResourceState.Maintenance);
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.Unmanaged, ResourceState.ErrorInMaintenance);
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.InternalCreated, ResourceState.ErrorInMaintenance);
|
||||
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.Error, Event.InternalCreated, ResourceState.Error);
|
||||
s_fsm.addTransition(ResourceState.Error, Event.Unmanaged, ResourceState.Error);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1766,20 +1766,14 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
|
||||
}
|
||||
|
||||
private boolean doUmanageHost(long hostId) {
|
||||
try {
|
||||
HostVO host = _hostDao.findById(hostId);
|
||||
if (host == null) {
|
||||
s_logger.debug("Cannot find host " + hostId + ", assuming it has been deleted, skip umanage");
|
||||
return true;
|
||||
}
|
||||
|
||||
_agentMgr.disconnectWithoutInvestigation(hostId, Event.ShutdownRequested);
|
||||
resourceStateTransitTo(host, ResourceState.Event.Unmanaged, _nodeId);
|
||||
HostVO host = _hostDao.findById(hostId);
|
||||
if (host == null) {
|
||||
s_logger.debug("Cannot find host " + hostId + ", assuming it has been deleted, skip umanage");
|
||||
return true;
|
||||
} catch (NoTransitionException e) {
|
||||
s_logger.debug("Cannot transmit host " + hostId + "to Enabled state", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
_agentMgr.disconnectWithoutInvestigation(hostId, Event.ShutdownRequested);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user