From 6f6be508a1c3c49415f9b553e445a6ef79d2ff1c Mon Sep 17 00:00:00 2001 From: frank Date: Thu, 8 Dec 2011 16:43:43 -0800 Subject: [PATCH] Remove unmanaged from resource state --- api/src/com/cloud/resource/ResourceState.java | 22 ++++++------------- .../com/cloud/agent/manager/AgentMonitor.java | 2 +- .../cloud/resource/ResourceManagerImpl.java | 2 ++ 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/api/src/com/cloud/resource/ResourceState.java b/api/src/com/cloud/resource/ResourceState.java index 7d423b3ae8c..f8d0ff95c7f 100755 --- a/api/src/com/cloud/resource/ResourceState.java +++ b/api/src/com/cloud/resource/ResourceState.java @@ -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); } } diff --git a/server/src/com/cloud/agent/manager/AgentMonitor.java b/server/src/com/cloud/agent/manager/AgentMonitor.java index aa724210719..4c517d672be 100755 --- a/server/src/com/cloud/agent/manager/AgentMonitor.java +++ b/server/src/com/cloud/agent/manager/AgentMonitor.java @@ -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); diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index 6a9025f4964..09b71e70961 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -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) {