From: Hong Hui Xiao Date: Fri, 16 Oct 2015 16:39:32 +0000 (-0400) Subject: The exception type is wrong and makes the except block not work X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=9d6584120003f50782461677d1b783bd07131444;p=openstack-build%2Fneutron-build.git The exception type is wrong and makes the except block not work According to the context, it should be KeyError here to catch. AttributeError will not happen here. More details could be found in the bug report. Change-Id: Id6351172703ac492e86475f75bf1be03f4e4e8a3 Closes-bug: #1506934 --- diff --git a/neutron/agent/l3/ha.py b/neutron/agent/l3/ha.py index bafc7e71c..93e078935 100644 --- a/neutron/agent/l3/ha.py +++ b/neutron/agent/l3/ha.py @@ -117,7 +117,7 @@ class AgentMixin(object): try: ri = self.router_info[router_id] - except AttributeError: + except KeyError: LOG.info(_LI('Router %s is not managed by this agent. It was ' 'possibly deleted concurrently.'), router_id) return diff --git a/neutron/tests/unit/agent/l3/test_agent.py b/neutron/tests/unit/agent/l3/test_agent.py index a3649d9ee..88c9d4fec 100644 --- a/neutron/tests/unit/agent/l3/test_agent.py +++ b/neutron/tests/unit/agent/l3/test_agent.py @@ -178,6 +178,13 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework): l3_agent.L3NATAgent(HOSTNAME, self.conf) self.ensure_dir.assert_called_once_with('/etc/ha/') + def test_enqueue_state_change_router_not_found(self): + agent = l3_agent.L3NATAgent(HOSTNAME, self.conf) + non_existent_router = 42 + + # Make sure the exceptional code path has coverage + agent.enqueue_state_change(non_existent_router, 'master') + def test_periodic_sync_routers_task_raise_exception(self): agent = l3_agent.L3NATAgent(HOSTNAME, self.conf) self.plugin_api.get_routers.side_effect = ValueError