diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-21 14:38:46 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-21 14:38:46 +0000 |
| commit | bca0043ac458e0440cb25e4b2844d3326e9815ce (patch) | |
| tree | 49ba1714c0bd18e9c91845e93270fa992233cc1e /nova | |
| parent | 7a0d4c2b1d7408890cc717f36752d6f4c2e79977 (diff) | |
| parent | 30b997d31953d35213ad39ddb3804d791efe5a22 (diff) | |
Merge "Avoid leaking BDMs for deleted instances."
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/compute/manager.py | 5 | ||||
| -rw-r--r-- | nova/tests/compute/test_compute.py | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 9bf06e1ef..c818ff855 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -922,6 +922,11 @@ class ComputeManager(manager.SchedulerDependentManager): self.db.instance_destroy(context, instance_uuid) system_meta = self.db.instance_system_metadata_get(context, instance_uuid) + + # ensure block device mappings are not leaked + for bdm in bdms: + self.db.block_device_mapping_destroy(context, bdm['id']) + self._notify_about_instance_usage(context, instance, "delete.end", system_metadata=system_meta) diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index c340199ae..5a0c8cc2e 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -647,6 +647,9 @@ class ComputeTestCase(BaseTestCase): instances = db.instance_get_all(context.get_admin_context()) LOG.info(_("After terminating instances: %s"), instances) self.assertEqual(len(instances), 0) + bdms = db.block_device_mapping_get_all_by_instance(self.context, + instance['uuid']) + self.assertEqual(len(bdms), 0) def test_terminate_no_network(self): # This is as reported in LP bug 1008875 |
