summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/compute/test_compute.py42
1 files changed, 36 insertions, 6 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index 0e7148a9a..4370888bf 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -3263,7 +3263,12 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, instance['uuid'])
def test_delete_soft(self):
- instance, instance_uuid = self._run_instance()
+ instance, instance_uuid = self._run_instance(params={
+ 'host': FLAGS.host})
+
+ self.mox.StubOutWithMock(nova.quota.QUOTAS, 'commit')
+ nova.quota.QUOTAS.commit(mox.IgnoreArg(), mox.IgnoreArg())
+ self.mox.ReplayAll()
self.compute_api.soft_delete(self.context, instance)
@@ -3273,10 +3278,11 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, instance['uuid'])
def test_delete_soft_fail(self):
- instance, instance_uuid = self._run_instance()
-
+ instance, instance_uuid = self._run_instance(params={
+ 'host': FLAGS.host})
instance = db.instance_update(self.context, instance_uuid,
{'disable_terminate': True})
+
self.compute_api.soft_delete(self.context, instance)
instance = db.instance_get_by_uuid(self.context, instance_uuid)
@@ -3284,6 +3290,27 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, instance['uuid'])
+ def test_delete_soft_rollback(self):
+ instance, instance_uuid = self._run_instance(params={
+ 'host': FLAGS.host})
+
+ self.mox.StubOutWithMock(nova.quota.QUOTAS, 'rollback')
+ nova.quota.QUOTAS.rollback(mox.IgnoreArg(), mox.IgnoreArg())
+ self.mox.ReplayAll()
+
+ def fail(*args, **kwargs):
+ raise test.TestingException()
+ self.stubs.Set(self.compute_api.compute_rpcapi, 'soft_delete_instance',
+ fail)
+
+ self.assertRaises(test.TestingException, self.compute_api.soft_delete,
+ self.context, instance)
+
+ instance = db.instance_get_by_uuid(self.context, instance_uuid)
+ self.assertEqual(instance['task_state'], task_states.SOFT_DELETING)
+
+ db.instance_destroy(self.context, instance['uuid'])
+
def test_force_delete(self):
"""Ensure instance can be deleted after a soft delete"""
instance = jsonutils.to_primitive(self._create_fake_instance(params={
@@ -3378,9 +3405,8 @@ class ComputeAPITestCase(BaseTestCase):
def test_restore(self):
"""Ensure instance can be restored from a soft delete"""
- instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_uuid = instance['uuid']
- self.compute.run_instance(self.context, instance=instance)
+ instance, instance_uuid = self._run_instance(params={
+ 'host': FLAGS.host})
instance = db.instance_get_by_uuid(self.context, instance_uuid)
self.compute_api.soft_delete(self.context, instance)
@@ -3393,6 +3419,10 @@ class ComputeAPITestCase(BaseTestCase):
{'vm_state': vm_states.SOFT_DELETED,
'task_state': None})
+ self.mox.StubOutWithMock(nova.quota.QUOTAS, 'commit')
+ nova.quota.QUOTAS.commit(mox.IgnoreArg(), mox.IgnoreArg())
+ self.mox.ReplayAll()
+
self.compute_api.restore(self.context, instance)
instance = db.instance_get_by_uuid(self.context, instance_uuid)