summaryrefslogtreecommitdiff
path: root/openstackclient/volume/v2
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/v2
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/v2')
-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)))