From b00a9174e28b2aedbdf92e453ffe9d935f2dc92b Mon Sep 17 00:00:00 2001 From: anthony Date: Fri, 29 Oct 2010 11:07:31 -0700 Subject: [PATCH] always add master first when adding host --- .../xen/discoverer/XcpServerDiscoverer.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java index bdca29c3468..80674b1529b 100644 --- a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java @@ -23,6 +23,7 @@ import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -147,15 +148,21 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L s_logger.debug(msg); return null; } - if( poolUuid == null ) { - Set pools = Pool.getAll(conn); - Pool pool = pools.iterator().next(); - Pool.Record pr = pool.getRecord(conn); - poolUuid = pr.uuid; - } - - Map hosts = Host.getAllRecords(conn); + Set pools = Pool.getAll(conn); + Pool pool = pools.iterator().next(); + Pool.Record pr = pool.getRecord(conn); + poolUuid = pr.uuid; + Host master = pr.master; + LinkedHashMap hosts = new LinkedHashMap(20); + hosts.put(master, master.getRecord(conn)); + Map thosts = Host.getAllRecords(conn); + for (Map.Entry entry : thosts.entrySet()) { + if( !master.equals(entry.getKey()) ) { + hosts.put(entry.getKey(), entry.getValue()); + } + } + if (_checkHvm) { for (Map.Entry entry : hosts.entrySet()) { Host.Record record = entry.getValue(); @@ -267,7 +274,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L _clusterDao.update(clusterId, clu); } catch (SessionAuthenticationFailed e) { - s_logger.warn("Authentication error", e); + s_logger.warn("Authentication error", e); return null; } catch (XenAPIException e) { s_logger.warn("XenAPI exception", e); @@ -279,7 +286,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L s_logger.warn("Unable to resolve the host name", e); return null; } catch (Exception e) { - s_logger.debug("other exceptions: " + e.toString()); + s_logger.debug("other exceptions: " + e.toString(), e); return null; } finally {