Merge "Move segment deletion back to PRECOMMIT_DELETE"

This commit is contained in:
Zuul 2017-12-09 06:25:59 +00:00 committed by Gerrit Code Review
commit 3256f55a5c
3 changed files with 18 additions and 1 deletions

View File

@ -455,6 +455,11 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
network = self._make_network_dict(network_db, context=context)
registry.notify(resources.NETWORK, events.PRECOMMIT_DELETE,
self, context=context, network_id=id)
# We expire network_db here because precommit deletion
# might have left the relationship stale, for example,
# if we deleted a segment.
context.session.expire(network_db)
network_db = self._get_network(context, id)
context.session.delete(network_db)
registry.notify(resources.NETWORK, events.AFTER_DELETE,
self, context=context, network=network)

View File

@ -314,6 +314,6 @@ def subscribe():
resources.SEGMENT, events.PRECOMMIT_CREATE)
registry.subscribe(_delete_segments_for_network,
resources.NETWORK,
events.BEFORE_DELETE)
events.PRECOMMIT_DELETE)
subscribe()

View File

@ -356,6 +356,18 @@ class TestSegment(SegmentTestCase):
self._update('segments', segment['segment']['id'], segment,
expected_code=webob.exc.HTTPClientError.code)
def test_segment_notification_on_delete_network(self):
with mock.patch.object(db, '_delete_segments_for_network') as dsn:
db.subscribe()
with self.network() as network:
network = network['network']
self._delete('networks', network['id'])
dsn.assert_called_with(resources.NETWORK,
events.PRECOMMIT_DELETE,
mock.ANY,
context=mock.ANY,
network_id=mock.ANY)
class TestSegmentML2(SegmentTestCase):
def setUp(self):