)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e91f59358a3f1ebbacfbeb67dabbff01e0936594","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8441f90d_ff2a472a","updated":"2026-06-10 07:24:45.000000000","message":"I guess so far I kinda not liking very much that we repeat this import/parse process in 3-4 different places, instead of having some helper method.\n\nWDYT?","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0f3d253aff7afc870e2e692c94d2cde2bfb645e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5c87d150_b5e9989f","updated":"2026-06-10 11:45:10.000000000","message":"I\u0027ve proposed a simpler alternative here https://review.opendev.org/c/openstack/ansible-collections-openstack/+/992623","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"5f5eebe433a7d4cd538deee3ddf201dce069ac4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1c5294a6_0b2dca70","updated":"2026-06-10 10:51:41.000000000","message":"While looking into more details for sanity checks, which are failing if not to put `packaging` in try/except, I have looked through Ansible documentation for module maintainers:\nhttps://docs.ansible.com/projects/ansible/latest/dev_guide/testing/sanity/import.html\n\nAnd I pretty much realized, that by using `packaging` we are actually adding a new dependency on end users, as it\u0027s not actually part of native python anymore.\nSo I think we should be avoiding it if possible.\n\nI managed to workaround it\u0027s requirement with a regexp, which gives quite similar result.\nSo I\u0027d say we should not be adding `packaging` to the picture.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3a0e4969f29d4bf89ca6a2a96dbdfde6dffad9ee","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e65d4323_a6497c88","updated":"2026-06-10 07:27:39.000000000","message":"valid questions from @noonedeadpunk@gmail.com","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"930020dbad4589e0383ea7dd83d5ce594532e192","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b05c843c_74f97442","in_reply_to":"5a705ae9_83ae0b6a","updated":"2026-06-10 08:11:16.000000000","message":"I do not agree with the assertion that fixes for breakages (this will break _any_ user of this collection which has not pinned openstacksdk to before their change) should include unrelated style refactors. I am not opposed to such refactors, but it does not seem like the bar that fixing CI breakages should be held to.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"1754ae259cf77629418999777be5ffabb98fba8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"aa314d88_3f6447b6","in_reply_to":"6423b60a_b0a0f701","updated":"2026-06-10 07:52:56.000000000","message":"Or can propose yet another alternative....","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"fb4d56ceb44e5a432f0f22fba86492c1854204ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d8c7f1c1_1f2b3e28","in_reply_to":"8441f90d_ff2a472a","updated":"2026-06-10 07:36:33.000000000","message":"I\u0027m just trying to get the Kolla build working again. I didn\u0027t write the original code and I cannot explain why the original author did not provide a utility for this.\n\nNow yes, absolutely there could be one. However, that\u0027s not a thing I will have time to address today and the Kolla build remains broken.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"0cbaa180110a6e6253a0418e9b211ec13929932c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5a705ae9_83ae0b6a","in_reply_to":"aa314d88_3f6447b6","updated":"2026-06-10 07:59:17.000000000","message":"\u003e I\u0027m just trying to get the Kolla build working again\n\nAnd sorry, it\u0027s not a good enough reason to make shortcuts in implementation/fixes in other places. I guess you can pin older sdk version to fix kolla specifically in the meanwhile if that is so urgent.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"5f5eebe433a7d4cd538deee3ddf201dce069ac4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b47ab0a9_e41cf915","in_reply_to":"b05c843c_74f97442","updated":"2026-06-10 10:51:41.000000000","message":"We\u0027re not arguing about urgency of the fix that is required here, as I think we agree on it.\n\nSo the whole this discussion boils down to the time investment asked as part of the review.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"6d69b0588c6b35baeaf5000f54cc168dd9a36c22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6423b60a_b0a0f701","in_reply_to":"d8c7f1c1_1f2b3e28","updated":"2026-06-10 07:49:23.000000000","message":"I can update the patch to introduce such utility if the question is time for this.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"}],"plugins/inventory/openstack.py":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"e91f59358a3f1ebbacfbeb67dabbff01e0936594","unresolved":true,"context_lines":[{"line_number":180,"context_line":"                \u0027Could not import Python library openstacksdk\u0027)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            from importlib.metadata import version"},{"line_number":184,"context_line":"            from packaging.version import Version"},{"line_number":185,"context_line":"            ensure_compatibility(Version(version(\u0027openstacksdk\u0027)).base_version)"},{"line_number":186,"context_line":"        except ImportError as e:"},{"line_number":187,"context_line":"            raise AnsibleParserError("},{"line_number":188,"context_line":"                \u0027Incompatible openstacksdk library found: {0}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"c1c4d803_91b0a12d","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":79},"updated":"2026-06-10 07:24:45.000000000","message":"I would prefer importing as tbh as this is not really readable now, like\n\n```\n            from importlib.metadata import version as importlib_version\n            from packaging.version import Version as package_version\n            ensure_compatibility(\n                package_version(\n                    importlib_version(\u0027openstacksdk\u0027)).base_version)\n```\n\nBut also, I kinda wonder why we care about pbr version in here? As imo we can simplify import here and pass a result of `importlib.metadata.version(\u0027openstacksdk\u0027)`  into `module_utils.openstack.ensure_compatibility` and parse it there.\n\nAs we are for some reason moving complexity from there to a multiple different places, so we can be more DRY here, imo.\n\nOr even make a separate method like get_sdk_version in `module_utils.openstack` which would return the version or raise exception...","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"6d69b0588c6b35baeaf5000f54cc168dd9a36c22","unresolved":true,"context_lines":[{"line_number":180,"context_line":"                \u0027Could not import Python library openstacksdk\u0027)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            from importlib.metadata import version"},{"line_number":184,"context_line":"            from packaging.version import Version"},{"line_number":185,"context_line":"            ensure_compatibility(Version(version(\u0027openstacksdk\u0027)).base_version)"},{"line_number":186,"context_line":"        except ImportError as e:"},{"line_number":187,"context_line":"            raise AnsibleParserError("},{"line_number":188,"context_line":"                \u0027Incompatible openstacksdk library found: {0}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"521a8c8d_9d2eac65","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":79},"in_reply_to":"827f7e44_6f08e0e3","updated":"2026-06-10 07:49:23.000000000","message":"I meant that `Version(version())` is not readable mostly.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"fb4d56ceb44e5a432f0f22fba86492c1854204ca","unresolved":true,"context_lines":[{"line_number":180,"context_line":"                \u0027Could not import Python library openstacksdk\u0027)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            from importlib.metadata import version"},{"line_number":184,"context_line":"            from packaging.version import Version"},{"line_number":185,"context_line":"            ensure_compatibility(Version(version(\u0027openstacksdk\u0027)).base_version)"},{"line_number":186,"context_line":"        except ImportError as e:"},{"line_number":187,"context_line":"            raise AnsibleParserError("},{"line_number":188,"context_line":"                \u0027Incompatible openstacksdk library found: {0}\u0027.format(e))"}],"source_content_type":"text/x-python","patch_set":8,"id":"827f7e44_6f08e0e3","line":185,"range":{"start_line":183,"start_character":0,"end_line":185,"end_character":79},"in_reply_to":"c1c4d803_91b0a12d","updated":"2026-06-10 07:36:33.000000000","message":"If you look through the CI history, you\u0027ll see that the import is inside the `try` block because the sanity linter runs wihthout requirements being installed first and was therefore failing.","commit_id":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14"}]}
