Add start_version check for do_list() image_metadata option
The image_metadata options requires Cinder API v3.4, but user can specify this option before API v3.4 then the option will be ignored without any warning message. We should check this option using start_version to avoid confusion. Change-Id: I6983494cb6653a9eaf35f4eedba87aeb70b55260
This commit is contained in:
parent
9e0f7983c2
commit
4cd05c64dd
cinderclient
@ -385,8 +385,13 @@ class ShellTest(utils.TestCase):
|
||||
self.run_command('--os-volume-api-version 3.5 message-list --marker=1')
|
||||
self.assert_called('GET', '/messages?marker=1')
|
||||
|
||||
def test_list_with_image_metadata_before_3_4(self):
|
||||
self.assertRaises(exceptions.UnsupportedAttribute,
|
||||
self.run_command,
|
||||
'list --image_metadata image_name=1234')
|
||||
|
||||
def test_list_filter_image_metadata(self):
|
||||
self.run_command('--os-volume-api-version 3.0 '
|
||||
self.run_command('--os-volume-api-version 3.4 '
|
||||
'list --image_metadata image_name=1234')
|
||||
url = ('/volumes/detail?%s' %
|
||||
parse.urlencode([('glance_metadata', {"image_name": "1234"})]))
|
||||
|
@ -82,6 +82,7 @@ from cinderclient.v2.shell import * # flake8: noqa
|
||||
nargs='*',
|
||||
metavar='<key=value>',
|
||||
default=None,
|
||||
start_version='3.4',
|
||||
help='Filters results by a image metadata key and value pair. Require '
|
||||
'volume api version >=3.4. Default=None.')
|
||||
@utils.arg('--marker',
|
||||
@ -141,7 +142,7 @@ def do_list(cs, args):
|
||||
if args.metadata else None,
|
||||
'glance_metadata': shell_utils.extract_metadata(args,
|
||||
type='image_metadata')
|
||||
if args.image_metadata else None,
|
||||
if hasattr(args, 'image_metadata') and args.image_metadata else None,
|
||||
'group_id': getattr(args, 'group_id', None),
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user