diff options
| author | Zuul <zuul@review.opendev.org> | 2021-04-01 17:58:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2021-04-01 17:58:18 +0000 |
| commit | 930ca85dcfaf15f7b4a2c669587ca29372191368 (patch) | |
| tree | 56d4d277daa447dd512d26d18afc70407015ea52 | |
| parent | 8e3dde03f95e369881906f4dca3610a92aea1f7e (diff) | |
| parent | 383289edd8ea222ce1a6e77ed0298ecdb21608a1 (diff) | |
| download | python-openstackclient-930ca85dcfaf15f7b4a2c669587ca29372191368.tar.gz | |
Merge "Implements hide image"
| -rw-r--r-- | openstackclient/image/v2/image.py | 27 | ||||
| -rw-r--r-- | openstackclient/tests/unit/image/v2/test_image.py | 68 | ||||
| -rw-r--r-- | releasenotes/notes/implements-hide-image-4c726a61c336ebaa.yaml | 8 |
3 files changed, 103 insertions, 0 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index ad38c01e..644fbbb4 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -616,6 +616,12 @@ class ListImage(command.Lister): help=_('Filter images based on tag.'), ) parser.add_argument( + '--hidden', + action='store_true', + default=False, + help=_('List hidden images'), + ) + parser.add_argument( '--long', action='store_true', default=False, @@ -686,6 +692,8 @@ class ListImage(command.Lister): parsed_args.project_domain, ).id kwargs['owner'] = project_id + if parsed_args.hidden: + kwargs['is_hidden'] = True if parsed_args.long: columns = ( 'ID', @@ -1016,6 +1024,22 @@ class SetImage(command.Command): action="store_true", help=_("Reset the image membership to 'pending'"), ) + + hidden_group = parser.add_mutually_exclusive_group() + hidden_group.add_argument( + "--hidden", + dest='hidden', + default=None, + action="store_true", + help=_("Hide the image"), + ) + hidden_group.add_argument( + "--unhidden", + dest='hidden', + default=None, + action="store_false", + help=_("Unhide the image"), + ) return parser def take_action(self, parsed_args): @@ -1106,6 +1130,9 @@ class SetImage(command.Command): # Tags should be extended, but duplicates removed kwargs['tags'] = list(set(image.tags).union(set(parsed_args.tags))) + if parsed_args.hidden is not None: + kwargs['is_hidden'] = parsed_args.hidden + try: image = image_client.update_image(image.id, **kwargs) except Exception: diff --git a/openstackclient/tests/unit/image/v2/test_image.py b/openstackclient/tests/unit/image/v2/test_image.py index 87dfdbea..c44c767b 100644 --- a/openstackclient/tests/unit/image/v2/test_image.py +++ b/openstackclient/tests/unit/image/v2/test_image.py @@ -837,6 +837,20 @@ class TestImageList(TestImage): status='active' ) + def test_image_list_hidden_option(self): + arglist = [ + '--hidden', + ] + verifylist = [ + ('hidden', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + self.client.images.assert_called_with( + is_hidden=True + ) + def test_image_list_tag_option(self): arglist = [ '--tag', 'abc', @@ -1439,6 +1453,60 @@ class TestImageSet(TestImage): ) self.assertIsNone(result) + def test_image_set_hidden(self): + arglist = [ + '--hidden', + '--public', + image_fakes.image_name, + ] + verifylist = [ + ('hidden', True), + ('public', True), + ('private', False), + ('image', image_fakes.image_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + result = self.cmd.take_action(parsed_args) + + kwargs = { + 'is_hidden': True, + 'visibility': 'public', + } + # ImageManager.update(image, **kwargs) + self.client.update_image.assert_called_with( + self._image.id, + **kwargs + ) + self.assertIsNone(result) + + def test_image_set_unhidden(self): + arglist = [ + '--unhidden', + '--public', + image_fakes.image_name, + ] + verifylist = [ + ('hidden', False), + ('public', True), + ('private', False), + ('image', image_fakes.image_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + result = self.cmd.take_action(parsed_args) + + kwargs = { + 'is_hidden': False, + 'visibility': 'public', + } + # ImageManager.update(image, **kwargs) + self.client.update_image.assert_called_with( + self._image.id, + **kwargs + ) + self.assertIsNone(result) + class TestImageShow(TestImage): diff --git a/releasenotes/notes/implements-hide-image-4c726a61c336ebaa.yaml b/releasenotes/notes/implements-hide-image-4c726a61c336ebaa.yaml new file mode 100644 index 00000000..718ac292 --- /dev/null +++ b/releasenotes/notes/implements-hide-image-4c726a61c336ebaa.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Add mutually exclusive options ``--hidden`` and ``--unhidden`` to + ``image set`` command to hide or unhide an image (``is_hidden`` + attribute). + - | + Add option ``--hidden`` to ``image list`` command to list hidden images. |
