summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/openstack/contrib/test_rescue.py10
-rw-r--r--nova/tests/test_compute.py25
2 files changed, 33 insertions, 2 deletions
diff --git a/nova/tests/api/openstack/contrib/test_rescue.py b/nova/tests/api/openstack/contrib/test_rescue.py
index 403bcfd4c..f5b69865c 100644
--- a/nova/tests/api/openstack/contrib/test_rescue.py
+++ b/nova/tests/api/openstack/contrib/test_rescue.py
@@ -23,17 +23,23 @@ from nova.tests.api.openstack import fakes
FLAGS = flags.FLAGS
-def rescue(self, context, instance_id, rescue_password=None):
+def rescue(self, context, instance, rescue_password=None):
pass
-def unrescue(self, context, instance_id):
+def unrescue(self, context, instance):
pass
class RescueTest(test.TestCase):
def setUp(self):
super(RescueTest, self).setUp()
+
+ def fake_compute_get(*args, **kwargs):
+ uuid = '70f6db34-de8d-4fbd-aafb-4065bdfa6114'
+ return {'id': 1, 'uuid': uuid}
+
+ self.stubs.Set(compute.api.API, "get", fake_compute_get)
self.stubs.Set(compute.api.API, "rescue", rescue)
self.stubs.Set(compute.api.API, "unrescue", unrescue)
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index 2e15a7f26..7dd6cd8d1 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -1190,6 +1190,31 @@ class ComputeAPITestCase(BaseTestCase):
self.compute.terminate_instance(self.context, instance_id)
+ def test_rescue_unrescue(self):
+ instance_id = self._create_instance()
+ self.compute.run_instance(self.context, instance_id)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['vm_state'], vm_states.ACTIVE)
+ self.assertEqual(inst_ref['task_state'], None)
+
+ self.compute_api.rescue(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['vm_state'], vm_states.ACTIVE)
+ self.assertEqual(inst_ref['task_state'], task_states.RESCUING)
+
+ params = {'vm_state': vm_states.RESCUED, 'task_state': None}
+ db.instance_update(self.context, instance_id, params)
+
+ self.compute_api.unrescue(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['vm_state'], vm_states.RESCUED)
+ self.assertEqual(inst_ref['task_state'], task_states.UNRESCUING)
+
+ self.compute.terminate_instance(self.context, instance_id)
+
def test_snapshot(self):
"""Can't backup an instance which is already being backed up."""
instance_id = self._create_instance()