summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-11-07 07:43:46 +0000
committerGerrit Code Review <review@openstack.org>2012-11-07 07:43:46 +0000
commitd01ac15a63e7a23bd53c543ac55ef94404422c23 (patch)
tree96b850771e3ae44a742e462f9a9cef2357c574ca /nova/tests
parentee3d2a190844b7b0493545c6e6967cfdf520a67d (diff)
parentb84b7daaf83b8280d4a80ca00c4d5e3783a162db (diff)
Merge "Fix quota updating during soft delete and restore"
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)