From 34d1e0c7eb8f4b613ca1f8e672a5367a4078a44a Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Fri, 26 Apr 2019 20:25:38 +0200 Subject: [PATCH] Allow users to list all images Add a "--all" option to "openstack image list", which allows the user to list all of the images. Story: 2010071 Change-Id: I56a2e4846d0380d07803305fb830d1a43dfd71b3 --- openstackclient/image/v2/image.py | 9 ++++++ .../tests/unit/image/v2/test_image.py | 32 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index 117d7a89a2..2f2f64ed91 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -575,6 +575,13 @@ class ListImage(command.Lister): default=False, help=_("List only shared images"), ) + public_group.add_argument( + "--all", + dest="all", + action="store_true", + default=False, + help=_("List all images"), + ) parser.add_argument( '--property', metavar='', @@ -675,6 +682,8 @@ class ListImage(command.Lister): kwargs['visibility'] = 'community' if parsed_args.shared: kwargs['visibility'] = 'shared' + if parsed_args.all: + kwargs['visibility'] = 'all' if parsed_args.limit: kwargs['limit'] = parsed_args.limit if parsed_args.marker: diff --git a/openstackclient/tests/unit/image/v2/test_image.py b/openstackclient/tests/unit/image/v2/test_image.py index d563bf504c..444717a712 100644 --- a/openstackclient/tests/unit/image/v2/test_image.py +++ b/openstackclient/tests/unit/image/v2/test_image.py @@ -486,6 +486,7 @@ class TestImageList(TestImage): ('private', False), ('community', False), ('shared', False), + ('all', False), ('long', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -510,6 +511,7 @@ class TestImageList(TestImage): ('private', False), ('community', False), ('shared', False), + ('all', False), ('long', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -534,6 +536,7 @@ class TestImageList(TestImage): ('private', True), ('community', False), ('shared', False), + ('all', False), ('long', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -558,6 +561,7 @@ class TestImageList(TestImage): ('private', False), ('community', True), ('shared', False), + ('all', False), ('long', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -582,6 +586,7 @@ class TestImageList(TestImage): ('private', False), ('community', False), ('shared', True), + ('all', False), ('long', False), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -597,6 +602,31 @@ class TestImageList(TestImage): self.assertEqual(self.columns, columns) self.assertCountEqual(self.datalist, tuple(data)) + def test_image_list_all_option(self): + arglist = [ + '--all', + ] + verifylist = [ + ('public', False), + ('private', False), + ('community', False), + ('shared', False), + ('all', True), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # In base command class Lister in cliff, abstract method take_action() + # returns a tuple containing the column names and an iterable + # containing the data to be listed. + columns, data = self.cmd.take_action(parsed_args) + self.client.images.assert_called_with( + visibility='all', + ) + + self.assertEqual(self.columns, columns) + self.assertCountEqual(self.datalist, tuple(data)) + def test_image_list_shared_member_status_option(self): arglist = [ '--shared', @@ -607,6 +637,7 @@ class TestImageList(TestImage): ('private', False), ('community', False), ('shared', True), + ('all', False), ('long', False), ('member_status', 'all') ] @@ -634,6 +665,7 @@ class TestImageList(TestImage): ('private', False), ('community', False), ('shared', True), + ('all', False), ('long', False), ('member_status', 'all') ]