summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2022-05-16 12:32:25 +0100
committerStephen Finucane <sfinucan@redhat.com>2022-05-16 12:47:39 +0100
commit045f2e7e0618fdf22c260625d64554382afefde1 (patch)
tree2b62751bd8754dee0fa05b4c58141756f630283c /openstackclient/volume
parentccd877dd405191002f0f1b0e7ed414671e8a8e64 (diff)
downloadpython-openstackclient-045f2e7e0618fdf22c260625d64554382afefde1.tar.gz
volume: Correct output of 'volume attachment create'
When adding these, we missed that the underlying cinder library call actually returns a dictionary and not a Resource-based object. This requires slightly different handling. Fix this. Change-Id: Ie065fe4198ae1238830cb619220e856390d4cb6e Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/volume')
-rw-r--r--openstackclient/volume/v3/volume_attachment.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/openstackclient/volume/v3/volume_attachment.py b/openstackclient/volume/v3/volume_attachment.py
index 39a9c37f..c7401837 100644
--- a/openstackclient/volume/v3/volume_attachment.py
+++ b/openstackclient/volume/v3/volume_attachment.py
@@ -51,18 +51,27 @@ def _format_attachment(attachment):
'Properties',
)
- # TODO(stephenfin): Improve output with the nested connection_info
- # field - cinderclient printed two things but that's equally ugly
- return (
- column_headers,
- utils.get_item_properties(
+ # VolumeAttachmentManager.create returns a dict while everything else
+ # returns a VolumeAttachment object
+ if isinstance(attachment, dict):
+ data = []
+ for column in columns:
+ if column == 'connection_info':
+ data.append(format_columns.DictColumn(attachment[column]))
+ continue
+ data.append(attachment[column])
+ else:
+ data = utils.get_item_properties(
attachment,
columns,
formatters={
'connection_info': format_columns.DictColumn,
},
- ),
- )
+ )
+
+ # TODO(stephenfin): Improve output with the nested connection_info
+ # field - cinderclient printed two things but that's equally ugly
+ return (column_headers, data)
class CreateVolumeAttachment(command.ShowOne):