summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorSoren Hansen <soren.hansen@rackspace.com>2010-09-10 15:02:07 +0200
committerSoren Hansen <soren.hansen@rackspace.com>2010-09-10 15:02:07 +0200
commitd64adee4656a3044258c7dbfff93f5201c39560c (patch)
tree26b1419d5fd8c8f98a55de70461dbe342b133fab /nova/virt
parentc3dd0aa79d982d8f34172e6023d4b632ea23f2b9 (diff)
parent33d832ee798bc9530be577e3234ff8bcdac4939e (diff)
Merge with orm_deux (fixing up style changes in my stuff at the same time).
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/libvirt_conn.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py
index 7bf2a68b1..6f708bb80 100644
--- a/nova/virt/libvirt_conn.py
+++ b/nova/virt/libvirt_conn.py
@@ -139,12 +139,16 @@ class LibvirtConnection(object):
timer = task.LoopingCall(f=None)
def _wait_for_shutdown():
try:
- instance.set_state(self.get_info(instance['name'])['state'])
+ db.instance_set_state(None,
+ instance['id'],
+ self.get_info(instance['name'])['state'])
if instance.state == power_state.SHUTDOWN:
timer.stop()
d.callback(None)
except Exception:
- instance.set_state(power_state.SHUTDOWN)
+ db.instance_set_state(None,
+ instance['id'],
+ power_state.SHUTDOWN)
timer.stop()
d.callback(None)
timer.f = _wait_for_shutdown
@@ -186,14 +190,18 @@ class LibvirtConnection(object):
timer = task.LoopingCall(f=None)
def _wait_for_reboot():
try:
- instance.set_state(self.get_info(instance['name'])['state'])
+ db.instance_set_state(None,
+ instance['id'],
+ self.get_info(instance['name'])['state'])
if instance.state == power_state.RUNNING:
logging.debug('instance %s: rebooted', instance['name'])
timer.stop()
d.callback(None)
except Exception, exn:
logging.error('_wait_for_reboot failed: %s', exn)
- instance.set_state(power_state.SHUTDOWN)
+ db.instance_set_state(None,
+ instance['id'],
+ power_state.SHUTDOWN)
timer.stop()
d.callback(None)
timer.f = _wait_for_reboot
@@ -204,7 +212,10 @@ class LibvirtConnection(object):
@exception.wrap_exception
def spawn(self, instance):
xml = self.to_xml(instance)
- instance.set_state(power_state.NOSTATE, 'launching')
+ db.instance_set_state(None,
+ instance['id'],
+ power_state.NOSTATE,
+ 'launching')
yield self._create_image(instance, xml)
yield self._conn.createXML(xml, 0)
# TODO(termie): this should actually register
@@ -215,7 +226,9 @@ class LibvirtConnection(object):
timer = task.LoopingCall(f=None)
def _wait_for_boot():
try:
- instance.set_state(self.get_info(instance['name'])['state'])
+ db.instance_set_state(None,
+ instance['id'],
+ self.get_info(instance['name'])['state'])
if instance.state == power_state.RUNNING:
logging.debug('instance %s: booted', instance['name'])
timer.stop()
@@ -223,7 +236,9 @@ class LibvirtConnection(object):
except:
logging.exception('instance %s: failed to boot',
instance['name'])
- instance.set_state(power_state.SHUTDOWN)
+ db.instance_set_state(None,
+ instance['id'],
+ power_state.SHUTDOWN)
timer.stop()
local_d.callback(None)
timer.f = _wait_for_boot