diff --git a/cinderclient/tests/unit/v3/test_shell.py b/cinderclient/tests/unit/v3/test_shell.py index e3b2617..dc3dd68 100644 --- a/cinderclient/tests/unit/v3/test_shell.py +++ b/cinderclient/tests/unit/v3/test_shell.py @@ -373,6 +373,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_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): self.run_command('--os-volume-api-version 3.5 message-show 1234') self.assert_called('GET', '/messages/1234') diff --git a/cinderclient/tests/unit/v3/test_volumes.py b/cinderclient/tests/unit/v3/test_volumes.py index fe27a51..4613f37 100644 --- a/cinderclient/tests/unit/v3/test_volumes.py +++ b/cinderclient/tests/unit/v3/test_volumes.py @@ -93,3 +93,10 @@ class VolumesTest(utils.TestCase): expected = ("/snapshots/detail?metadata=%s" % parse.quote_plus("{'key1': 'val1'}")) 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) diff --git a/cinderclient/v3/shell.py b/cinderclient/v3/shell.py index d89e10c..50213a5 100644 --- a/cinderclient/v3/shell.py +++ b/cinderclient/v3/shell.py @@ -137,7 +137,7 @@ def do_list(cs, args): 'migration_status': args.migration_status, 'metadata': shell_utils.extract_metadata(args) if args.metadata else None, - 'glance_metadata': shell.utils.extract_metadata(args, + 'glance_metadata': shell_utils.extract_metadata(args, type='image_metadata') if args.image_metadata else None, }