summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
authorSheel Rana <ranasheel2000@gmail.com>2016-05-01 12:07:46 +0530
committerRui Chen <chenrui.momo@gmail.com>2016-07-20 16:54:58 +0800
commit5e8957ef7f4acea1ece06378c050021b64ea3f6f (patch)
treea739029aacfd736dacef67c0d434479b33b18360 /openstackclient/volume
parent55c1c575d63f4e9e6fc3f4dbb6c572e841b513d9 (diff)
downloadpython-openstackclient-5e8957ef7f4acea1ece06378c050021b64ea3f6f.tar.gz
Show project access for volume type
OSC does not support to show project access details for private volume types. This patch will provide support for showing project access details for private volume types. Closes-Bug:#1554891 Implements: bp cinder-command-support Change-Id: I218fb07a6e69033e9f8570748eee1df8df9d6fdc
Diffstat (limited to 'openstackclient/volume')
-rw-r--r--openstackclient/volume/v2/volume_type.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/openstackclient/volume/v2/volume_type.py b/openstackclient/volume/v2/volume_type.py
index ac11785c..62d619d0 100644
--- a/openstackclient/volume/v2/volume_type.py
+++ b/openstackclient/volume/v2/volume_type.py
@@ -282,8 +282,24 @@ class ShowVolumeType(command.ShowOne):
volume_client = self.app.client_manager.volume
volume_type = utils.find_resource(
volume_client.volume_types, parsed_args.volume_type)
- properties = utils.format_dict(volume_type._info.pop('extra_specs'))
+ properties = utils.format_dict(
+ volume_type._info.pop('extra_specs', {}))
volume_type._info.update({'properties': properties})
+ access_project_ids = None
+ if not volume_type.is_public:
+ try:
+ volume_type_access = volume_client.volume_type_access.list(
+ volume_type.id)
+ project_ids = [utils.get_field(item, 'project_id')
+ for item in volume_type_access]
+ # TODO(Rui Chen): This format list case can be removed after
+ # patch https://review.openstack.org/#/c/330223/ merged.
+ access_project_ids = utils.format_list(project_ids)
+ except Exception as e:
+ msg = _('Failed to get access project list for volume type '
+ '%(type)s: %(e)s')
+ LOG.error(msg % {'type': volume_type.id, 'e': e})
+ volume_type._info.update({'access_project_ids': access_project_ids})
return zip(*sorted(six.iteritems(volume_type._info)))