diff --git a/doc/source/command-objects/image.rst b/doc/source/command-objects/image.rst index 1528676091..94745e06c8 100644 --- a/doc/source/command-objects/image.rst +++ b/doc/source/command-objects/image.rst @@ -167,6 +167,7 @@ List available images [--property ] [--long] [--sort [:]] + [--limit ] .. option:: --public @@ -195,6 +196,10 @@ List available images Sort output by selected keys and directions(asc or desc) (default: asc), multiple keys and directions can be specified separated by comma +.. option:: --limit + + Maximum number of images to display. + image save ---------- diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index 842c6f2007..67d0e7f31d 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -431,6 +431,12 @@ class ListImage(command.Lister): "(default: asc), multiple keys and directions can be " "specified separated by comma", ) + parser.add_argument( + "--limit", + metavar="", + type=int, + help="Maximum number of images to display.", + ) return parser def take_action(self, parsed_args): @@ -443,6 +449,8 @@ class ListImage(command.Lister): kwargs['private'] = True if parsed_args.shared: kwargs['shared'] = True + if parsed_args.limit: + kwargs['limit'] = parsed_args.limit if parsed_args.long: columns = ( diff --git a/openstackclient/tests/image/v2/test_image.py b/openstackclient/tests/image/v2/test_image.py index b02b379511..3e31d0ad62 100644 --- a/openstackclient/tests/image/v2/test_image.py +++ b/openstackclient/tests/image/v2/test_image.py @@ -655,6 +655,23 @@ class TestImageList(TestImage): self.assertEqual(self.columns, columns) self.assertEqual(self.datalist, tuple(data)) + def test_image_list_limit_option(self): + arglist = [ + '--limit', str(1), + ] + verifylist = [ + ('limit', 1), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + limit=1, + ) + + self.assertEqual(self.columns, columns) + self.assertEqual(len(self.datalist), len(tuple(data))) + class TestRemoveProjectImage(TestImage): diff --git a/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml b/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml new file mode 100644 index 0000000000..56b502eb5b --- /dev/null +++ b/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add ``--limit`` option to ``image list`` to limit the number of images + in output. + [Bug `1540988 `_]