From 6f1335a4b7ee890c92a29f4c4531998230b9e78f Mon Sep 17 00:00:00 2001 From: "Dr. Jens Harbott" Date: Tue, 2 Aug 2022 08:36:32 +0200 Subject: [PATCH] Don't run periodic actions for StaticScheduler We want bindings to be fully static when using the StaticScheduler, so do not run the periodic actions in that scenario. Signed-off-by: Dr. Jens Harbott Change-Id: I2d874ce7170cdf3d81940dbe64960247b244fe87 (cherry picked from commit acfcd04dd42e41c68e58c45e000fddb0f597849b) --- neutron_dynamic_routing/db/bgp_dragentscheduler_db.py | 9 +++++---- .../services/bgp/scheduler/bgp_dragent_scheduler.py | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/neutron_dynamic_routing/db/bgp_dragentscheduler_db.py b/neutron_dynamic_routing/db/bgp_dragentscheduler_db.py index 37dd07fa..cf36f461 100644 --- a/neutron_dynamic_routing/db/bgp_dragentscheduler_db.py +++ b/neutron_dynamic_routing/db/bgp_dragentscheduler_db.py @@ -69,10 +69,11 @@ class BgpDrAgentSchedulerDbMixin(bgp_dras_ext.BgpDrSchedulerPluginBase, def add_periodic_dragent_status_check(self): if self.bgp_drscheduler: - self.add_agent_status_check_worker( - self.remove_bgp_speaker_from_down_dragents) - self.add_agent_status_check_worker( - self.schedule_all_unscheduled_bgp_speakers) + if self.bgp_drscheduler.periodic_actions: + self.add_agent_status_check_worker( + self.remove_bgp_speaker_from_down_dragents) + self.add_agent_status_check_worker( + self.schedule_all_unscheduled_bgp_speakers) else: LOG.warning(_LW("Cannot schedule BgpSpeaker to DrAgent. " "Reason: No scheduler registered.")) diff --git a/neutron_dynamic_routing/services/bgp/scheduler/bgp_dragent_scheduler.py b/neutron_dynamic_routing/services/bgp/scheduler/bgp_dragent_scheduler.py index e68afd1b..69f02b6d 100644 --- a/neutron_dynamic_routing/services/bgp/scheduler/bgp_dragent_scheduler.py +++ b/neutron_dynamic_routing/services/bgp/scheduler/bgp_dragent_scheduler.py @@ -128,6 +128,8 @@ class BgpDrAgentFilter(base_resource_filter.BaseResourceFilter): class BgpDrAgentSchedulerBase(BgpDrAgentFilter): + periodic_actions = True + def _register_callbacks(self): registry.subscribe(self.schedule_bgp_speaker_callback, dr_resources.BGP_SPEAKER, @@ -223,6 +225,8 @@ class WeightScheduler(base_scheduler.BaseWeightScheduler, class StaticScheduler(base_scheduler.BaseScheduler, BgpDrAgentFilter): + periodic_actions = False + def schedule_all_unscheduled_bgp_speakers(self, context): return True