summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorValery Tschopp <valery.tschopp@switch.ch>2021-02-02 12:56:55 +0100
committerValery Tschopp <valery.tschopp@switch.ch>2021-03-25 08:57:31 +0100
commit383289edd8ea222ce1a6e77ed0298ecdb21608a1 (patch)
tree3dd1ef34d45e6e58f78e5ed66bf1e70527d147db /openstackclient
parent01a53fa96fe2fbd67682850ee7ce9ab140c9211b (diff)
downloadpython-openstackclient-383289edd8ea222ce1a6e77ed0298ecdb21608a1.tar.gz
Implements hide image
openstack image set [--hidden|--unhidden] IMAGE openstack image list --hidden Task: 41734 Story: 2008581 Change-Id: Ie84f10c0f7aa2e7b7f78bfadc70132a10673866e
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/image/v2/image.py27
-rw-r--r--openstackclient/tests/unit/image/v2/test_image.py68
2 files changed, 95 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):