summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-09-08 01:01:35 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-09-08 01:01:35 -0700
commit9cb96a14ed6328732ee0dbee08ad9fed5bde43d6 (patch)
treec52bc39df7978a1f1284a8ecc660251be15f6493
parent7b88b732505c27217a9e2cd823b5641ac730619e (diff)
parent08f3d9b52b3a759b64a15433e920b1a6db217288 (diff)
merged orm
-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 e26030158..febb0ce9b 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