diff options
| author | Sheel Rana <ranasheel2000@gmail.com> | 2016-05-01 12:07:46 +0530 |
|---|---|---|
| committer | Rui Chen <chenrui.momo@gmail.com> | 2016-07-20 16:54:58 +0800 |
| commit | 5e8957ef7f4acea1ece06378c050021b64ea3f6f (patch) | |
| tree | a739029aacfd736dacef67c0d434479b33b18360 /openstackclient/volume | |
| parent | 55c1c575d63f4e9e6fc3f4dbb6c572e841b513d9 (diff) | |
| download | python-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.py | 18 |
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))) |
