summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Harris <rick.harris@rackspace.com>2011-01-22 04:59:58 +0000
committerRick Harris <rick.harris@rackspace.com>2011-01-22 04:59:58 +0000
commitf5b051bbd0858294157f911ecbb04542fadbb38d (patch)
tree605014146ca297bcfc77afa8c288353192d90280
parent69dd45d382f241389ff19983a4f12404f0a63662 (diff)
downloadnova-f5b051bbd0858294157f911ecbb04542fadbb38d.tar.gz
nova-f5b051bbd0858294157f911ecbb04542fadbb38d.tar.xz
nova-f5b051bbd0858294157f911ecbb04542fadbb38d.zip
Skip shutdown if already halted
-rw-r--r--nova/virt/xenapi/vmops.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 7ae93b243..2ccd1ec24 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -254,6 +254,12 @@ class VMOps(object):
def _shutdown(self, instance, vm):
"""Shutdown an instance """
+ state = self.get_info(instance['name'])['state']
+ if state == power_state.SHUTDOWN:
+ LOG.warn(_("VM %(vm)s already halted, skipping shutdown...") %
+ locals())
+ return
+
try:
task = self._session.call_xenapi('Async.VM.hard_shutdown', vm)
self._session.wait_for_task(instance.id, task)