Remove obtaining event classes from strings

The patch instantiates the events directly instead of collecting their
names and then calling getattr for each to instantiate it.

Change-Id: I05598c357b636d3d5d70d7cbefe6acae9dbf8033
This commit is contained in:
Jakub Libosvar 2024-01-11 21:12:50 +00:00
parent df6be866e7
commit d5171f8a67

View File

@ -119,10 +119,7 @@ class NBOVNBGPDriver(driver_api.AgentDriverBase):
LOG.info("Configured allowed address scopes: %s",
", ".join(self.allowed_address_scopes))
events = ()
for event in self._get_events():
event_class = getattr(watcher, event)
events += (event_class(self),)
events = self._get_events()
self._post_start_event.clear()
self.nb_idl = ovn.OvnNbIdl(
@ -142,20 +139,20 @@ class NBOVNBGPDriver(driver_api.AgentDriverBase):
self._post_start_event.set()
def _get_events(self):
events = {"LogicalSwitchPortProviderCreateEvent",
"LogicalSwitchPortProviderDeleteEvent",
"LogicalSwitchPortFIPCreateEvent",
"LogicalSwitchPortFIPDeleteEvent",
"LocalnetCreateDeleteEvent",
"OVNLBCreateEvent",
"OVNLBDeleteEvent"}
events = {watcher.LogicalSwitchPortProviderCreateEvent(self),
watcher.LogicalSwitchPortProviderDeleteEvent(self),
watcher.LogicalSwitchPortFIPCreateEvent(self),
watcher.LogicalSwitchPortFIPDeleteEvent(self),
watcher.LocalnetCreateDeleteEvent(self),
watcher.OVNLBCreateEvent(self),
watcher.OVNLBDeleteEvent(self)}
if self._expose_tenant_networks:
events.update({"ChassisRedirectCreateEvent",
"ChassisRedirectDeleteEvent",
"LogicalSwitchPortSubnetAttachEvent",
"LogicalSwitchPortSubnetDetachEvent",
"LogicalSwitchPortTenantCreateEvent",
"LogicalSwitchPortTenantDeleteEvent"})
events.update({watcher.ChassisRedirectCreateEvent(self),
watcher.ChassisRedirectDeleteEvent(self),
watcher.LogicalSwitchPortSubnetAttachEvent(self),
watcher.LogicalSwitchPortSubnetDetachEvent(self),
watcher.LogicalSwitchPortTenantCreateEvent(self),
watcher.LogicalSwitchPortTenantDeleteEvent(self)})
return events
@lockutils.synchronized('nbbgp')