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: <class
  'openstack.block_storage.v2.volume.Volume'> ...

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.: 2f97394847

Task: 41571
Story: 2008136
Change-Id: I5b7adc399f19da08f02202af64a226c92bb9bf41
This commit is contained in:
Jakob Meng 2021-01-12 11:58:16 +01:00
parent a4e6d1b67c
commit 69947cd9fd

View File

@ -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})