summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorNobuto Murata <nobuto.murata@canonical.com>2018-04-30 14:32:08 +0900
committerDean Troyer <dtroyer@gmail.com>2018-07-24 22:48:01 +0000
commit860639a548a2c07193662cd361432cb5061c2a7f (patch)
tree906a3076b309926b2a1e5c0de2328481d6cbda2d /openstackclient
parente4b8c31cd399f469b3378069187614763c24451d (diff)
downloadpython-openstackclient-860639a548a2c07193662cd361432cb5061c2a7f.tar.gz
Support --community in openstack image list
"--community" was added to "image create" and "image set" previously, but was missed in "image list". Change-Id: I959fdd7f67ae62c8326659ce52389228152ec019 Story: 2001925 Task: 14453
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/api/image_v2.py17
-rw-r--r--openstackclient/image/v2/image.py9
-rw-r--r--openstackclient/tests/unit/image/v2/test_image.py29
3 files changed, 49 insertions, 6 deletions
diff --git a/openstackclient/api/image_v2.py b/openstackclient/api/image_v2.py
index c3628121..d0163189 100644
--- a/openstackclient/api/image_v2.py
+++ b/openstackclient/api/image_v2.py
@@ -31,6 +31,7 @@ class APIv2(image_v1.APIv1):
detailed=False,
public=False,
private=False,
+ community=False,
shared=False,
**filter
):
@@ -44,25 +45,29 @@ class APIv2(image_v1.APIv1):
Return public images if True
:param private:
Return private images if True
+ :param community:
+ Return commuity images if True
:param shared:
Return shared images if True
- If public, private and shared are all True or all False then all
- images are returned. All arguments False is equivalent to no filter
- and all images are returned. All arguments True is a filter that
- includes all public, private and shared images which is the same set
- as all images.
+ If public, private, community and shared are all True or all False
+ then all images are returned. All arguments False is equivalent to no
+ filter and all images are returned. All arguments True is a filter
+ that includes all public, private, community and shared images which
+ is the same set as all images.
http://docs.openstack.org/api/openstack-image-service/2.0/content/list-images.html
"""
- if not public and not private and not shared:
+ if not public and not private and not community and not shared:
# No filtering for all False
filter.pop('visibility', None)
elif public:
filter['visibility'] = 'public'
elif private:
filter['visibility'] = 'private'
+ elif community:
+ filter['visibility'] = 'community'
elif shared:
filter['visibility'] = 'shared'
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 4c7c815f..51963f7d 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -440,6 +440,13 @@ class ListImage(command.Lister):
help=_("List only private images"),
)
public_group.add_argument(
+ "--community",
+ dest="community",
+ action="store_true",
+ default=False,
+ help=_("List only community images"),
+ )
+ public_group.add_argument(
"--shared",
dest="shared",
action="store_true",
@@ -516,6 +523,8 @@ class ListImage(command.Lister):
kwargs['public'] = True
if parsed_args.private:
kwargs['private'] = True
+ if parsed_args.community:
+ kwargs['community'] = True
if parsed_args.shared:
kwargs['shared'] = True
if parsed_args.limit:
diff --git a/openstackclient/tests/unit/image/v2/test_image.py b/openstackclient/tests/unit/image/v2/test_image.py
index b769d1f6..3ad45145 100644
--- a/openstackclient/tests/unit/image/v2/test_image.py
+++ b/openstackclient/tests/unit/image/v2/test_image.py
@@ -527,6 +527,7 @@ class TestImageList(TestImage):
verifylist = [
('public', False),
('private', False),
+ ('community', False),
('shared', False),
('long', False),
]
@@ -550,6 +551,7 @@ class TestImageList(TestImage):
verifylist = [
('public', True),
('private', False),
+ ('community', False),
('shared', False),
('long', False),
]
@@ -574,6 +576,7 @@ class TestImageList(TestImage):
verifylist = [
('public', False),
('private', True),
+ ('community', False),
('shared', False),
('long', False),
]
@@ -591,6 +594,31 @@ class TestImageList(TestImage):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, tuple(data))
+ def test_image_list_community_option(self):
+ arglist = [
+ '--community',
+ ]
+ verifylist = [
+ ('public', False),
+ ('private', False),
+ ('community', True),
+ ('shared', False),
+ ('long', False),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # In base command class Lister in cliff, abstract method take_action()
+ # returns a tuple containing the column names and an iterable
+ # containing the data to be listed.
+ columns, data = self.cmd.take_action(parsed_args)
+ self.api_mock.image_list.assert_called_with(
+ community=True,
+ marker=self._image.id,
+ )
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.datalist, tuple(data))
+
def test_image_list_shared_option(self):
arglist = [
'--shared',
@@ -598,6 +626,7 @@ class TestImageList(TestImage):
verifylist = [
('public', False),
('private', False),
+ ('community', False),
('shared', True),
('long', False),
]