From 98900717dd7934b418ae9bb74427312ec32ad199 Mon Sep 17 00:00:00 2001 From: frank Date: Fri, 23 Sep 2011 15:40:52 -0700 Subject: [PATCH] Bug 11522 - New agent manager move umanageHost to ResourceManager --- server/src/com/cloud/agent/AgentManager.java | 9 -------- .../cloud/agent/manager/AgentManagerImpl.java | 6 ----- .../manager/ClusteredAgentManagerImpl.java | 14 ----------- .../com/cloud/resource/ResourceManager.java | 2 ++ .../cloud/resource/ResourceManagerImpl.java | 23 ++++++++++++++++++- 5 files changed, 24 insertions(+), 30 deletions(-) diff --git a/server/src/com/cloud/agent/AgentManager.java b/server/src/com/cloud/agent/AgentManager.java index 957051c5a6d..a7ed31cdaf7 100755 --- a/server/src/com/cloud/agent/AgentManager.java +++ b/server/src/com/cloud/agent/AgentManager.java @@ -164,15 +164,6 @@ public interface AgentManager extends Manager { * @return hosts currently connected. */ Set getConnectedHosts(); - - /** - * Obtains statistics for a host; vCPU utilisation, memory utilisation, and network utilisation - * - * @param hostId - * @return HostStat - */ - - boolean disconnect(long hostId); HostStats getHostStatistics(long hostId); diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index f025d04665e..eb78679c0f7 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -740,12 +740,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { } } - @Override - public boolean disconnect(final long hostId) { - disconnect(hostId, Event.PrepareUnmanaged, false); - return true; - } - @Override public void updateStatus(HostVO host, Status.Event event) { _hostDao.updateStatus(host, event, _nodeId); diff --git a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index e65ff665e0e..c0c8cfe67d8 100755 --- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -206,20 +206,6 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust return new ClusteredAgentHandler(type, link, data); } - @Override - public boolean disconnect(final long hostId) { - try { - Boolean result = _clusterMgr.propagateAgentEvent(hostId, Event.PrepareUnmanaged); - - if (result != null) { - return result; - } - } catch (AgentUnavailableException e) { - return false; - } - return super.disconnect(hostId); - } - protected AgentAttache createAttache(long id) { s_logger.debug("create forwarding ClusteredAgentAttache for " + id); final AgentAttache attache = new ClusteredAgentAttache(this, id); diff --git a/server/src/com/cloud/resource/ResourceManager.java b/server/src/com/cloud/resource/ResourceManager.java index ba167bb7369..a2fb23a1a6b 100755 --- a/server/src/com/cloud/resource/ResourceManager.java +++ b/server/src/com/cloud/resource/ResourceManager.java @@ -75,4 +75,6 @@ public interface ResourceManager { public boolean executeUserRequest(long hostId, ResourceState.Event event) throws AgentUnavailableException; boolean updateResourceState(Host host, Event event, long msId) throws NoTransitionException; + + boolean umanageHost(long hostId); } diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index 0a9af450075..77f87474690 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -890,7 +890,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma for( HostVO host : hosts ) { if ( host.getStatus().equals(Status.Up )) { - _agentMgr.disconnect(host.getId()); + umanageHost(host.getId()); } } int retry = 10; @@ -1672,5 +1672,26 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma throw new CloudRuntimeException("Received an resource event we are not handling now, " + event); } } + + private boolean doUmanageHost(long hostId) { + _agentMgr.disconnect(hostId, Status.Event.AgentDisconnected); + return true; + } + + + @Override + public boolean umanageHost(long hostId) { + try { + Boolean result = _clusterMgr.propagateResourceEvent(hostId, ResourceState.Event.Unmanaged); + + if (result != null) { + return result; + } + } catch (AgentUnavailableException e) { + return false; + } + + return doUmanageHost(hostId); + } }