diff --git a/doc/source/command-objects/image.rst b/doc/source/command-objects/image.rst index 83036a64b7..18658651c3 100644 --- a/doc/source/command-objects/image.rst +++ b/doc/source/command-objects/image.rst @@ -205,6 +205,9 @@ Set image properties [--owner ] [--min-disk ] [--min-ram ] + [--container-format ] + [--disk-format ] + [--size ] [--protected | --unprotected] [--public | --private] [--property [...] ] @@ -226,6 +229,21 @@ Set image properties Minimum RAM size needed to boot image, in megabytes +.. option:: --container-format + + Container format of image. + Acceptable formats: ['ami', 'ari', 'aki', 'bare', 'ovf'] + +.. option:: --disk-format + + Disk format of image. + Acceptable formats: ['ami', 'ari', 'aki', 'vhd', 'vmdk', 'raw', 'qcow2', + 'vdi', 'iso'] + +.. option:: --size + + Size of image data (in bytes) + .. option:: --protected Prevent image from being deleted diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py index 830b99bab8..d4d45fa287 100644 --- a/openstackclient/image/v1/image.py +++ b/openstackclient/image/v1/image.py @@ -508,6 +508,28 @@ class SetImage(show.ShowOne): type=int, help="Minimum RAM size needed to boot image, in megabytes", ) + container_choices = ["ami", "ari", "aki", "bare", "ovf"] + parser.add_argument( + "--container-format", + metavar="", + help=("Container format of image. Acceptable formats: %s" % + container_choices), + choices=container_choices + ) + disk_choices = ["ami", "ari", "aki", "vhd", "vmdk", "raw", "qcow2", + "vdi", "iso"] + parser.add_argument( + "--disk-format", + metavar="", + help="Disk format of image. Acceptable formats: %s" % disk_choices, + choices=disk_choices + ) + parser.add_argument( + "--size", + metavar="", + type=int, + help="Size of image data (in bytes)" + ) protected_group = parser.add_mutually_exclusive_group() protected_group.add_argument( "--protected", @@ -545,7 +567,8 @@ class SetImage(show.ShowOne): image_client = self.app.client_manager.image kwargs = {} - copy_attrs = ('name', 'owner', 'min_disk', 'min_ram', 'properties') + copy_attrs = ('name', 'owner', 'min_disk', 'min_ram', 'properties', + 'container_format', 'disk_format', 'size') for attr in copy_attrs: if attr in parsed_args: val = getattr(parsed_args, attr, None) diff --git a/openstackclient/tests/image/v1/test_image.py b/openstackclient/tests/image/v1/test_image.py index ef7ca9eaa7..eec8cfa5c3 100644 --- a/openstackclient/tests/image/v1/test_image.py +++ b/openstackclient/tests/image/v1/test_image.py @@ -547,6 +547,9 @@ class TestImageSet(TestImage): '--owner', 'new-owner', '--min-disk', '2', '--min-ram', '4', + '--container-format', 'ovf', + '--disk-format', 'vmdk', + '--size', '35165824', image_fakes.image_name, ] verifylist = [ @@ -554,6 +557,9 @@ class TestImageSet(TestImage): ('owner', 'new-owner'), ('min_disk', 2), ('min_ram', 4), + ('container_format', 'ovf'), + ('disk_format', 'vmdk'), + ('size', 35165824), ('image', image_fakes.image_name), ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) @@ -566,6 +572,9 @@ class TestImageSet(TestImage): 'owner': 'new-owner', 'min_disk': 2, 'min_ram': 4, + 'container_format': 'ovf', + 'disk_format': 'vmdk', + 'size': 35165824 } # ImageManager.update(image, **kwargs) self.images_mock.update.assert_called_with(