diff --git a/neutron/agent/ovn/metadata/agent.py b/neutron/agent/ovn/metadata/agent.py index 35ff2dfe4f5..42228d8c0cc 100644 --- a/neutron/agent/ovn/metadata/agent.py +++ b/neutron/agent/ovn/metadata/agent.py @@ -171,8 +171,7 @@ class MetadataAgent(object): self._load_config() # Launch the server that will act as a proxy between the VM's and Nova. - proxy = metadata_server.UnixDomainMetadataProxy(self.conf, - self.chassis) + proxy = metadata_server.UnixDomainMetadataProxy(self.conf) proxy.run() # Open the connection to OVN SB database. diff --git a/neutron/agent/ovn/metadata/ovsdb.py b/neutron/agent/ovn/metadata/ovsdb.py index 703edc68042..eb5311d4d87 100644 --- a/neutron/agent/ovn/metadata/ovsdb.py +++ b/neutron/agent/ovn/metadata/ovsdb.py @@ -27,17 +27,19 @@ class MetadataAgentOvnSbIdl(ovsdb_monitor.OvnIdl): SCHEMA = 'OVN_Southbound' - def __init__(self, chassis, events=None): + def __init__(self, chassis=None, events=None, tables=None): connection_string = config.get_ovn_sb_connection() ovsdb_monitor._check_and_set_ssl_files(self.SCHEMA) helper = self._get_ovsdb_helper(connection_string) - tables = ('Chassis', 'Encap', 'Port_Binding', 'Datapath_Binding', - 'SB_Global') + if tables is None: + tables = ('Chassis', 'Encap', 'Port_Binding', 'Datapath_Binding', + 'SB_Global') for table in tables: helper.register_table(table) super(MetadataAgentOvnSbIdl, self).__init__( None, connection_string, helper) - self.tables['Chassis'].condition = [['name', '==', chassis]] + if chassis and 'Chassis' in tables: + self.tables['Chassis'].condition = [['name', '==', chassis]] if events: self.notify_handler.watch_events(events) diff --git a/neutron/agent/ovn/metadata/server.py b/neutron/agent/ovn/metadata/server.py index 8ab2f71bb93..6517a2e58b6 100644 --- a/neutron/agent/ovn/metadata/server.py +++ b/neutron/agent/ovn/metadata/server.py @@ -44,9 +44,8 @@ MODE_MAP = { class MetadataProxyHandler(object): - def __init__(self, conf, chassis=''): + def __init__(self, conf): self.conf = conf - self.chassis = chassis self.subscribe() def subscribe(self): @@ -57,7 +56,8 @@ class MetadataProxyHandler(object): def post_fork_initialize(self, resource, event, trigger, payload=None): # We need to open a connection to OVN SouthBound database for # each worker so that we can process the metadata requests. - self.sb_idl = ovsdb.MetadataAgentOvnSbIdl(chassis=self.chassis).start() + self.sb_idl = ovsdb.MetadataAgentOvnSbIdl( + tables=('Port_Binding', 'Datapath_Binding')).start() @webob.dec.wsgify(RequestClass=webob.Request) def __call__(self, req): @@ -162,9 +162,8 @@ class MetadataProxyHandler(object): class UnixDomainMetadataProxy(object): - def __init__(self, conf, chassis=''): + def __init__(self, conf): self.conf = conf - self.chassis = chassis agent_utils.ensure_directory_exists_without_file( cfg.CONF.metadata_proxy_socket) @@ -189,7 +188,7 @@ class UnixDomainMetadataProxy(object): def run(self): self.server = agent_utils.UnixDomainWSGIServer( 'networking-ovn-metadata-agent') - self.server.start(MetadataProxyHandler(self.conf, self.chassis), + self.server.start(MetadataProxyHandler(self.conf), self.conf.metadata_proxy_socket, workers=self.conf.metadata_workers, backlog=self.conf.metadata_backlog,