diff --git a/doc/source/contributor/internals/l3_agent_extensions.rst b/doc/source/contributor/internals/l3_agent_extensions.rst index 9c8cdc6aa6e..6ae17273733 100644 --- a/doc/source/contributor/internals/l3_agent_extensions.rst +++ b/doc/source/contributor/internals/l3_agent_extensions.rst @@ -36,3 +36,4 @@ router information to L3 agent extensions:: #. get_routers_in_project #. get_router_hosting_port #. is_router_in_namespace +#. get_router_info diff --git a/neutron/agent/l3/l3_agent_extension_api.py b/neutron/agent/l3/l3_agent_extension_api.py index b125ad66f34..e5585c08bdb 100644 --- a/neutron/agent/l3/l3_agent_extension_api.py +++ b/neutron/agent/l3/l3_agent_extension_api.py @@ -65,3 +65,7 @@ class L3AgentExtensionAPI(object): local_namespaces = self._local_namespaces() ri = self._router_info.get(router_id) return ri and ri.ns_name in local_namespaces + + def get_router_info(self, router_id): + """Return RouterInfo for the given router id.""" + return self._router_info.get(router_id) diff --git a/neutron/tests/unit/agent/l3/test_l3_agent_extension_api.py b/neutron/tests/unit/agent/l3/test_l3_agent_extension_api.py index f4618afbe62..ea6427a9370 100644 --- a/neutron/tests/unit/agent/l3/test_l3_agent_extension_api.py +++ b/neutron/tests/unit/agent/l3/test_l3_agent_extension_api.py @@ -94,3 +94,14 @@ class TestL3AgentExtensionApi(base.BaseTestCase): api_object = l3_agent_api.L3AgentExtensionAPI(router_info) router_in_ns = api_object.is_router_in_namespace(ri.router_id) self.assertFalse(router_in_ns) + + def test_get_router_info(self): + router_info, ri = self._prepare_router_data() + api_object = l3_agent_api.L3AgentExtensionAPI(router_info) + self.assertEqual(ri, api_object.get_router_info(self.router_id)) + + def test_get_router_info_nonexistent(self): + router_info, ri = self._prepare_router_data() + api_object = l3_agent_api.L3AgentExtensionAPI(router_info) + self.assertIsNone( + api_object.get_router_info(uuidutils.generate_uuid())) diff --git a/releasenotes/notes/l3-agent-api-get-router-info-93c316a792a9d87f.yaml b/releasenotes/notes/l3-agent-api-get-router-info-93c316a792a9d87f.yaml new file mode 100644 index 00000000000..854752ef235 --- /dev/null +++ b/releasenotes/notes/l3-agent-api-get-router-info-93c316a792a9d87f.yaml @@ -0,0 +1,4 @@ +--- +features: + - A new method ``get_router_info`` has been added to + ``L3AgentExtensionAPI``.