diff --git a/neutron/agent/l3/ha.py b/neutron/agent/l3/ha.py index bafc7e71c63..93e0789358c 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 a3649d9ee6c..88c9d4fec06 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