diff --git a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java index bbf5dd5e2fa..aae032f047b 100755 --- a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java @@ -274,7 +274,12 @@ public class KvmServerDiscoverer extends DiscovererBase implements Discoverer, } } s_logger.debug("Timeout, to wait for the host connecting to mgt svr, assuming it is failed"); - return null; + List hosts = _resourceMgr.findHostByGuid(dcId, guid); + if (hosts.size() == 1) { + return hosts.get(0); + } else { + return null; + } } @Override diff --git a/server/src/com/cloud/resource/ResourceManager.java b/server/src/com/cloud/resource/ResourceManager.java index 9d29dd073cb..71d1bc6c447 100755 --- a/server/src/com/cloud/resource/ResourceManager.java +++ b/server/src/com/cloud/resource/ResourceManager.java @@ -139,4 +139,6 @@ public interface ResourceManager extends ResourceService{ HypervisorType getAvailableHypervisor(long zoneId); Discoverer getMatchingDiscover(HypervisorType hypervisorType); + + List findHostByGuid(long dcId, String guid); } diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index a88778b7a38..04423e88a48 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -2005,6 +2005,14 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma sc.addAnd(sc.getEntity().getResourceState(), Op.EQ, ResourceState.Enabled); return sc.list(); } + + @Override + public List findHostByGuid(long dcId, String guid) { + SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); + sc.addAnd(sc.getEntity().getGuid(), Op.EQ, guid); + return sc.list(); + } @Override public List listAllHostsInCluster(long clusterId) {