diff --git a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java index a370e60cc2d..b7f08bdfa7e 100755 --- a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java @@ -263,7 +263,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 64e05087029..50d0c9d4857 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -1984,6 +1984,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) {