You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/05/22 19:13:21 UTC

git commit: updated refs/heads/master to cd55413

Repository: cloudstack
Updated Branches:
  refs/heads/master 487d90148 -> cd55413c6


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 <ro...@shapeblue.com>

This closes #286

(cherry picked from commit 803b946c2feae193d04219d2360c6d4440f212f1)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cd55413c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cd55413c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cd55413c

Branch: refs/heads/master
Commit: cd55413c6ac469c49f1c19b9596a9390cedd611b
Parents: 487d901
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Fri May 22 14:21:36 2015 +0100
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Fri May 22 18:12:10 2015 +0100

----------------------------------------------------------------------
 .../kvm/discoverer/LibvirtServerDiscoverer.java | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cd55413c/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;
                 }
             }