image: don't use is_public with glance V2 API
Glance v2 API has replaced "is_public" argument with "visibility", and, unlike "is_public" the default value of "visibility" returns all images, which is what we want to get when no value has been provided. This patch makes sure that we only send a default value for "is_public" when it's not defined when working with API v1. Closes-bug: #1201266 Co-Authored-By: Gorka Eguileor <geguileo@redhat.com> Change-Id: I9ca13567744dbe5895012429679e013b859dbb03
This commit is contained in:
parent
aa7e0f1c8a
commit
4e7624ed65
cinder
@ -254,10 +254,15 @@ class GlanceImageService(object):
|
||||
if param in params:
|
||||
_params[param] = params.get(param)
|
||||
|
||||
# ensure filters is a dict
|
||||
_params.setdefault('filters', {})
|
||||
# NOTE(vish): don't filter out private images
|
||||
_params['filters'].setdefault('is_public', 'none')
|
||||
# NOTE(geguileo): We set is_public default value for v1 because we want
|
||||
# to retrieve all images by default. We don't need to send v2
|
||||
# equivalent - "visible" - because its default value when omited is
|
||||
# "public, private, shared", which will return all.
|
||||
if CONF.glance_api_version <= 1:
|
||||
# ensure filters is a dict
|
||||
_params.setdefault('filters', {})
|
||||
# NOTE(vish): don't filter out private images
|
||||
_params['filters'].setdefault('is_public', 'none')
|
||||
|
||||
return _params
|
||||
|
||||
|
@ -251,6 +251,25 @@ class TestGlanceImageService(test.TestCase):
|
||||
self.assertEqual('test image', image_metas[0]['name'])
|
||||
self.assertFalse(image_metas[0]['is_public'])
|
||||
|
||||
def test_detail_v1(self):
|
||||
"""Confirm we send is_public = None as default when using Glance v1."""
|
||||
self.override_config('glance_api_version', 1)
|
||||
with mock.patch.object(self.service, '_client') as client_mock:
|
||||
client_mock.return_value = []
|
||||
result = self.service.detail(self.context)
|
||||
self.assertListEqual([], result)
|
||||
client_mock.call.assert_called_once_with(self.context, 'list',
|
||||
filters={'is_public': 'none'})
|
||||
|
||||
def test_detail_v2(self):
|
||||
"""Check we don't send is_public key by default with Glance v2."""
|
||||
self.override_config('glance_api_version', 2)
|
||||
with mock.patch.object(self.service, '_client') as client_mock:
|
||||
client_mock.return_value = []
|
||||
result = self.service.detail(self.context)
|
||||
self.assertListEqual([], result)
|
||||
client_mock.call.assert_called_once_with(self.context, 'list')
|
||||
|
||||
def test_detail_marker(self):
|
||||
fixtures = []
|
||||
ids = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user