Allow to filter multiple tags for image list

Currently in case of passing `--tag` several times, only last one will
be picked up for the filtering. In the meanwhile Glance allow option to
be repeated multiple times to filter based on the multiple tags.

Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/789827
Change-Id: I7379d0b0014f0e3d13b02ee5ec6b642a7a5aa7d1
This commit is contained in:
Dmitriy Rabotyagov 2021-05-05 16:59:14 +03:00 committed by Stephen Finucane
parent 4b97a85181
commit 5cc6fc2b88
4 changed files with 19 additions and 5 deletions

View File

@ -613,8 +613,10 @@ class ListImage(command.Lister):
parser.add_argument(
'--tag',
metavar='<tag>',
default=None,
help=_('Filter images based on tag.'),
action='append',
default=[],
help=_('Filter images based on tag. '
'(repeat option to filter on multiple tags)'),
)
parser.add_argument(
'--hidden',

View File

@ -26,6 +26,7 @@ class ImageTests(base.BaseImageTests):
self.name = uuid.uuid4().hex
self.image_tag = 'my_tag'
self.image_tag1 = 'random'
json_output = json.loads(self.openstack(
'--os-image-api-version 2 '
'image create -f json --tag {tag} {name}'.format(
@ -78,13 +79,18 @@ class ImageTests(base.BaseImageTests):
def test_image_list_with_tag_filter(self):
json_output = json.loads(self.openstack(
'image list --tag ' + self.image_tag + ' --long -f json'
'image list --tag ' + self.image_tag + ' --tag ' +
self.image_tag1 + ' --long -f json'
))
for taglist in [img['Tags'] for img in json_output]:
self.assertIn(
self.image_tag,
taglist
)
self.assertIn(
self.image_tag1,
taglist
)
def test_image_attributes(self):
"""Test set, unset, show on attributes, tags and properties"""

View File

@ -835,15 +835,16 @@ class TestImageList(TestImage):
def test_image_list_tag_option(self):
arglist = [
'--tag', 'abc',
'--tag', 'cba'
]
verifylist = [
('tag', 'abc'),
('tag', ['abc', 'cba']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
tag='abc'
tag=['abc', 'cba']
)

View File

@ -0,0 +1,5 @@
---
features:
- |
The ``image list`` now accepts multiple ``--tag`` options, allowing you to
filter images on more than one tag.