Add filter parameter for provider list API
The provider list API layer supports the filter parameter, but in protection service it was not supported. This patch fixed it. Change-Id: Ie98a3e8dda45757d98da9cc5b7383d76ecf0f09c Closes-Bug: #1745058
This commit is contained in:
parent
f6a21fc421
commit
29b264eb7c
|
@ -203,14 +203,22 @@ class ProviderRegistry(object):
|
|||
self.providers.values(), key=lambda item: item.id)
|
||||
if marker is not None and marker in provider_ids:
|
||||
provider_list = provider_list[provider_ids.index(marker) + 1:]
|
||||
filters = filters if filters else {}
|
||||
valid_providers = []
|
||||
for provider in provider_list:
|
||||
valid_providers.append(
|
||||
dict(id=provider.id,
|
||||
name=provider.name,
|
||||
description=provider.description,
|
||||
extended_info_schema=provider.extended_info_schema
|
||||
))
|
||||
provider_dict = dict(
|
||||
id=provider.id,
|
||||
name=provider.name,
|
||||
description=provider.description,
|
||||
extended_info_schema=provider.extended_info_schema
|
||||
)
|
||||
for key, value in filters.items():
|
||||
if key in provider_dict.keys() and \
|
||||
value != provider_dict[key]:
|
||||
break
|
||||
else:
|
||||
valid_providers.append(provider_dict)
|
||||
|
||||
if limit is not None and len(valid_providers) == limit:
|
||||
return valid_providers
|
||||
return valid_providers
|
||||
|
|
|
@ -41,13 +41,13 @@ def set_provider_list(provider_registry):
|
|||
'fake_provider_id_1': FakeProvider(
|
||||
id='fake_provider_id_1',
|
||||
name='fake_provider_name_1',
|
||||
description='',
|
||||
description='Fake provider 1 description',
|
||||
extended_info_schema=''
|
||||
),
|
||||
'fake_provider_id_2': FakeProvider(
|
||||
id='fake_provider_id_2',
|
||||
name='fake_provider_name_2',
|
||||
description='',
|
||||
description='Fake provider 2 description',
|
||||
extended_info_schema=''
|
||||
)
|
||||
}
|
||||
|
@ -90,7 +90,8 @@ class ProviderRegistryTest(base.TestCase):
|
|||
|
||||
def test_list_provider(self):
|
||||
pr = provider.ProviderRegistry()
|
||||
self.assertEqual(1, len(pr.list_providers()))
|
||||
set_provider_list(pr)
|
||||
self.assertEqual(2, len(pr.list_providers()))
|
||||
|
||||
def test_list_provider_with_marker(self):
|
||||
pr = provider.ProviderRegistry()
|
||||
|
@ -104,6 +105,12 @@ class ProviderRegistryTest(base.TestCase):
|
|||
self.assertEqual(
|
||||
1, len(pr.list_providers(limit=1)))
|
||||
|
||||
def test_list_provider_with_filters(self):
|
||||
pr = provider.ProviderRegistry()
|
||||
set_provider_list(pr)
|
||||
filters = {'name': 'fake_provider_name_1'}
|
||||
self.assertEqual(1, len(pr.list_providers(filters=filters)))
|
||||
|
||||
def test_show_provider(self):
|
||||
pr = provider.ProviderRegistry()
|
||||
provider_list = pr.list_providers()
|
||||
|
|
Loading…
Reference in New Issue