Merge "Delete routers that are requested but not reported as active"

This commit is contained in:
Jenkins 2014-04-07 21:06:06 +00:00 committed by Gerrit Code Review
commit 26857d5bde
2 changed files with 5 additions and 15 deletions

View File

@ -770,9 +770,6 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, manager.Manager):
[router['id'] for router in routers])
cur_router_ids = set()
for r in routers:
if not r['admin_state_up']:
continue
# If namespaces are disabled, only process the router associated
# with the configured agent id.
if (not self.conf.use_namespaces and
@ -809,9 +806,13 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback, manager.Manager):
len(self.updated_routers))
if self.updated_routers:
router_ids = list(self.updated_routers)
self.updated_routers.clear()
routers = self.plugin_rpc.get_routers(
self.context, router_ids)
fetched = set([r['id'] for r in routers])
self.removed_routers.update(self.updated_routers - fetched)
self.updated_routers.clear()
self._process_routers(routers)
self._process_router_delete()
LOG.debug(_("RPC loop successfully completed"))

View File

@ -895,17 +895,6 @@ class TestBasicRouterOperations(base.BaseTestCase):
namespace=ri.ns_name,
prefix=l3_agent.EXTERNAL_DEV_PREFIX)
def test_routers_with_admin_state_down(self):
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
self.plugin_api.get_external_network_id.return_value = None
routers = [
{'id': _uuid(),
'admin_state_up': False,
'external_gateway_info': {}}]
agent._process_routers(routers)
self.assertNotIn(routers[0]['id'], agent.router_info)
def test_router_deleted(self):
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
agent.router_deleted(None, FAKE_ID)