diff options
| author | Dan Smith <danms@us.ibm.com> | 2013-01-02 10:59:42 -0800 |
|---|---|---|
| committer | Dan Smith <danms@us.ibm.com> | 2013-01-04 08:10:41 -0800 |
| commit | 10daa81057b2cfc0a3e21624b50b0b5d610b4db2 (patch) | |
| tree | 036decd2a534f377db737b7cf0130b50e44a71c9 /nova/tests | |
| parent | 1bf89924ba6eafc394612f9d62c1b52251825b2b (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.py | 75 |
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""" |
