Repository: cloudstack
Updated Branches:
  refs/heads/master a413536f9 -> 4f969057b


CLOUDSTACK-7030. After the restart of MS in a clustered MS pool, not all hung 
worker VMs are recycled.
Recycle worker VMs that originally belonged to other management servers too 
because in case of MS restart, the owner MS might change.


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

Branch: refs/heads/master
Commit: 4f969057b2434cf09562c05a503592f661e7d83e
Parents: a413536
Author: Likitha Shetty <likitha.she...@citrix.com>
Authored: Mon Jul 7 12:01:38 2014 +0530
Committer: Likitha Shetty <likitha.she...@citrix.com>
Committed: Mon Jul 7 13:38:47 2014 +0530

----------------------------------------------------------------------
 framework/cluster/src/com/cloud/cluster/ClusterManager.java | 2 ++
 .../cluster/src/com/cloud/cluster/ClusterManagerImpl.java   | 9 +++++++++
 .../cloud/hypervisor/vmware/manager/VmwareManagerImpl.java  | 2 +-
 3 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4f969057/framework/cluster/src/com/cloud/cluster/ClusterManager.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterManager.java 
b/framework/cluster/src/com/cloud/cluster/ClusterManager.java
index ffdf366..86d6fb3 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterManager.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterManager.java
@@ -60,6 +60,8 @@ public interface ClusterManager extends Manager {
 
     long getCurrentRunId();
 
+    public long getManagementRunId(long msId);
+
     public interface Dispatcher {
         String getName();
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4f969057/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java 
b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
index 622aa62..4a0987f 100644
--- a/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
+++ b/framework/cluster/src/com/cloud/cluster/ClusterManagerImpl.java
@@ -1072,6 +1072,15 @@ public class ClusterManagerImpl extends ManagerBase 
implements ClusterManager, C
         return _runId;
     }
 
+    @Override
+    public long getManagementRunId(long msId) {
+        ManagementServerHostVO mshost = _mshostDao.findByMsid(msId);
+        if (mshost != null) {
+            return mshost.getRunid();
+        }
+        return -1;
+    }
+
     public boolean isManagementNodeAlive(long msid) {
         ManagementServerHostVO mshost = _mshostDao.findByMsid(msid);
         if (mshost != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4f969057/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
index 36d2322..3fd1a9c 100755
--- 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
+++ 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
@@ -531,7 +531,7 @@ public class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
             return true;
         }
 
-        if (msid == _clusterMgr.getManagementNodeId() && runid != 
_clusterMgr.getCurrentRunId()) {
+        if (runid != _clusterMgr.getManagementRunId(msid)) {
             if (s_logger.isInfoEnabled())
                 s_logger.info("Worker VM's owner management server has changed 
runid, recycle it");
             return true;

Reply via email to