Fix filters default value in get_networks

With that change, if get_networks() is called without fields set to
something, _filter_nets_l3 fails because it tries to call "filters.get()"
where filters is None.

This fixes bug #1060047

Change-Id: Ia0787e7a278a3562af5409861762f067d71f2cf6
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2012-10-02 15:37:49 +02:00
parent 903e95f975
commit f723e1a359
2 changed files with 7 additions and 1 deletions

View File

@ -709,7 +709,7 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
network_id=net_id).delete()
def _filter_nets_l3(self, context, nets, filters):
vals = filters.get('router:external', [])
vals = filters and filters.get('router:external', [])
if not vals:
return nets

View File

@ -892,6 +892,12 @@ class L3NatDBTestCase(test_db_plugin.QuantumDbPluginV2TestCase):
query_params="%s=False" % l3.EXTERNAL)
self.assertEquals(len(body['networks']), 1)
def test_get_network_succeeds_without_filter(self):
plugin = manager.QuantumManager.get_plugin()
ctx = context.Context(None, None, is_admin=True)
result = plugin.get_networks(ctx, filters=None)
self.assertEqual(result, [])
def test_network_filter_hook_admin_context(self):
plugin = manager.QuantumManager.get_plugin()
ctx = context.Context(None, None, is_admin=True)