From 2cd0ac795a67bb7416df8c8a6fccccf78fc5e430 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 9 Sep 2010 08:55:09 -0700 Subject: fixed logic in set_state code to stop endless loops --- nova/virt/libvirt_conn.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py index febb0ce9b..d868e083c 100644 --- a/nova/virt/libvirt_conn.py +++ b/nova/virt/libvirt_conn.py @@ -139,10 +139,9 @@ class LibvirtConnection(object): timer = task.LoopingCall(f=None) def _wait_for_shutdown(): try: - db.instance_set_state(None, - instance['id'], - self.get_info(instance['name'])['state']) - if instance.state == power_state.SHUTDOWN: + state = self.get_info(instance['name'])['state'] + db.instance_set_state(None, instance['id'], state) + if state == power_state.SHUTDOWN: timer.stop() d.callback(None) except Exception: @@ -190,10 +189,9 @@ class LibvirtConnection(object): timer = task.LoopingCall(f=None) def _wait_for_reboot(): try: - db.instance_set_state(None, - instance['id'], - self.get_info(instance['name'])['state']) - if instance.state == power_state.RUNNING: + state = self.get_info(instance['name'])['state'] + db.instance_set_state(None, instance['id'], state) + if state == power_state.RUNNING: logging.debug('instance %s: rebooted', instance['name']) timer.stop() d.callback(None) @@ -226,10 +224,9 @@ class LibvirtConnection(object): timer = task.LoopingCall(f=None) def _wait_for_boot(): try: - db.instance_set_state(None, - instance['id'], - self.get_info(instance['name'])['state']) - if instance.state == power_state.RUNNING: + state = self.get_info(instance['name'])['state'] + db.instance_set_state(None, instance['id'], state) + if state == power_state.RUNNING: logging.debug('instance %s: booted', instance['name']) timer.stop() local_d.callback(None) -- cgit