diff options
| author | Brian Lamar <brian.lamar@rackspace.com> | 2012-01-19 18:02:13 -0500 |
|---|---|---|
| committer | Brian Lamar <brian.lamar@rackspace.com> | 2012-01-19 18:05:04 -0500 |
| commit | 7265a71d998d5a6a4fc2a7f060178e365c882ca5 (patch) | |
| tree | 92da39cec9320e8a1ab556817bafc20593c30e18 | |
| parent | 4f204a6d75f2d48608aeeafae20ab3bf8cbadf73 (diff) | |
Fix for bug 918502
The previous fix for this did not take, this change has a test and
should once and for all solve this issue.
Change-Id: Ieb4def28dce4f1f993a2af87425bd280185456ab
| -rw-r--r-- | nova/compute/manager.py | 2 | ||||
| -rw-r--r-- | nova/tests/test_compute.py | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index c37bec2c2..807150949 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -914,7 +914,7 @@ class ComputeManager(manager.SchedulerDependentManager): if instance_state != expected_state: self._instance_update(context, instance_id, task_state=None) raise exception.Error(_('Failed to set admin password. ' - 'Instance %s is not running'), + 'Instance %s is not running') % instance_ref["uuid"]) else: try: diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 17cf46ceb..77daa4564 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -520,6 +520,22 @@ class ComputeTestCase(BaseTestCase): self.compute.terminate_instance(self.context, inst_ref['uuid']) + def test_set_admin_password_bad_state(self): + """Test setting password while instance is rebuilding.""" + instance = self._create_fake_instance() + self.compute.run_instance(self.context, instance['uuid']) + db.instance_update(self.context, instance['uuid'], { + "power_state": power_state.NOSTATE, + }) + instance = db.instance_get_by_uuid(self.context, instance['uuid']) + + self.assertEqual(instance['power_state'], power_state.NOSTATE) + self.assertRaises(exception.Error, + self.compute.set_admin_password, + self.context, + instance['uuid']) + self.compute.terminate_instance(self.context, instance['uuid']) + def test_set_admin_password_driver_error(self): """Ensure error is raised admin password set""" |
