Fix v3 volume list based on image_metadata
volume list filtered on image_metadata does not work as expected. The filtering based on image_metadata depended on non existent utility for extracting image_metadata. Fixed the issue by calling appropriate utility module for extracting image_metadata. Looks like a typo. Change-Id: I13e78277fc1afd22d044bb49b6a5ccc00904228c Closes-bug: #1657650
This commit is contained in:
@@ -373,6 +373,13 @@ class ShellTest(utils.TestCase):
|
|||||||
self.run_command('--os-volume-api-version 3.5 message-list --marker=1')
|
self.run_command('--os-volume-api-version 3.5 message-list --marker=1')
|
||||||
self.assert_called('GET', '/messages?marker=1')
|
self.assert_called('GET', '/messages?marker=1')
|
||||||
|
|
||||||
|
def test_list_filter_image_metadata(self):
|
||||||
|
self.run_command('--os-volume-api-version 3.0 '
|
||||||
|
'list --image_metadata image_name=1234')
|
||||||
|
url = ('/volumes/detail?%s' %
|
||||||
|
parse.urlencode([('glance_metadata', {"image_name": "1234"})]))
|
||||||
|
self.assert_called('GET', url)
|
||||||
|
|
||||||
def test_show_message(self):
|
def test_show_message(self):
|
||||||
self.run_command('--os-volume-api-version 3.5 message-show 1234')
|
self.run_command('--os-volume-api-version 3.5 message-show 1234')
|
||||||
self.assert_called('GET', '/messages/1234')
|
self.assert_called('GET', '/messages/1234')
|
||||||
|
@@ -93,3 +93,10 @@ class VolumesTest(utils.TestCase):
|
|||||||
expected = ("/snapshots/detail?metadata=%s"
|
expected = ("/snapshots/detail?metadata=%s"
|
||||||
% parse.quote_plus("{'key1': 'val1'}"))
|
% parse.quote_plus("{'key1': 'val1'}"))
|
||||||
cs.assert_called('GET', expected)
|
cs.assert_called('GET', expected)
|
||||||
|
|
||||||
|
def test_list_with_image_metadata(self):
|
||||||
|
cs = fakes.FakeClient(api_versions.APIVersion('3.0'))
|
||||||
|
cs.volumes.list(search_opts={'glance_metadata': {'key1': 'val1'}})
|
||||||
|
expected = ("/volumes/detail?glance_metadata=%s"
|
||||||
|
% parse.quote_plus("{'key1': 'val1'}"))
|
||||||
|
cs.assert_called('GET', expected)
|
||||||
|
@@ -137,7 +137,7 @@ def do_list(cs, args):
|
|||||||
'migration_status': args.migration_status,
|
'migration_status': args.migration_status,
|
||||||
'metadata': shell_utils.extract_metadata(args)
|
'metadata': shell_utils.extract_metadata(args)
|
||||||
if args.metadata else None,
|
if args.metadata else None,
|
||||||
'glance_metadata': shell.utils.extract_metadata(args,
|
'glance_metadata': shell_utils.extract_metadata(args,
|
||||||
type='image_metadata')
|
type='image_metadata')
|
||||||
if args.image_metadata else None,
|
if args.image_metadata else None,
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user