summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Lamar <brian.lamar@rackspace.com>2012-01-19 18:02:13 -0500
committerBrian Lamar <brian.lamar@rackspace.com>2012-01-19 18:05:04 -0500
commit7265a71d998d5a6a4fc2a7f060178e365c882ca5 (patch)
tree92da39cec9320e8a1ab556817bafc20593c30e18
parent4f204a6d75f2d48608aeeafae20ab3bf8cbadf73 (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.py2
-rw-r--r--nova/tests/test_compute.py16
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"""