Merge "Update OVN_AGENT_NEUTRON_SB_CFG_KEY when Neutron OVN Agent starts" into stable/2025.1
This commit is contained in:
@@ -151,6 +151,14 @@ class OVNNeutronAgent(service.Service):
|
||||
return ovsdb.MonitorAgentOvnSbIdl(tables, events,
|
||||
chassis=self.chassis).start()
|
||||
|
||||
def update_neutron_sb_cfg_key(self):
|
||||
nb_cfg = self.sb_idl.db_get('Chassis_Private',
|
||||
self.chassis, 'nb_cfg').execute()
|
||||
external_ids = {ovn_const.OVN_AGENT_NEUTRON_SB_CFG_KEY: str(nb_cfg)}
|
||||
self.sb_idl.db_set(
|
||||
'Chassis_Private', self.chassis,
|
||||
('external_ids', external_ids)).execute(check_error=True)
|
||||
|
||||
def start(self):
|
||||
self.ext_manager_api.ovs_idl = self._load_ovs_idl()
|
||||
self.load_config()
|
||||
@@ -159,6 +167,8 @@ class OVNNeutronAgent(service.Service):
|
||||
self.ext_manager_api.sb_idl = self._load_sb_idl()
|
||||
self.ext_manager_api.nb_idl = self._load_nb_idl()
|
||||
self.ext_manager.start()
|
||||
|
||||
self.update_neutron_sb_cfg_key()
|
||||
LOG.info('OVN Neutron Agent started')
|
||||
self.wait()
|
||||
|
||||
|
||||
@@ -161,6 +161,7 @@ class MetadataExtension(extension_manager.OVNAgentExtension,
|
||||
Reload the configuration and sync the agent again.
|
||||
"""
|
||||
self.agent_api.load_config()
|
||||
self.agent_api.update_neutron_sb_cfg_key()
|
||||
self.sync()
|
||||
|
||||
def start(self):
|
||||
@@ -177,6 +178,7 @@ class MetadataExtension(extension_manager.OVNAgentExtension,
|
||||
|
||||
# Register the agent with its corresponding Chassis
|
||||
self.register_metadata_agent()
|
||||
self.agent_api.update_neutron_sb_cfg_key()
|
||||
|
||||
# Start the metadata server.
|
||||
proxy_thread = threading.Thread(target=self._proxy.wait)
|
||||
|
||||
@@ -77,6 +77,13 @@ class TestOVNNeutronAgentBase(base.TestOVNFunctionalBase):
|
||||
mock.patch.object(server_socket.UnixDomainMetadataProxy,
|
||||
'wait'):
|
||||
agt.start()
|
||||
external_ids = agt.sb_idl.db_get(
|
||||
'Chassis_Private', agt.chassis, 'external_ids').execute(
|
||||
check_error=True)
|
||||
self.assertEqual(
|
||||
external_ids[ovn_const.OVN_AGENT_NEUTRON_SB_CFG_KEY],
|
||||
'0')
|
||||
|
||||
self._check_loaded_and_started_extensions(agt)
|
||||
|
||||
self.addCleanup(agt.ext_manager_api.ovs_idl.ovsdb_connection.stop)
|
||||
@@ -128,9 +135,10 @@ class TestOVNNeutronAgentMetadataExtension(TestOVNNeutronAgentBase):
|
||||
# Check the metadata extension is registered.
|
||||
chassis_id = uuid.UUID(self.chassis_name)
|
||||
agent_id = uuid.uuid5(chassis_id, 'metadata_agent')
|
||||
ext_ids = {ovn_const.OVN_AGENT_METADATA_ID_KEY: str(agent_id)}
|
||||
ch_private = self.sb_api.lookup('Chassis_Private', self.chassis_name)
|
||||
self.assertEqual(ext_ids, ch_private.external_ids)
|
||||
self.assertEqual(
|
||||
ch_private.external_ids[ovn_const.OVN_AGENT_METADATA_ID_KEY],
|
||||
str(agent_id))
|
||||
|
||||
# Check Unix proxy is running.
|
||||
metadata_extension = self.ovn_agent[METADATA_EXTENSION]
|
||||
|
||||
Reference in New Issue
Block a user