Remove unmanaged from resource state

This commit is contained in:
frank 2011-12-08 16:43:43 -08:00
parent 6ac6b95e3c
commit 6f6be508a1
3 changed files with 10 additions and 16 deletions

View File

@ -9,7 +9,6 @@ public enum ResourceState {
Creating,
Enabled,
Disabled,
Unmanaged,
PrepareForMaintenance,
ErrorInMaintenance,
Maintenance,
@ -63,39 +62,32 @@ 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.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.Unmanaged);
s_fsm.addTransition(ResourceState.Enabled, Event.Unmanaged, ResourceState.Enabled);
s_fsm.addTransition(ResourceState.Enabled, Event.AdminAskMaintenace, ResourceState.PrepareForMaintenance);
//s_fsm.addTransition(ResourceState.Enabled, Event.Error, ResourceState.Error);
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.Unmanaged);
//s_fsm.addTransition(ResourceState.Disabled, Event.Error, ResourceState.Error);
s_fsm.addTransition(ResourceState.Unmanaged, Event.Unmanaged, ResourceState.Unmanaged);
s_fsm.addTransition(ResourceState.Unmanaged, Event.InternalCreated, ResourceState.Unmanaged);
//s_fsm.addTransition(ResourceState.Unmanaged, Event.Error, ResourceState.Error);
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.Unmanaged);
//s_fsm.addTransition(ResourceState.PrepareForMaintenance, Event.Error, ResourceState.Error);
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.Unmanaged);
//s_fsm.addTransition(ResourceState.Maintenance, Event.Error, ResourceState.Error);
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.Unmanaged, ResourceState.Unmanaged);
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.ErrorInMaintenance, Event.Error, ResourceState.Error);
s_fsm.addTransition(ResourceState.Error, Event.InternalCreated, ResourceState.Error);
s_fsm.addTransition(ResourceState.Error, Event.Unmanaged, ResourceState.Error);
}
}

View File

@ -146,7 +146,7 @@ public class AgentMonitor extends Thread implements Listener {
sc.addAnd(sc.getEntity().getId(), Op.EQ, agentId);
HostVO h = sc.list().get(0);
ResourceState resourceState = h.getResourceState();
if (resourceState == ResourceState.Disabled || resourceState == ResourceState.Maintenance || resourceState == ResourceState.Unmanaged || resourceState == ResourceState.ErrorInMaintenance) {
if (resourceState == ResourceState.Disabled || resourceState == ResourceState.Maintenance || resourceState == ResourceState.ErrorInMaintenance) {
/* Host is in non-operation state, so no investigation and direct put agent to Disconnected */
status_Logger.debug("Ping timeout but host " + agentId + " is in resource state of " + resourceState + ", so no investigation");
_agentMgr.disconnectWithoutInvestigation(agentId, Event.ShutdownRequested);

View File

@ -83,6 +83,7 @@ import com.cloud.ha.HighAvailabilityManager.WorkType;
import com.cloud.host.DetailVO;
import com.cloud.host.Host;
import com.cloud.host.Host.Type;
import com.cloud.host.Status.Event;
import com.cloud.host.HostStats;
import com.cloud.host.HostVO;
import com.cloud.host.Status;
@ -1772,6 +1773,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
return true;
}
_agentMgr.disconnectWithoutInvestigation(hostId, Event.ShutdownRequested);
resourceStateTransitTo(host, ResourceState.Event.Unmanaged, _nodeId);
return true;
} catch (NoTransitionException e) {