Merge "Handle 'is_public' filter in volume-type list"

This commit is contained in:
Zuul 2019-01-30 20:32:18 +00:00 committed by Gerrit Code Review
commit 1e0c614b23
2 changed files with 9 additions and 1 deletions

View File

@ -427,6 +427,9 @@ def reject_invalid_filters(context, filters, resource,
"%s~" % key in configured_filters):
invalid_filters.append(key)
if invalid_filters:
if (resource == 'volume_type' and len(invalid_filters) == 1
and invalid_filters[0] == 'is_public'):
return
raise webob.exc.HTTPBadRequest(
explanation=_('Invalid filters %s are found in query '
'options.') % ','.join(invalid_filters))

View File

@ -412,7 +412,12 @@ class GeneralFiltersTest(test.TestCase):
'is_admin': False,
'result': {'fake_resource': []},
'expected': None,
'resource': 'fake_resource'})
'resource': 'fake_resource'},
{'filters': {'is_public': True},
'is_admin': False,
'result': {'volume_type': []},
'expected': {'is_public': True},
'resource': 'volume_type'})
@ddt.unpack
@mock.patch('cinder.api.common.get_enabled_resource_filters')
def test_reject_invalid_filters(self, mock_get, filters,