From 69947cd9fda9e2c742dc21d5e5ed3fa20f14e955 Mon Sep 17 00:00:00 2001 From: Jakob Meng Date: Tue, 12 Jan 2021 11:58:16 +0100 Subject: [PATCH] Fix volume_info result for SDK < 0.19 With openstacksdk prior to version 0.19, module volume_info fails with: TypeError: Value of unknown type: ... The call to 'self.conn.block_storage.volumes()' returns an instance of class 'openstack.block_storage.v2.volume.Volume'. This class inherits from 'openstack.resource.Resource', which is a 'dict' subclass since 0.19. For older sdk versions prior to 0.19 it was not, hence we have to use the 'to_dict' function to convert each 'Volume' to 'dict' explicitly. Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f Task: 41571 Story: 2008136 Change-Id: I5b7adc399f19da08f02202af64a226c92bb9bf41 --- plugins/modules/volume_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/modules/volume_info.py b/plugins/modules/volume_info.py index 45abea04..2b58f35f 100644 --- a/plugins/modules/volume_info.py +++ b/plugins/modules/volume_info.py @@ -133,7 +133,7 @@ class VolumeInfoModule(OpenStackModule): status=self.params['status'], ) result = self.conn.block_storage.volumes(**kwargs) - result = list(result) + result = [vol if isinstance(vol, dict) else vol.to_dict() for vol in result] self.results.update({'volumes': result})