diff --git a/server/src/com/cloud/ha/AbstractInvestigatorImpl.java b/server/src/com/cloud/ha/AbstractInvestigatorImpl.java index 04343fc21bf..147cecdc640 100755 --- a/server/src/com/cloud/ha/AbstractInvestigatorImpl.java +++ b/server/src/com/cloud/ha/AbstractInvestigatorImpl.java @@ -85,6 +85,7 @@ public abstract class AbstractInvestigatorImpl extends AdapterBase implements In return hostIds; } + // Method only returns Status.Up, Status.Down and Status.Unknown protected Status testIpAddress(Long hostId, String testHostIp) { try { Answer pingTestAnswer = _agentMgr.send(hostId, new PingTestCommand(testHostIp)); diff --git a/server/src/com/cloud/ha/ManagementIPSystemVMInvestigator.java b/server/src/com/cloud/ha/ManagementIPSystemVMInvestigator.java index 45912377c1b..27ca849b15e 100644 --- a/server/src/com/cloud/ha/ManagementIPSystemVMInvestigator.java +++ b/server/src/com/cloud/ha/ManagementIPSystemVMInvestigator.java @@ -78,10 +78,8 @@ public class ManagementIPSystemVMInvestigator extends AbstractInvestigatorImpl { List otherHosts = findHostByPod(vmHost.getPodId(), vm.getHostId()); for (Long otherHost : otherHosts) { Status vmState = testIpAddress(otherHost, nic.getIp4Address()); - if (vmState == null || vmState == Status.Unknown) { - // can't get information from that host, try the next one - continue; - } + assert vmState != null; + // In case of Status.Unknown, next host will be tried if (vmState == Status.Up) { if (s_logger.isDebugEnabled()) { s_logger.debug("successfully pinged vm's private IP (" + vm.getPrivateIpAddress() + "), returning that the VM is up"); @@ -91,7 +89,8 @@ public class ManagementIPSystemVMInvestigator extends AbstractInvestigatorImpl { // We can't ping the VM directly...if we can ping the host, then report the VM down. // If we can't ping the host, then we don't have enough information. Status vmHostState = testIpAddress(otherHost, vmHost.getPrivateIpAddress()); - if ((vmHostState != null) && (vmHostState != Status.Unknown) && (vmHostState == Status.Up)) { + assert vmHostState != null; + if (vmHostState == Status.Up) { if (s_logger.isDebugEnabled()) { s_logger.debug("successfully pinged vm's host IP (" + vmHost.getPrivateIpAddress() + "), but could not ping VM, returning that the VM is down"); diff --git a/server/src/com/cloud/ha/UserVmDomRInvestigator.java b/server/src/com/cloud/ha/UserVmDomRInvestigator.java index 48ee2836d88..23db01f79c2 100644 --- a/server/src/com/cloud/ha/UserVmDomRInvestigator.java +++ b/server/src/com/cloud/ha/UserVmDomRInvestigator.java @@ -116,14 +116,12 @@ public class UserVmDomRInvestigator extends AbstractInvestigatorImpl { List otherHosts = findHostByPod(agent.getPodId(), agent.getId()); for (Long hostId : otherHosts) { - if (s_logger.isDebugEnabled()) { s_logger.debug("sending ping from (" + hostId + ") to agent's host ip address (" + agent.getPrivateIpAddress() + ")"); } Status hostState = testIpAddress(hostId, agent.getPrivateIpAddress()); - if (hostState == null || hostState == Status.Unknown) { - continue; - } + assert hostState != null; + // In case of Status.Unknown, next host will be tried if (hostState == Status.Up) { if (s_logger.isDebugEnabled()) { s_logger.debug("ping from (" + hostId + ") to agent's host ip address (" + agent.getPrivateIpAddress() + @@ -134,7 +132,7 @@ public class UserVmDomRInvestigator extends AbstractInvestigatorImpl { if (s_logger.isDebugEnabled()) { s_logger.debug("returning host state: " + hostState); } - return hostState; + return Status.Down; } }