cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mlsoren...@apache.org
Subject git commit: updated refs/heads/master to 1b52a29
Date Sat, 17 Aug 2013 06:25:17 GMT
Updated Branches:
  refs/heads/master 9f4889a86 -> 1b52a298e


CLOUDSTACK-4379: Reset VM states when host is removed from cluster

   If you shut down the agent while VMs are running, the management
server assumes that the VMs are continuing to run. You can then
delete the host while it is in 'disconnected' state, and those VMs
will be unusable, forever in running state. They can't change state
because the host no longer exists. This patch checks for any VMs
that may have been tied to the removed host and resets their state
so that cloudstack can continue to manage them.


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

Branch: refs/heads/master
Commit: 1b52a298e828b01da8898d216f862f43c5b9bee0
Parents: 9f4889a
Author: Marcus Sorensen <marcus@betterservers.com>
Authored: Fri Aug 16 23:22:15 2013 -0600
Committer: Marcus Sorensen <marcus@betterservers.com>
Committed: Sat Aug 17 00:25:14 2013 -0600

----------------------------------------------------------------------
 server/src/com/cloud/resource/ResourceManagerImpl.java | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1b52a298/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 23ebfe3..44ee8e3 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -875,6 +875,15 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
         // Delete the associated entries in host ref table
         _storagePoolHostDao.deletePrimaryRecordsForHost(hostId);
 
+        // Make sure any VMs that were marked as being on this host are cleaned up
+        List<VMInstanceVO> vms = _vmDao.listByHostId(hostId);
+        for (VMInstanceVO vm : vms) {
+            // this is how VirtualMachineManagerImpl does it when it syncs VM states
+            vm.setState(State.Stopped);
+            vm.setHostId(null);
+            _vmDao.persist(vm);
+        }
+
         // For pool ids you got, delete local storage host entries in pool table
         // where
         for (StoragePoolHostVO pool : pools) {


Mime
View raw message