From 374a4a1b9273acab9b10308d1990cb9f4e3c2b8b Mon Sep 17 00:00:00 2001 From: Boden R Date: Fri, 4 Jan 2019 14:57:17 -0700 Subject: [PATCH] use payloads for SEGMENT AFTER_DELETE events This patch switches the code over to the payload style of callbacks [1] for SEGMENT AFTER_DELETE events. [1] https://docs.openstack.org/neutron-lib/latest/contributor/callbacks.html Change-Id: Icf5f82c16b4ccbad9baf12750e23375d9910182a --- neutron/plugins/ml2/plugin.py | 11 +++++++++-- neutron/services/segments/db.py | 8 +++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py index 4f05cb5890d..b3e98e69ff1 100644 --- a/neutron/plugins/ml2/plugin.py +++ b/neutron/plugins/ml2/plugin.py @@ -2002,10 +2002,17 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, return True return False + @registry.receives(resources.SEGMENT, [events.AFTER_DELETE]) + def _handle_after_delete_segment_change( + self, rtype, event, trigger, payload=None): + # TODO(boden); refactor into _handle_segment_change once all + # event types use payloads + return self._handle_segment_change( + rtype, event, trigger, payload.context, payload.latest_state) + @registry.receives(resources.SEGMENT, (events.PRECOMMIT_CREATE, events.PRECOMMIT_DELETE, - events.AFTER_CREATE, - events.AFTER_DELETE)) + events.AFTER_CREATE)) def _handle_segment_change(self, rtype, event, trigger, context, segment): if (event == events.PRECOMMIT_CREATE and not isinstance(trigger, segments_plugin.Plugin)): diff --git a/neutron/services/segments/db.py b/neutron/services/segments/db.py index 0ab163d3ad3..f725eaa93df 100644 --- a/neutron/services/segments/db.py +++ b/neutron/services/segments/db.py @@ -203,9 +203,11 @@ class SegmentDbMixin(common_db_mixin.CommonDbMixin): self.delete_segment, context=context, segment=segment_dict) - registry.notify(resources.SEGMENT, events.AFTER_DELETE, - self.delete_segment, context=context, - segment=segment_dict) + registry.publish(resources.SEGMENT, events.AFTER_DELETE, + self.delete_segment, + payload=events.DBEventPayload( + context, states=(segment_dict,), + resource_id=uuid)) @db_api.retry_if_session_inactive()