Repository: cloudstack Updated Branches: refs/heads/CLOUDSTACK-8247 1f99692d3 -> 04176eaf1 (forced update)
CLOUDSTACK-8243: KVM agent should not use hardcoded string tails For KVM agent, guid is configurable in agent.properties, this fix allows the configuration to work by removing string tail (the -LibvirtComputingResource suffix). Signed-off-by: Rohit Yadav <[email protected]> This closes #286 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/803b946c Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/803b946c Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/803b946c Branch: refs/heads/CLOUDSTACK-8247 Commit: 803b946c2feae193d04219d2360c6d4440f212f1 Parents: 90ac1ab Author: Rohit Yadav <[email protected]> Authored: Fri May 22 14:21:36 2015 +0100 Committer: Rohit Yadav <[email protected]> Committed: Fri May 22 18:11:52 2015 +0100 ---------------------------------------------------------------------- .../kvm/discoverer/LibvirtServerDiscoverer.java | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/803b946c/server/src/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java b/server/src/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java index 350b9a7..774f68e 100644 --- a/server/src/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/kvm/discoverer/LibvirtServerDiscoverer.java @@ -139,15 +139,15 @@ public abstract class LibvirtServerDiscoverer extends DiscovererBase implements InetAddress ia = InetAddress.getByName(hostname); agentIp = ia.getHostAddress(); String guid = UUID.nameUUIDFromBytes(agentIp.getBytes()).toString(); - String guidWithTail = guid + "-LibvirtComputingResource";/* - * tail - * added by - * agent - * .java - */ - if (_resourceMgr.findHostByGuid(guidWithTail) != null) { - s_logger.debug("Skipping " + agentIp + " because " + guidWithTail + " is already in the database."); - return null; + + List<HostVO> existingHosts = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.Routing, dcId); + if (existingHosts != null) { + for (HostVO existingHost : existingHosts) { + if (existingHost.getGuid().toLowerCase().startsWith(guid.toLowerCase())) { + s_logger.debug("Skipping " + agentIp + " because " + guid + " is already in the database for resource " + existingHost.getGuid()); + return null; + } + } } sshConnection = new com.trilead.ssh2.Connection(agentIp, 22); @@ -225,11 +225,11 @@ public abstract class LibvirtServerDiscoverer extends DiscovererBase implements kvmResource.configure("kvm agent", params); resources.put(kvmResource, details); - HostVO connectedHost = waitForHostConnect(dcId, podId, clusterId, guidWithTail); + HostVO connectedHost = waitForHostConnect(dcId, podId, clusterId, guid); if (connectedHost == null) return null; - details.put("guid", guidWithTail); + details.put("guid", connectedHost.getGuid()); // place a place holder guid derived from cluster ID if (cluster.getGuid() == null) { @@ -261,7 +261,7 @@ public abstract class LibvirtServerDiscoverer extends DiscovererBase implements for (int i = 0; i < _waitTime * 2; i++) { List<HostVO> hosts = _resourceMgr.listAllUpAndEnabledHosts(Host.Type.Routing, clusterId, podId, dcId); for (HostVO host : hosts) { - if (host.getGuid().equalsIgnoreCase(guid)) { + if (host.getGuid().toLowerCase().startsWith(guid.toLowerCase())) { return host; } }
