From 1e4893b69c46dc53a36b9886d22b46bb58a0e1e0 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 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) {