From 5797baa3ffdea9cad6614fa8bf3fdff3a2c46c87 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Fri, 23 Mar 2012 18:22:31 -0700 Subject: [PATCH] bug 1443: even adding host failed, return success in api. status 14443: resolved fixed; Reviewed-by: sheng --- .../hypervisor/kvm/discoverer/KvmServerDiscoverer.java | 7 ++++++- server/src/com/cloud/resource/ResourceManager.java | 2 ++ server/src/com/cloud/resource/ResourceManagerImpl.java | 8 ++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) 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) {