summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorDan Smith <danms@us.ibm.com>2013-01-02 10:59:42 -0800
committerDan Smith <danms@us.ibm.com>2013-01-04 08:10:41 -0800
commit10daa81057b2cfc0a3e21624b50b0b5d610b4db2 (patch)
tree036decd2a534f377db737b7cf0130b50e44a71c9 /nova/tests
parent1bf89924ba6eafc394612f9d62c1b52251825b2b (diff)
Move block_device_mapping destroy operations to conductor
This patch moves the compute/manager's use of block_device_mapping_destroy operations to the conductor. Specifically: - block_device_mapping_destroy() - block_device_mapping_destroy_by_instance_and_device() - block_device_mapping_destroy_by_instance_and_volume() Once again, this just adds a single destroy operation to the conductor's RPC API and replicates the older interfaces in the public API. Further, the first now takes a list of bdms to be destroyed (unlike the db operation it mirrors) so that multiple RPC calls can be avoided for bulk delete operations. Related to blueprint no-db-compute-manager Change-Id: Ib93184ee6d32fcda90f75a26b579787e4625e9ae
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/conductor/test_conductor.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 4aa552cc7..23930770a 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -305,6 +305,34 @@ class ConductorTestCase(_BaseTestCase, test.TestCase):
self.conductor.block_device_mapping_update_or_create(self.context,
fake_bdm)
+ def test_block_device_mapping_destroy(self):
+ fake_bdm = {'id': 'fake-bdm'}
+ fake_bdm2 = {'id': 'fake-bdm-2'}
+ fake_inst = {'uuid': 'fake-uuid'}
+ self.mox.StubOutWithMock(db, 'block_device_mapping_destroy')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_device')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_volume')
+ db.block_device_mapping_destroy(self.context, 'fake-bdm')
+ db.block_device_mapping_destroy(self.context, 'fake-bdm-2')
+ db.block_device_mapping_destroy_by_instance_and_device(self.context,
+ 'fake-uuid',
+ 'fake-device')
+ db.block_device_mapping_destroy_by_instance_and_volume(self.context,
+ 'fake-uuid',
+ 'fake-volume')
+ self.mox.ReplayAll()
+ self.conductor.block_device_mapping_destroy(self.context,
+ [fake_bdm,
+ fake_bdm2])
+ self.conductor.block_device_mapping_destroy(self.context,
+ instance=fake_inst,
+ device_name='fake-device')
+ self.conductor.block_device_mapping_destroy(self.context,
+ instance=fake_inst,
+ volume_id='fake-volume')
+
class ConductorRPCAPITestCase(_BaseTestCase, test.TestCase):
"""Conductor RPC API Tests"""
@@ -332,6 +360,31 @@ class ConductorRPCAPITestCase(_BaseTestCase, test.TestCase):
self.conductor.block_device_mapping_update_or_create(self.context,
fake_bdm)
+ def test_block_device_mapping_destroy(self):
+ fake_bdm = {'id': 'fake-bdm'}
+ fake_inst = {'uuid': 'fake-uuid'}
+ self.mox.StubOutWithMock(db, 'block_device_mapping_destroy')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_device')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_volume')
+ db.block_device_mapping_destroy(self.context, 'fake-bdm')
+ db.block_device_mapping_destroy_by_instance_and_device(self.context,
+ 'fake-uuid',
+ 'fake-device')
+ db.block_device_mapping_destroy_by_instance_and_volume(self.context,
+ 'fake-uuid',
+ 'fake-volume')
+ self.mox.ReplayAll()
+ self.conductor.block_device_mapping_destroy(self.context,
+ bdms=[fake_bdm])
+ self.conductor.block_device_mapping_destroy(self.context,
+ instance=fake_inst,
+ device_name='fake-device')
+ self.conductor.block_device_mapping_destroy(self.context,
+ instance=fake_inst,
+ volume_id='fake-volume')
+
class ConductorAPITestCase(_BaseTestCase, test.TestCase):
"""Conductor API Tests"""
@@ -375,6 +428,28 @@ class ConductorAPITestCase(_BaseTestCase, test.TestCase):
self.conductor.block_device_mapping_update_or_create(self.context,
'fake-bdm')
+ def test_block_device_mapping_destroy(self):
+ fake_bdm = {'id': 'fake-bdm'}
+ fake_inst = {'uuid': 'fake-uuid'}
+ self.mox.StubOutWithMock(db, 'block_device_mapping_destroy')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_device')
+ self.mox.StubOutWithMock(
+ db, 'block_device_mapping_destroy_by_instance_and_volume')
+ db.block_device_mapping_destroy(self.context, 'fake-bdm')
+ db.block_device_mapping_destroy_by_instance_and_device(self.context,
+ 'fake-uuid',
+ 'fake-device')
+ db.block_device_mapping_destroy_by_instance_and_volume(self.context,
+ 'fake-uuid',
+ 'fake-volume')
+ self.mox.ReplayAll()
+ self.conductor.block_device_mapping_destroy(self.context, [fake_bdm])
+ self.conductor.block_device_mapping_destroy_by_instance_and_device(
+ self.context, fake_inst, 'fake-device')
+ self.conductor.block_device_mapping_destroy_by_instance_and_volume(
+ self.context, fake_inst, 'fake-volume')
+
class ConductorLocalAPITestCase(ConductorAPITestCase):
"""Conductor LocalAPI Tests"""