Merge "Allow to filter multiple tags for image list"

This commit is contained in:
Zuul 2022-05-16 16:36:48 +00:00 committed by Gerrit Code Review
commit 9fc9e8d9d7
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.