From 2f4e7b53a3b58b9fc1cd42131097fbd25468d27d Mon Sep 17 00:00:00 2001 From: Carl Baldwin Date: Tue, 21 Oct 2014 19:44:18 +0000 Subject: [PATCH] Tighten up try/except block around rpc call The try is too broad. This commit moves code outside of the try block where exceptions are not expected to be raised. This only leaves the rpc call in the current code. In legacy code, there used to be more but now this code merely queues updates for workers to handle in other threads. Change-Id: I15407553fc6ad6eeb5b483499fe1a5adffe1edca --- neutron/agent/l3_agent.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/neutron/agent/l3_agent.py b/neutron/agent/l3_agent.py index 912a029f28..fab376c257 100644 --- a/neutron/agent/l3_agent.py +++ b/neutron/agent/l3_agent.py @@ -1850,15 +1850,22 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, if self._clean_stale_namespaces: namespaces = self._list_namespaces() prev_router_ids = set(self.router_info) + timestamp = timeutils.utcnow() try: - timestamp = timeutils.utcnow() if self.conf.use_namespaces: routers = self.plugin_rpc.get_routers(context) else: routers = self.plugin_rpc.get_routers(context, [self.conf.router_id]) + except messaging.MessagingException: + LOG.exception(_LE("Failed synchronizing routers due to RPC error")) + self.fullsync = True + except Exception: + LOG.exception(_LE("Failed synchronizing routers")) + self.fullsync = True + else: LOG.debug('Processing :%r', routers) for r in routers: update = RouterUpdate(r['id'], @@ -1868,13 +1875,7 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, self._queue.add(update) self.fullsync = False LOG.debug("periodic_sync_routers_task successfully completed") - except messaging.MessagingException: - LOG.exception(_LE("Failed synchronizing routers due to RPC error")) - self.fullsync = True - except Exception: - LOG.exception(_LE("Failed synchronizing routers")) - self.fullsync = True - else: + # Resync is not necessary for the cleanup of stale namespaces curr_router_ids = set([r['id'] for r in routers])