From 041e325dd03cbe5874770708f8e3f2b4a73d756c Mon Sep 17 00:00:00 2001 From: Johannes Erdfelt Date: Wed, 8 Feb 2012 22:03:17 +0000 Subject: Consistently update instance in nova/compute/manager.py The code used a mix of self.db.instance_update and self._update_instance, so settle on self._update_instance. Also, the code used a mix of self._update_instance and self._set_instance_error_state, so settle on self._set_instance_error_state. This also changes the code to not clear task_state in all cases, leaving it set for debugging purposes. Change-Id: I5c841ebfb60ba4acf62382060e416ea780bd66ba --- nova/compute/manager.py | 22 +++++++--------------- nova/tests/test_compute.py | 2 +- 2 files changed, 8 insertions(+), 16 deletions(-) (limited to 'nova') diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 5103ffdd6..84536a040 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -213,8 +213,7 @@ class ComputeManager(manager.SchedulerDependentManager): def _set_instance_error_state(self, context, instance_uuid): self._instance_update(context, instance_uuid, - vm_state=vm_states.ERROR, - task_state=None) + vm_state=vm_states.ERROR) def init_host(self): """Initialization for a standalone compute service.""" @@ -437,8 +436,7 @@ class ComputeManager(manager.SchedulerDependentManager): return except Exception as e: with utils.save_and_reraise_exception(): - self._instance_update(context, instance_uuid, - vm_state=vm_states.ERROR) + self._set_instance_error_state(context, instance_uuid) def _check_instance_not_already_created(self, context, instance): """Ensure an instance with the same name is not already present.""" @@ -1195,9 +1193,7 @@ class ComputeManager(manager.SchedulerDependentManager): same_host = instance_ref['host'] == FLAGS.host if same_host and not FLAGS.allow_resize_to_same_host: - self._instance_update(context, - instance_uuid, - vm_state=vm_states.ERROR) + self._set_instance_error_state(context, instance_uuid) msg = _('destination same as source!') raise exception.MigrationError(msg) @@ -1253,9 +1249,7 @@ class ComputeManager(manager.SchedulerDependentManager): with utils.save_and_reraise_exception(): msg = _('%s. Setting instance vm_state to ERROR') LOG.error(msg % error) - self._instance_update(context, - instance_uuid, - vm_state=vm_states.ERROR) + self._set_instance_error_state(context, instance_uuid) self.db.migration_update(context, migration_id, @@ -1330,9 +1324,7 @@ class ComputeManager(manager.SchedulerDependentManager): with utils.save_and_reraise_exception(): msg = _('%s. Setting instance vm_state to ERROR') LOG.error(msg % error) - self._instance_update(context, - instance_ref.uuid, - vm_state=vm_states.ERROR) + self._set_instance_error_state(context, instance_ref.uuid) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @checks_instance_lock @@ -1485,7 +1477,7 @@ class ComputeManager(manager.SchedulerDependentManager): context = context.elevated() LOG.debug(_('instance %s: locking'), instance_uuid, context=context) - self.db.instance_update(context, instance_uuid, {'locked': True}) + self._instance_update(context, instance_uuid, locked=True) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @wrap_instance_fault @@ -1494,7 +1486,7 @@ class ComputeManager(manager.SchedulerDependentManager): context = context.elevated() LOG.debug(_('instance %s: unlocking'), instance_uuid, context=context) - self.db.instance_update(context, instance_uuid, {'locked': False}) + self._instance_update(context, instance_uuid, locked=False) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @wrap_instance_fault diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 221f86fe7..33861000d 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -590,7 +590,7 @@ class ComputeTestCase(BaseTestCase): inst_ref = db.instance_get_by_uuid(self.context, instance_uuid) self.assertEqual(inst_ref['vm_state'], vm_states.ERROR) - self.assertEqual(inst_ref['task_state'], None) + self.assertEqual(inst_ref['task_state'], task_states.UPDATING_PASSWORD) self.compute.terminate_instance(self.context, inst_ref['uuid']) -- cgit