From f7ec2ebc480cacf81dc0da89f93186b834272b46 Mon Sep 17 00:00:00 2001 From: anthony Date: Tue, 12 Oct 2010 17:57:57 -0700 Subject: [PATCH] bug 6521: for add host, return api response, even if the host is in disconnected state status 6521: resolved fixed --- .../src/com/cloud/agent/manager/AgentAttache.java | 4 ++++ .../com/cloud/agent/manager/AgentManagerImpl.java | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/src/com/cloud/agent/manager/AgentAttache.java b/server/src/com/cloud/agent/manager/AgentAttache.java index 88d2629d9fc..9f68758f351 100644 --- a/server/src/com/cloud/agent/manager/AgentAttache.java +++ b/server/src/com/cloud/agent/manager/AgentAttache.java @@ -124,6 +124,10 @@ public abstract class AgentAttache { _status = Status.Up; } + public boolean isReady() { + return _status == Status.Up; + } + public boolean isConnecting() { return _status == Status.Connecting; } diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 33e3248cdf5..e36f33e236d 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -1048,7 +1048,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { if (!monitor.second().processConnect(host, cmd[i])) { s_logger.info("Monitor " + monitor.second().getClass().getSimpleName() + " says not to continue the connect process for " + hostId); handleDisconnect(attache, Event.AgentDisconnected, false); - return null; + return attache; } } } @@ -1179,12 +1179,14 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { resource.disconnected(); return null; } - - StartupAnswer[] answers = new StartupAnswer[cmds.length]; - for (int i = 0; i < answers.length; i++) { - answers[i] = new StartupAnswer(cmds[i], attache.getId(), _pingInterval); + if( attache.isReady()) { + StartupAnswer[] answers = new StartupAnswer[cmds.length]; + for (int i = 0; i < answers.length; i++) { + answers[i] = new StartupAnswer(cmds[i], attache.getId(), _pingInterval); + } + + attache.process(answers); } - attache.process(answers); return attache; }