)]}'
{"plugins/modules/volume_info.py":[{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"cfe7a73cd6350ccd84f4e31b6110701556fff6e4","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c8dfd48c_edbca33e","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"updated":"2021-01-12 11:03:20.000000000","message":"It was fixed in https://review.opendev.org/c/openstack/ansible-collections-openstack/+/764046\nWe have min_ver option for arguments to limit versions of usage","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"253b345d12ed2caa2acc9d99056ece84f799759b","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"529f6960_c684132c","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"in_reply_to":"3e5b4773_076947ce","updated":"2021-01-12 12:36:45.000000000","message":"It\u0027s not correct, you can see result from rocky job, it doesn\u0027t fail. 0.17.4 version","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"5305ada88b2c9771d1d62746b5fe42fcd70fee26","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa3ca0ba_bbeb9d8d","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"in_reply_to":"529f6960_c684132c","updated":"2021-01-12 12:54:16.000000000","message":"Looking at \u0027ci/roles/volume/tasks/volume_info.yml\u0027 it looks like there is currently no unit test that runs for sdk 0.17.4 and is not \u0027ignore_errors: true\u0027. The second test (\u0027Get info about volumes for all SDK\u0027) does not fail because it returns no volumes at all ([]).\n\nIn the latest patchset I have removed the sdk check that prevented test execution with older sdk versions. Let\u0027s see how that works out..","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"497835d1059933cea062df217827272b8f3dacbd","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0ef23b90_68ecfa58","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"in_reply_to":"bc8de560_718d0e78","updated":"2021-01-12 13:08:05.000000000","message":"An empty result is (and was) okay, because then nothing has to be converted or interpreted. But if you do get non-empty results, then you have to use to_dict() for older sdk versions. Since 0.19, the object that \u0027self.conn.block_storage.volumes()\u0027 returns is a subclass of dict and therefore Ansible can read its content (to_dict is not necessary anymore).\n\nThe unit test for volume_info does not trigger this bug, because the only test that is run on sdk\u003c0.28 returns an empty result.","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b959bce3b035c5a25f5ffea90616947ef5d5bd86","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3e5b4773_076947ce","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"in_reply_to":"c8dfd48c_edbca33e","updated":"2021-01-12 12:34:33.000000000","message":"I did upload a new patch that might be a bit more pythonic.\n\nIt does not check for a specific sdk version but instead just tests whether the result from openstacksdk is a dict (post 0.19) or not (pre 0.19). \n\nWithout this (or the older) patch, the module will fail on older sdk versions because the result of \u0027volumes()\u0027 is not a list of dict\u0027s and hence Ansible does not know what to do.","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"aa60ad8bb46babadd35bf73af69a0859d1be530b","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        result \u003d self.conn.block_storage.volumes(**kwargs)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if StrictVersion(self.sdk_version) \u003e\u003d StrictVersion(\u00270.19.0\u0027):"},{"line_number":139,"context_line":"            # Resource is a dict subclass since 0.19.0"},{"line_number":140,"context_line":"            # Ref.: https://github.com/openstack/openstacksdk/commit/2f973948473b52a6f1eb9e2eae5962d1df7a992f"},{"line_number":141,"context_line":"            result \u003d list(result)"},{"line_number":142,"context_line":"        else:"},{"line_number":143,"context_line":"            result \u003d [vol.to_dict() for vol in result]"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        self.results.update({\u0027volumes\u0027: result})"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bc8de560_718d0e78","line":143,"range":{"start_line":139,"start_character":0,"end_line":143,"end_character":54},"in_reply_to":"fa3ca0ba_bbeb9d8d","updated":"2021-01-12 12:58:16.000000000","message":"So empty result might be a problem that should be solved by your patch with to_dict() ?","commit_id":"17f5d0537680987cc54c5c190c815a1927729e3a"}]}
