From: Hirofumi Ichihara Date: Fri, 23 Jan 2015 08:30:53 +0000 (+0900) Subject: Return 404 when executing router-list-on-l3-agent with invalid agent_id X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=8dde08679902149576a9173ebda3f847e65c964f;p=openstack-build%2Fneutron-build.git Return 404 when executing router-list-on-l3-agent with invalid agent_id Neutron server returns HTML code 200 when users execute router-list-on-l3-agent with invalid agent_id. Users expect HTML code 404 to be returned. Change-Id: Ifadca8d6573a94abc3580a0de4463b755ef12a24 Closes-bug: 1413500 --- diff --git a/neutron/db/l3_agentschedulers_db.py b/neutron/db/l3_agentschedulers_db.py index 104c4f602..03225d34c 100644 --- a/neutron/db/l3_agentschedulers_db.py +++ b/neutron/db/l3_agentschedulers_db.py @@ -287,6 +287,8 @@ class L3AgentSchedulerDbMixin(l3agentscheduler.L3AgentSchedulerPluginBase, context, [router_id], new_agent.host) def list_routers_on_l3_agent(self, context, agent_id): + # Exception thrown if the requested agent does not exist. + self._get_agent(context, agent_id) query = context.session.query(RouterL3AgentBinding.router_id) query = query.filter(RouterL3AgentBinding.l3_agent_id == agent_id) diff --git a/neutron/tests/unit/openvswitch/test_agent_scheduler.py b/neutron/tests/unit/openvswitch/test_agent_scheduler.py index c3e813e4c..486960154 100644 --- a/neutron/tests/unit/openvswitch/test_agent_scheduler.py +++ b/neutron/tests/unit/openvswitch/test_agent_scheduler.py @@ -1150,6 +1150,11 @@ class OvsAgentSchedulerTestCase(OvsAgentSchedulerTestCaseBase): expected_code=exc.HTTPForbidden.code, admin_context=False) + def test_list_routers_hosted_by_l3_agent_with_invalid_agent(self): + invalid_agentid = 'non_existent_agent' + self._list_routers_hosted_by_l3_agent(invalid_agentid, + exc.HTTPNotFound.code) + class OvsDhcpAgentNotifierTestCase(test_l3_plugin.L3NatTestCaseMixin, test_agent_ext_plugin.AgentDBTestMixIn,