From ff09a3ee1e26594f22b77ca11f477759c1c953fa Mon Sep 17 00:00:00 2001
From: Jakub Libosvar <libosvar@redhat.com>
Date: Wed, 31 Jul 2024 20:03:21 +0000
Subject: [PATCH] NB: Consolidate common code of events to the superclass

Change-Id: I7b7d8cb8402695bdd41fb0f87f1cb2e4fff80b50
Signed-off-by: Jakub Libosvar <libosvar@redhat.com>
(cherry picked from commit 6e9ee5803ef02fb1a7301c91f90d170e6b3db04c)
---
 .../openstack/watchers/base_watcher.py        | 24 +++++++------------
 .../drivers/openstack/watchers/bgp_watcher.py |  6 ++---
 .../openstack/watchers/evpn_watcher.py        |  6 ++---
 3 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/ovn_bgp_agent/drivers/openstack/watchers/base_watcher.py b/ovn_bgp_agent/drivers/openstack/watchers/base_watcher.py
index 80749461..05512c19 100644
--- a/ovn_bgp_agent/drivers/openstack/watchers/base_watcher.py
+++ b/ovn_bgp_agent/drivers/openstack/watchers/base_watcher.py
@@ -23,6 +23,10 @@ LOG = logging.getLogger(__name__)
 
 
 class Event(row_event.RowEvent):
+    def __init__(self, agent, events, table, condition=None):
+        self.agent = agent
+        super().__init__(events, table, condition)
+
     def run(self, *args, **kwargs):
         try:
             self._run(*args, **kwargs)
@@ -33,10 +37,8 @@ class Event(row_event.RowEvent):
 
 class PortBindingChassisEvent(Event):
     def __init__(self, bgp_agent, events):
-        self.agent = bgp_agent
         table = 'Port_Binding'
-        super(PortBindingChassisEvent, self).__init__(
-            events, table, None)
+        super().__init__(bgp_agent, events, table)
         self.event_name = self.__class__.__name__
 
     def _check_ip_associated(self, mac):
@@ -45,10 +47,8 @@ class PortBindingChassisEvent(Event):
 
 class OVNLBEvent(Event):
     def __init__(self, bgp_agent, events):
-        self.agent = bgp_agent
         table = 'Load_Balancer'
-        super(OVNLBEvent, self).__init__(
-            events, table, None)
+        super().__init__(bgp_agent, events, table)
         self.event_name = self.__class__.__name__
 
     def _get_router(self, row, key=constants.OVN_LB_LR_REF_EXT_ID_KEY):
@@ -87,19 +87,15 @@ class OVNLBEvent(Event):
 
 class LogicalSwitchChassisEvent(Event):
     def __init__(self, bgp_agent, events):
-        self.agent = bgp_agent
         table = 'Logical_Switch'
-        super(LogicalSwitchChassisEvent, self).__init__(
-            events, table, None)
+        super().__init__(bgp_agent, events, table)
         self.event_name = self.__class__.__name__
 
 
 class LSPChassisEvent(Event):
     def __init__(self, bgp_agent, events):
-        self.agent = bgp_agent
         table = 'Logical_Switch_Port'
-        super(LSPChassisEvent, self).__init__(
-            events, table, None)
+        super().__init__(bgp_agent, events, table)
         self.event_name = self.__class__.__name__
 
     def _check_ip_associated(self, mac):
@@ -141,10 +137,8 @@ class LSPChassisEvent(Event):
 
 class LRPChassisEvent(Event):
     def __init__(self, bgp_agent, events):
-        self.agent = bgp_agent
         table = 'Logical_Router_Port'
-        super(LRPChassisEvent, self).__init__(
-            events, table, None)
+        super().__init__(bgp_agent, events, table)
         self.event_name = self.__class__.__name__
 
     def _get_network(self, row):
diff --git a/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py b/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py
index de197a4d..8d394d6d 100644
--- a/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py
+++ b/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py
@@ -486,11 +486,11 @@ class ChassisCreateEventBase(base_watcher.Event):
     table = None
 
     def __init__(self, bgp_agent):
-        self.agent = bgp_agent
         self.first_time = True
         events = (self.ROW_CREATE,)
-        super(ChassisCreateEventBase, self).__init__(
-            events, self.table, (('name', '=', self.agent.chassis),))
+        super().__init__(
+            bgp_agent, events, self.table,
+            (('name', '=', bgp_agent.chassis),))
         self.event_name = self.__class__.__name__
 
     def _run(self, event, row, old):
diff --git a/ovn_bgp_agent/drivers/openstack/watchers/evpn_watcher.py b/ovn_bgp_agent/drivers/openstack/watchers/evpn_watcher.py
index 7ecd20eb..ddbbe88e 100644
--- a/ovn_bgp_agent/drivers/openstack/watchers/evpn_watcher.py
+++ b/ovn_bgp_agent/drivers/openstack/watchers/evpn_watcher.py
@@ -218,11 +218,11 @@ class ChassisCreateEventBase(base_watcher.Event):
     table = None
 
     def __init__(self, bgp_agent):
-        self.agent = bgp_agent
         self.first_time = True
         events = (self.ROW_CREATE,)
-        super(ChassisCreateEventBase, self).__init__(
-            events, self.table, (('name', '=', self.agent.chassis),))
+        super().__init__(
+            bgp_agent, events, self.table,
+            (('name', '=', bgp_agent.chassis),))
         self.event_name = self.__class__.__name__
 
     def _run(self, event, row, old):