Merge "Accept 0 for --min-disk and --min-ram"

This commit is contained in:
Zuul 2017-10-21 00:40:48 +00:00 committed by Gerrit Code Review
commit 3abba6ede9
5 changed files with 63 additions and 4 deletions

View File

@ -625,11 +625,11 @@ class SetImage(command.Command):
kwargs = {}
copy_attrs = ('name', 'owner', 'min_disk', 'min_ram', 'properties',
'container_format', 'disk_format', 'size', 'store',
'location', 'copy_from', 'volume', 'force', 'checksum')
'location', 'copy_from', 'volume', 'checksum')
for attr in copy_attrs:
if attr in parsed_args:
val = getattr(parsed_args, attr, None)
if val:
if val is not None:
# Only include a value in kwargs for attributes that are
# actually present on the command line
kwargs[attr] = val
@ -653,6 +653,8 @@ class SetImage(command.Command):
kwargs['is_public'] = True
if parsed_args.private:
kwargs['is_public'] = False
if parsed_args.force:
kwargs['force'] = True
# Wrap the call to catch exceptions in order to close files
try:

View File

@ -749,7 +749,7 @@ class SetImage(command.Command):
"--tag",
dest="tags",
metavar="<tag>",
default=[],
default=None,
action='append',
help=_("Set a tag on this image "
"(repeat option to set multiple tags)"),
@ -860,7 +860,7 @@ class SetImage(command.Command):
for attr in copy_attrs:
if attr in parsed_args:
val = getattr(parsed_args, attr, None)
if val:
if val is not None:
# Only include a value in kwargs for attributes that are
# actually present on the command line
kwargs[attr] = val

View File

@ -689,6 +689,32 @@ class TestImageSet(TestImage):
)
self.assertIsNone(result)
def test_image_set_numeric_options_to_zero(self):
arglist = [
'--min-disk', '0',
'--min-ram', '0',
self._image.name,
]
verifylist = [
('min_disk', 0),
('min_ram', 0),
('image', self._image.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
kwargs = {
'min_disk': 0,
'min_ram': 0,
}
# ImageManager.update(image, **kwargs)
self.images_mock.update.assert_called_with(
self._image.id,
**kwargs
)
self.assertIsNone(result)
class TestImageShow(TestImage):

View File

@ -1313,6 +1313,32 @@ class TestImageSet(TestImage):
exceptions.CommandError,
self.cmd.take_action, parsed_args)
def test_image_set_numeric_options_to_zero(self):
arglist = [
'--min-disk', '0',
'--min-ram', '0',
image_fakes.image_name,
]
verifylist = [
('min_disk', 0),
('min_ram', 0),
('image', image_fakes.image_name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
kwargs = {
'min_disk': 0,
'min_ram': 0,
}
# ImageManager.update(image, **kwargs)
self.images_mock.update.assert_called_with(
image_fakes.image_id,
**kwargs
)
self.assertIsNone(result)
class TestImageShow(TestImage):

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Accept ``0`` as a valid value in the ``image set`` ``--min-disk`` and ``--min-ram`` options.
.. _bug 1719499: https://bugs.launchpad.net/python-openstackclient/+bug/1719499