Convert filters to empty dict if None in DB's get_subnetpools().
When calling ML2 plugin's get_subnetpools(), 'fields' parameters may be passed. By default it is set to None. The 'filters' is passed to SubnetPool.get_objects() as kwargs (using **). If someone calls plugin's get_subnetpools() without passing filters, the method will raise exception. This patch is adding support for 'filters' being None when calling plugin get_subnetpools(), by converting it to be empty dict '{}'. Change-Id: Ic7432cb167583e82b3c0e237ef25a5c9f21986e6 Closes-Bug: 1647715
This commit is contained in:
parent
24b5a3b73e
commit
3ee76d4980
|
@ -1115,6 +1115,7 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
|
|||
sorts=None, limit=None, marker=None,
|
||||
page_reverse=False):
|
||||
pager = base_obj.Pager(sorts, limit, page_reverse, marker)
|
||||
filters = filters or {}
|
||||
subnetpools = subnetpool_obj.SubnetPool.get_objects(
|
||||
context, _pager=pager, validate_filters=False, **filters)
|
||||
return [
|
||||
|
|
|
@ -5541,6 +5541,18 @@ class TestSubnetPoolsV2(NeutronDbPluginV2TestCase):
|
|||
self.assertEqual(1, len(admin_res['subnetpools']))
|
||||
self.assertEqual(0, len(mortal_res['subnetpools']))
|
||||
|
||||
def test_list_subnetpools_filters_none(self):
|
||||
subnet_pool = self._test_create_subnetpool(['10.10.10.0/24'],
|
||||
None,
|
||||
True,
|
||||
name=self._POOL_NAME,
|
||||
min_prefixlen='24',
|
||||
shared=True)
|
||||
sp_list = self.plugin.get_subnetpools(
|
||||
context.Context('', 'not-the-owner'))
|
||||
self.assertEqual(1, len(sp_list))
|
||||
self.assertEqual(subnet_pool['subnetpool']['id'], sp_list[0]['id'])
|
||||
|
||||
def test_delete_subnetpool(self):
|
||||
subnetpool = self._test_create_subnetpool(['10.10.10.0/24'],
|
||||
tenant_id=self._tenant_id,
|
||||
|
|
Loading…
Reference in New Issue