summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorM V P Nitesh <m.nitesh@nectechnologies.in>2017-06-30 14:13:02 +0530
committerDean Troyer <dtroyer@gmail.com>2017-06-30 20:35:01 +0000
commit3468ea1ca429e8b6403ae5f989cfed521d8f5690 (patch)
treedbc043fdece6993bca5bd4c5d8e38508bc49fbd5 /openstackclient
parent22bed5d1f0594ed297a03a845e08216ff975165d (diff)
downloadpython-openstackclient-3468ea1ca429e8b6403ae5f989cfed521d8f5690.tar.gz
Added 'openstack image set --visibility'
This feature will allow image owners to share images across multiple tenants/projects without explicitly creating members individually through the glance API V2. “Community images” will not appear iu user's default image listings Change-Id: Ic02bf44cca5d6d793d68a8737d3cfe3f44407d88 Closes-Bug: #1626837
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/image/v2/image.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index ad21cbd7..2b171410 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -205,6 +205,16 @@ class CreateImage(command.ShowOne):
action="store_true",
help=_("Image is inaccessible to the public (default)"),
)
+ public_group.add_argument(
+ "--community",
+ action="store_true",
+ help=_("Image is accessible to the community"),
+ )
+ public_group.add_argument(
+ "--shared",
+ action="store_true",
+ help=_("Image can be shared"),
+ )
parser.add_argument(
"--property",
dest="properties",
@@ -260,7 +270,7 @@ class CreateImage(command.ShowOne):
kwargs = {}
copy_attrs = ('name', 'id',
'container_format', 'disk_format',
- 'min_disk', 'min_ram', 'tags')
+ 'min_disk', 'min_ram', 'tags', 'visibility')
for attr in copy_attrs:
if attr in parsed_args:
val = getattr(parsed_args, attr, None)
@@ -288,7 +298,10 @@ class CreateImage(command.ShowOne):
kwargs['visibility'] = 'public'
if parsed_args.private:
kwargs['visibility'] = 'private'
-
+ if parsed_args.community:
+ kwargs['visibility'] = 'community'
+ if parsed_args.shared:
+ kwargs['visibility'] = 'shared'
# Handle deprecated --owner option
project_arg = parsed_args.project
if parsed_args.owner:
@@ -698,6 +711,16 @@ class SetImage(command.Command):
action="store_true",
help=_("Image is inaccessible to the public (default)"),
)
+ public_group.add_argument(
+ "--community",
+ action="store_true",
+ help=_("Image is accessible to the community"),
+ )
+ public_group.add_argument(
+ "--shared",
+ action="store_true",
+ help=_("Image can be shared"),
+ )
parser.add_argument(
"--property",
dest="properties",
@@ -817,7 +840,7 @@ class SetImage(command.Command):
copy_attrs = ('architecture', 'container_format', 'disk_format',
'file', 'instance_id', 'kernel_id', 'locations',
'min_disk', 'min_ram', 'name', 'os_distro', 'os_version',
- 'prefix', 'progress', 'ramdisk_id', 'tags')
+ 'prefix', 'progress', 'ramdisk_id', 'tags', 'visibility')
for attr in copy_attrs:
if attr in parsed_args:
val = getattr(parsed_args, attr, None)
@@ -845,7 +868,10 @@ class SetImage(command.Command):
kwargs['visibility'] = 'public'
if parsed_args.private:
kwargs['visibility'] = 'private'
-
+ if parsed_args.community:
+ kwargs['visibility'] = 'community'
+ if parsed_args.shared:
+ kwargs['visibility'] = 'shared'
# Handle deprecated --owner option
project_arg = parsed_args.project
if parsed_args.owner: