Use payload style callback
Neutron-lib registry.notify will be removed Change-Id: I5d773851136759117b048660d34209a601054a69
This commit is contained in:
parent
630678b5f9
commit
cae03eaa49
|
@ -122,10 +122,11 @@ class BgpPlugin(service_base.ServicePluginBase,
|
|||
def create_bgp_speaker(self, context, bgp_speaker):
|
||||
bgp_speaker = super(BgpPlugin, self).create_bgp_speaker(context,
|
||||
bgp_speaker)
|
||||
payload = {'plugin': self, 'context': context,
|
||||
'bgp_speaker': bgp_speaker}
|
||||
registry.notify(dr_resources.BGP_SPEAKER, events.AFTER_CREATE,
|
||||
self, payload=payload)
|
||||
registry.publish(dr_resources.BGP_SPEAKER, events.AFTER_CREATE,
|
||||
self, payload=events.DBEventPayload(
|
||||
context,
|
||||
metadata={'plugin': self},
|
||||
states=(bgp_speaker,)))
|
||||
return bgp_speaker
|
||||
|
||||
def update_bgp_speaker(self, context, bgp_speaker_id, bgp_speaker):
|
||||
|
|
|
@ -197,10 +197,11 @@ class BgpDrAgentSchedulerBase(BgpDrAgentFilter):
|
|||
return [bgp_speaker_id_[0] for bgp_speaker_id_ in query]
|
||||
|
||||
def schedule_bgp_speaker_callback(self, resource, event, trigger, payload):
|
||||
plugin = payload['plugin']
|
||||
plugin = payload.metadata['plugin']
|
||||
bgp_speaker = payload.latest_state
|
||||
if event == events.AFTER_CREATE:
|
||||
ctx = nl_context.get_admin_context()
|
||||
plugin.schedule_bgp_speaker(ctx, payload['bgp_speaker'])
|
||||
plugin.schedule_bgp_speaker(ctx, bgp_speaker)
|
||||
|
||||
|
||||
class ChanceScheduler(base_scheduler.BaseChanceScheduler,
|
||||
|
|
|
@ -94,8 +94,10 @@ class TestSchedulerCallback(TestBgpDrAgentSchedulerBaseTestCase):
|
|||
|
||||
def _create_test_payload(self, context='test_ctx'):
|
||||
bgp_speaker = {'id': '11111111-2222-3333-4444-555555555555'}
|
||||
payload = {'plugin': self.plugin, 'context': context,
|
||||
'bgp_speaker': bgp_speaker}
|
||||
payload = events.DBEventPayload(
|
||||
context,
|
||||
metadata={'plugin': self.plugin},
|
||||
states=(bgp_speaker,))
|
||||
return payload
|
||||
|
||||
def test__register_callbacks(self):
|
||||
|
@ -123,7 +125,7 @@ class TestSchedulerCallback(TestBgpDrAgentSchedulerBaseTestCase):
|
|||
events.AFTER_CREATE,
|
||||
self.scheduler, payload)
|
||||
sched_bgp.assert_called_once_with(mock.ANY,
|
||||
payload['bgp_speaker'])
|
||||
payload.latest_state)
|
||||
|
||||
def test_schedule_bgp_speaker_callback_with_invalid_event(self):
|
||||
payload = self._create_test_payload()
|
||||
|
|
|
@ -46,8 +46,10 @@ class TestBgpPlugin(base.BaseTestCase):
|
|||
|
||||
def _create_test_payload(self, context='test_ctx'):
|
||||
bgp_speaker = {'id': '11111111-2222-3333-4444-555555555555'}
|
||||
payload = {'plugin': self.plugin, 'context': context,
|
||||
'bgp_speaker': bgp_speaker}
|
||||
payload = events.DBEventPayload(
|
||||
context,
|
||||
metadata={'plugin': self.plugin},
|
||||
states=(bgp_speaker,))
|
||||
return payload
|
||||
|
||||
def test__register_callbacks(self):
|
||||
|
@ -81,17 +83,21 @@ class TestBgpPlugin(base.BaseTestCase):
|
|||
payload = self._create_test_payload(context=test_context)
|
||||
with mock.patch.object(bgp_db.BgpDbMixin,
|
||||
'create_bgp_speaker') as create_bgp_sp:
|
||||
with mock.patch.object(registry, 'notify') as notify:
|
||||
create_bgp_sp.return_value = payload['bgp_speaker']
|
||||
with mock.patch.object(registry, 'publish') as publish:
|
||||
create_bgp_sp.return_value = payload.latest_state
|
||||
self.assertEqual(self.plugin.create_bgp_speaker(
|
||||
test_context, test_bgp_speaker),
|
||||
payload['bgp_speaker'])
|
||||
payload.latest_state)
|
||||
create_bgp_sp.assert_called_once_with(test_context,
|
||||
test_bgp_speaker)
|
||||
notify.assert_called_once_with(dr_resources.BGP_SPEAKER,
|
||||
events.AFTER_CREATE,
|
||||
self.plugin,
|
||||
payload=payload)
|
||||
publish.assert_called_once_with(dr_resources.BGP_SPEAKER,
|
||||
events.AFTER_CREATE,
|
||||
self.plugin,
|
||||
payload=mock.ANY)
|
||||
publish_payload = publish.call_args_list[0][1]['payload']
|
||||
self.assertEqual(payload.latest_state,
|
||||
publish_payload.latest_state)
|
||||
self.assertEqual(payload.context, publish_payload.context)
|
||||
|
||||
def test_floatingip_update_callback(self):
|
||||
new_fip = {'floating_ip_address': netaddr.IPAddress('10.10.10.10'),
|
||||
|
|
Loading…
Reference in New Issue