From 0755c86304e55ecd53d35296fcd4f3509f80952f Mon Sep 17 00:00:00 2001 From: anthony Date: Wed, 15 Sep 2010 21:23:33 -0700 Subject: [PATCH] first host doesn't need to switch master --- .../xen/resource/XenServerConnectionPool.java | 18 ++++++++++++++++-- .../xen/discoverer/XcpServerDiscoverer.java | 11 +---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/core/src/com/cloud/hypervisor/xen/resource/XenServerConnectionPool.java b/core/src/com/cloud/hypervisor/xen/resource/XenServerConnectionPool.java index d975825c64a..22401671c00 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/XenServerConnectionPool.java +++ b/core/src/com/cloud/hypervisor/xen/resource/XenServerConnectionPool.java @@ -161,8 +161,6 @@ public class XenServerConnectionPool { protected synchronized void cleanup(String poolUuid) { ConnectionInfo info = _infos.remove(poolUuid); if (info == null) { - s_logger.debug("Unable to find any information for pool " - + poolUuid); return; } @@ -573,6 +571,22 @@ public class XenServerConnectionPool { masterConn = null; masterIp = null; } + } else { + try { + Pool.Record pr = getPoolRecord(slaveConn); + masterIp = pr.master.getAddress(slaveConn); + masterUrl = new URL("http://" + masterIp);; + masterConn = new XenServerConnection(masterUrl, username, + password, _retries, _interval, wait); + Session.loginWithPassword(masterConn, username, password, + APIVersion.latest().toString()); + create_new_session = false; + + } catch (Exception e) { + cleanup(poolUuid); + masterConn = null; + masterIp = null; + } } if (create_new_session) { try{ diff --git a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java index 74c3968f6b8..9b7b850da37 100644 --- a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java @@ -159,16 +159,8 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L } } } - for( int i = 0; i < 2; i++ ) { + for (Map.Entry entry : hosts.entrySet()) { - Host host = entry.getKey(); - if( i== 0 ) { - if(!host.equals(master)) { - continue; - } else { - hosts.remove(host); - } - } Host.Record record = entry.getValue(); String hostAddr = record.address; @@ -247,7 +239,6 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L resource.start(); resources.put(resource, details); } - } if (!addHostsToPool(url, conn, dcId, podId, clusterId, resources)) { return null;