diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-09-21 21:48:12 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-09-21 21:48:12 +0000 |
| commit | f902a84576329889c40fc3fabb85abffacdcaa80 (patch) | |
| tree | 1b6242bf4c075c6197b542b62fe0c8daae580472 /nova | |
| parent | e7514acdc9cfa9d447bd912a918c7b88accc9926 (diff) | |
| parent | 75fa03557fd6f1e7c62079e9e89556f1af139202 (diff) | |
| download | nova-f902a84576329889c40fc3fabb85abffacdcaa80.tar.gz nova-f902a84576329889c40fc3fabb85abffacdcaa80.tar.xz nova-f902a84576329889c40fc3fabb85abffacdcaa80.zip | |
Merge "Set volume status to error if scheduling fails."
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/scheduler/manager.py | 6 | ||||
| -rw-r--r-- | nova/tests/scheduler/test_scheduler.py | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index feffb584b..824dc9eb0 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -76,9 +76,9 @@ class SchedulerManager(manager.Manager): context, volume_id, snapshot_id, image_id) except Exception as ex: with excutils.save_and_reraise_exception(): - self._set_vm_state_and_notify('create_volume', - {'vm_state': vm_states.ERROR}, - context, ex, {}) + LOG.warning(_("Failed to schedule create_volume: %(ex)s") % + locals()) + db.volume_update(context, volume_id, {'status': 'error'}) def live_migration(self, context, instance, dest, block_migration, disk_over_commit): diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py index 3c4a789b6..83e9cffc8 100644 --- a/nova/tests/scheduler/test_scheduler.py +++ b/nova/tests/scheduler/test_scheduler.py @@ -175,6 +175,18 @@ class SchedulerManagerTestCase(test.TestCase): self.manager.run_instance(self.context, request_spec, None, None, None, None, {}) + def test_create_volume_no_valid_host_puts_volume_in_error(self): + self._mox_schedule_method_helper('schedule_create_volume') + self.mox.StubOutWithMock(db, 'volume_update') + + self.manager.driver.schedule_create_volume(self.context, '1', '2', + None).AndRaise(exception.NoValidHost(reason='')) + db.volume_update(self.context, '1', {'status': 'error'}) + + self.mox.ReplayAll() + self.assertRaises(exception.NoValidHost, self.manager.create_volume, + self.context, '1', '2') + def test_prep_resize_no_valid_host_back_in_active_state(self): fake_instance_uuid = 'fake-instance-id' inst = {"vm_state": "", "task_state": ""} |
