diff --git a/server/src/com/cloud/cluster/ClusterManager.java b/server/src/com/cloud/cluster/ClusterManager.java index 5833c755d95..1cc189126e2 100644 --- a/server/src/com/cloud/cluster/ClusterManager.java +++ b/server/src/com/cloud/cluster/ClusterManager.java @@ -44,6 +44,7 @@ public interface ClusterManager extends Manager { public int getHeartbeatThreshold(); public long getId(); public long getCurrentRunId(); + public boolean isManageemnNodeAlive(long msid); public String getSelfPeerName(); public String getSelfNodeIP(); public String getPeerName(long agentHostId); diff --git a/server/src/com/cloud/cluster/ClusterManagerImpl.java b/server/src/com/cloud/cluster/ClusterManagerImpl.java index d637c882f6f..6fa65c4913f 100644 --- a/server/src/com/cloud/cluster/ClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java @@ -23,8 +23,8 @@ import javax.naming.ConfigurationException; import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; -import com.cloud.agent.Listener; import com.cloud.agent.AgentManager.OnError; +import com.cloud.agent.Listener; import com.cloud.agent.api.Answer; import com.cloud.agent.api.ChangeAgentCommand; import com.cloud.agent.api.Command; @@ -781,6 +781,17 @@ public class ClusterManagerImpl implements ClusterManager { return _runId; } + @Override + public boolean isManageemnNodeAlive(long msid) { + ManagementServerHostVO mshost = _mshostDao.findById(msid); + if(mshost != null) { + if(mshost.getLastUpdateTime().getTime() >= DateUtil.currentGMTTime().getTime() - heartbeatThreshold) + return true; + } + + return false; + } + @Override public int getHeartbeatThreshold() { return this.heartbeatThreshold; diff --git a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java index 734085d1f97..574bb0ce24a 100644 --- a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java @@ -101,6 +101,10 @@ public class DummyClusterManagerImpl implements ClusterManager { public String getSelfNodeIP() { return _clusterNodeIP; } + + public boolean isManageemnNodeAlive(long msid) { + return true; + } public String getPeerName(long agentHostId) { throw new CloudRuntimeException("Unsupported feature");