)]}'
{"id":"openstack%2Fansible-collections-openstack~992526","triplet_id":"openstack%2Fansible-collections-openstack~master~I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b","project":"openstack/ansible-collections-openstack","branch":"master","topic":"importlib-metadata","attention_set":{"2271":{"account":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"last_update":"2026-06-10 10:51:41.000000000","reason":"\u003cGERRIT_ACCOUNT_28619\u003e replied on the change","reason_account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}},"removed_from_attention_set":{"13252":{"account":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"last_update":"2026-06-10 07:26:14.000000000","reason":"\u003cGERRIT_ACCOUNT_13252\u003e replied on the change","reason_account":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"}},"22629":{"account":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"last_update":"2026-06-10 02:21:27.000000000","reason":"Only change owner, uploader, reviewers, and cc can be in the attention set"},"28619":{"account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"last_update":"2026-06-10 10:51:41.000000000","reason":"\u003cGERRIT_ACCOUNT_28619\u003e replied on the change","reason_account":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}},"hashtags":[],"change_id":"I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b","subject":"Use importlib.metadata to read openstacksdk version.","status":"NEW","created":"2026-06-09 20:17:08.000000000","updated":"2026-06-10 11:45:10.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":13,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"0f3d253aff7afc870e2e692c94d2cde2bfb645e9","_number":992526,"virtual_id_number":992526,"owner":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-06-10 04:15:44.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":0,"date":"2026-06-10 07:27:39.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},{"value":-1,"date":"2026-06-10 10:51:41.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}],"REVIEWER":[{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-09 20:52:45.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-06-10 02:50:02.000000000","updated_by":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"reviewer":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"state":"REVIEWER"},{"updated":"2026-06-10 07:24:45.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"CC"},{"updated":"2026-06-10 10:51:41.000000000","updated_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"reviewer":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"state":"REVIEWER"},{"updated":"2026-06-10 11:45:10.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"CC"}],"messages":[{"id":"a3536a3f676a549bd48e7468b956548916176fc2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-06-09 20:17:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"04eb6d1082d4321ad133ff37876b6c61b31501d4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 20:52:45.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/daa5d98b380a4b6188f4d8d4db1db60a\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/fd16ce1a9b4145398a8e0040ddd2677a : SUCCESS in 2m 38s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/4c10655a42dd4efbb9f21a9a4c9072de : SUCCESS in 4m 50s (non-voting)\n- openstack-tox-linters-ansible-2.18 https://zuul.opendev.org/t/openstack/build/d4963090b45b4a06be2278080538abca : SUCCESS in 6m 06s\n- openstack-tox-linters-ansible-2.19 https://zuul.opendev.org/t/openstack/build/a293fdcea506493ebd11284e27adefb9 : SUCCESS in 6m 37s\n- openstack-tox-linters-ansible-2.20 https://zuul.opendev.org/t/openstack/build/cfeabaf714dc469eb8f2aed52b9e3369 : SUCCESS in 6m 07s\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/aa481d2000d547808f59cfb4e02d992a : FAILURE in 16m 25s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/e053634e38bb4b4a8073ad3ebff5ca91 : FAILURE in 12m 42s\n- ansible-collections-openstack-functional-devstack-ansible-2.18 https://zuul.opendev.org/t/openstack/build/fb7f6fc8d4904bbbaeb46a9b1d7f6b0d : FAILURE in 16m 22s\n- ansible-collections-openstack-functional-devstack-ansible-2.19 https://zuul.opendev.org/t/openstack/build/8734222d56d44c1e841a46a2d8c58642 : FAILURE in 16m 10s\n- ansible-collections-openstack-functional-devstack-ansible-2.20 https://zuul.opendev.org/t/openstack/build/a67712cc80dd4ed3a5e935aba6dff185 : FAILURE in 29m 33s\n- ansible-collections-openstack-functional-devstack-ansible-devel https://zuul.opendev.org/t/openstack/build/11ccc0b1b82e4301a42cdf91de7b1cb8 : POST_FAILURE in 12m 14s (non-voting)\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/41127eb227a74d8a82bb25bf76fc62a1 : FAILURE in 12m 09s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/9458fa7e6be74fdd811897ffc29c25df : FAILURE in 7m 18s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"c6e2d9856faa2337c645f714c49befbbfc73f4f0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-06-09 22:21:43.000000000","message":"Patch Set 2: Published edit on patch set 1.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"ccb806ee5f5c992e79c27b8d987b0d5fb36b40ca","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-06-09 22:39:18.000000000","message":"Patch Set 3: Published edit on patch set 2.","accounts_in_message":[],"_revision_number":3},{"id":"81de16a38e5012913d51df4ef1da049e8e624e02","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-06-09 22:41:53.000000000","message":"Patch Set 4: Published edit on patch set 3.","accounts_in_message":[],"_revision_number":4},{"id":"e9527525fecff191ee83a4e366e05d247a79907a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-06-09 22:55:35.000000000","message":"Patch Set 5: Published edit on patch set 4.","accounts_in_message":[],"_revision_number":5},{"id":"40c7009425cd5b1f98dcb6c8444b0f834a5d5021","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-06-09 22:59:16.000000000","message":"Patch Set 6: Published edit on patch set 5.","accounts_in_message":[],"_revision_number":6},{"id":"58ea9d8606f316bca0de889e948db8d7b7aa51b8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 00:28:52.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/34ec8362897a47999b34a3a74bb8ea15\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/f43f98bd48504271bc7ca8fa1fc4ca54 : SUCCESS in 2m 41s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/89b047b78ced4701ba6f6ec2cfe6a3bf : FAILURE in 5m 50s (non-voting)\n- openstack-tox-linters-ansible-2.18 https://zuul.opendev.org/t/openstack/build/49786ead9f3243a6a0ba394a94e7c856 : FAILURE in 5m 25s\n- openstack-tox-linters-ansible-2.19 https://zuul.opendev.org/t/openstack/build/fb656cc608ef466fa6ddf1a03777ac4b : FAILURE in 5m 35s\n- openstack-tox-linters-ansible-2.20 https://zuul.opendev.org/t/openstack/build/469a1270eb3049d890e34549a92087b9 : FAILURE in 6m 06s\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/bb06e699744d41a0adc4ccf2b5a51193 : SUCCESS in 1h 27m 41s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/fdb43ea920b34cfcb0b21ab0408595f0 : SUCCESS in 1h 17m 47s\n- ansible-collections-openstack-functional-devstack-ansible-2.18 https://zuul.opendev.org/t/openstack/build/151452632d104fd2b804e249b56e5c20 : SUCCESS in 44m 41s\n- ansible-collections-openstack-functional-devstack-ansible-2.19 https://zuul.opendev.org/t/openstack/build/af455dde5c7f471da8e0dc7defa629d5 : SUCCESS in 56m 44s\n- ansible-collections-openstack-functional-devstack-ansible-2.20 https://zuul.opendev.org/t/openstack/build/e641f550fef147119d1ff88a913b35eb : SUCCESS in 1h 18m 35s\n- ansible-collections-openstack-functional-devstack-ansible-devel https://zuul.opendev.org/t/openstack/build/b1baa0949f2940beaca15dc857ab040b : POST_FAILURE in 5m 28s (non-voting)\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/dda366ac2e0947348a6e041a518183d3 : SUCCESS in 46m 59s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/12c060dd3d96420fa360eef072e8f4f9 : SUCCESS in 42m 43s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"47b6adef2c40208573ca475d275dee5f11c186f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-06-10 01:03:23.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"b4ff055d160217f0e988261c3711c1f3e85d6439","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-06-10 02:21:27.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"90bd2fcd731583eb4885b99f075b7f85f5620b4d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 04:15:44.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/08b5dd33121b4cc3a5f871a543ac8293\n\n- tox-pep8 https://zuul.opendev.org/t/openstack/build/3f61b70e21544c6c895de2345f430454 : SUCCESS in 4m 24s\n- openstack-tox-linters-ansible-devel https://zuul.opendev.org/t/openstack/build/ba6e14711173473698b6611036fab217 : SUCCESS in 4m 18s (non-voting)\n- openstack-tox-linters-ansible-2.18 https://zuul.opendev.org/t/openstack/build/a74ecb3f5f1a438188109027bf4be221 : SUCCESS in 6m 21s\n- openstack-tox-linters-ansible-2.19 https://zuul.opendev.org/t/openstack/build/48bba285bc57473bb0758287205af672 : SUCCESS in 4m 57s\n- openstack-tox-linters-ansible-2.20 https://zuul.opendev.org/t/openstack/build/93d08bdd82a746f38ab335ebda8f7cf1 : SUCCESS in 4m 28s\n- ansible-collections-openstack-functional-devstack https://zuul.opendev.org/t/openstack/build/a9c73df1509a4bca8de9cac684b5b3eb : SUCCESS in 1h 17m 22s\n- ansible-collections-openstack-functional-devstack-releases https://zuul.opendev.org/t/openstack/build/9a5c83dc117f487eb78d0754b86fa7df : SUCCESS in 46m 54s\n- ansible-collections-openstack-functional-devstack-ansible-2.18 https://zuul.opendev.org/t/openstack/build/a9459b9534ad4deea62285f081ac5bf0 : SUCCESS in 1h 17m 35s\n- ansible-collections-openstack-functional-devstack-ansible-2.19 https://zuul.opendev.org/t/openstack/build/91262a4bb6144ac1a4f25e418a6812b2 : SUCCESS in 1h 06m 18s\n- ansible-collections-openstack-functional-devstack-ansible-2.20 https://zuul.opendev.org/t/openstack/build/76905fb411c849cca97e9333620055b8 : SUCCESS in 1h 20m 11s\n- ansible-collections-openstack-functional-devstack-ansible-devel https://zuul.opendev.org/t/openstack/build/97e7547043f64a6581d30af33a56ff1b : POST_FAILURE in 8m 10s (non-voting)\n- bifrost-collections-src https://zuul.opendev.org/t/openstack/build/cbe0e3bc5fd64ce9924d5783069e6d78 : SUCCESS in 42m 04s (non-voting)\n- bifrost-keystone-collections-src https://zuul.opendev.org/t/openstack/build/01bdb0c4f4064e66a24f71ba1a11fd4b : SUCCESS in 50m 47s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"e91f59358a3f1ebbacfbeb67dabbff01e0936594","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-10 07:24:45.000000000","message":"Patch Set 8:\n\n(2 comments)","accounts_in_message":[],"_revision_number":8},{"id":"8ee0116a788576f5ebe2334bc092df72cfbff913","author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"date":"2026-06-10 07:26:14.000000000","message":"Patch Set 8: Code-Review+1","accounts_in_message":[],"_revision_number":8},{"id":"3a0e4969f29d4bf89ca6a2a96dbdfde6dffad9ee","author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"date":"2026-06-10 07:27:39.000000000","message":"Patch Set 8: -Code-Review\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"fb4d56ceb44e5a432f0f22fba86492c1854204ca","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-06-10 07:36:33.000000000","message":"Patch Set 8:\n\n(2 comments)","accounts_in_message":[],"_revision_number":8},{"id":"6d69b0588c6b35baeaf5000f54cc168dd9a36c22","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-10 07:49:23.000000000","message":"Patch Set 8:\n\n(2 comments)","accounts_in_message":[],"_revision_number":8},{"id":"1754ae259cf77629418999777be5ffabb98fba8f","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-10 07:52:56.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"0cbaa180110a6e6253a0418e9b211ec13929932c","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-10 07:59:17.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"930020dbad4589e0383ea7dd83d5ce594532e192","author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"date":"2026-06-10 08:11:16.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"5f5eebe433a7d4cd538deee3ddf201dce069ac4f","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2026-06-10 10:51:41.000000000","message":"Patch Set 8: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":8},{"id":"0f3d253aff7afc870e2e692c94d2cde2bfb645e9","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-06-10 11:45:10.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8}],"current_revision_number":8,"current_revision":"92fb1d6f9dbc69e46f275372e0c003cc9b571d14","revisions":{"f2d5d0f4c5eeebe82b235bb5d4fd293aeaf21ae6":{"kind":"REWORK","_number":1,"created":"2026-06-09 20:17:08.000000000","uploader":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"ref":"refs/changes/26/992526/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/1"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version, which is\nthe canonical Python way of reading an installed distribution\u0027s\nversion and is what openstacksdk itself moved to in the same commit\nreferenced above. importlib.metadata is part of the standard library\nfrom Python 3.8 onwards, which is below every Python version\nsupported by openstacksdk.\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f2d5d0f4c5eeebe82b235bb5d4fd293aeaf21ae6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/f2d5d0f4c5eeebe82b235bb5d4fd293aeaf21ae6"}]},"branch":"refs/heads/master"},"b95047d49f72d4971b19308bfa3d081a30c1b8ce":{"kind":"REWORK","_number":2,"created":"2026-06-09 22:21:43.000000000","uploader":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"ref":"refs/changes/26/992526/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/2"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","date":"2026-06-09 22:21:43.000000000","tz":0},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version, which is\nthe canonical Python way of reading an installed distribution\u0027s\nversion and is what openstacksdk itself moved to in the same commit\nreferenced above. importlib.metadata is part of the standard library\nfrom Python 3.8 onwards, which is below every Python version\nsupported by openstacksdk.\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/b95047d49f72d4971b19308bfa3d081a30c1b8ce"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/b95047d49f72d4971b19308bfa3d081a30c1b8ce"}]},"branch":"refs/heads/master"},"03acebd3a8e8e36213e9b3a2498fbe7de2a8b3e3":{"kind":"REWORK","_number":3,"created":"2026-06-09 22:39:18.000000000","uploader":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"ref":"refs/changes/26/992526/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/3"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","date":"2026-06-09 22:39:16.000000000","tz":0},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version, which is\nthe canonical Python way of reading an installed distribution\u0027s\nversion and is what openstacksdk itself moved to in the same commit\nreferenced above. importlib.metadata is part of the standard library\nfrom Python 3.8 onwards, which is below every Python version\nsupported by openstacksdk.\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/03acebd3a8e8e36213e9b3a2498fbe7de2a8b3e3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/03acebd3a8e8e36213e9b3a2498fbe7de2a8b3e3"}]},"branch":"refs/heads/master"},"65af7587d2eeda11fea7d482e7408bbec42bcd59":{"kind":"REWORK","_number":4,"created":"2026-06-09 22:41:53.000000000","uploader":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"ref":"refs/changes/26/992526/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/4"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","date":"2026-06-09 22:41:53.000000000","tz":0},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version and\npackaging call to get base_version, which is the canonical Python\nway of reading an installed distribution\u0027s version and will omit\npbr generated versioning like \"1.1.1.dev11\"\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/65af7587d2eeda11fea7d482e7408bbec42bcd59"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/65af7587d2eeda11fea7d482e7408bbec42bcd59"}]},"branch":"refs/heads/master"},"2da1c9d67e8c3cbee08b0f0c8f9284bcdcde4e51":{"kind":"REWORK","_number":5,"created":"2026-06-09 22:55:35.000000000","uploader":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"ref":"refs/changes/26/992526/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/5"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","date":"2026-06-09 22:55:35.000000000","tz":0},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version and\npackaging call to get base_version, which is the canonical Python\nway of reading an installed distribution\u0027s version and will omit\npbr generated versioning like \"1.1.1.dev11\"\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/2da1c9d67e8c3cbee08b0f0c8f9284bcdcde4e51"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/2da1c9d67e8c3cbee08b0f0c8f9284bcdcde4e51"}]},"branch":"refs/heads/master"},"0c5d7ff6b29a2fa4dbd478125a82fe46509d1e2b":{"kind":"REWORK","_number":6,"created":"2026-06-09 22:59:16.000000000","uploader":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"ref":"refs/changes/26/992526/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/6"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-09 20:15:47.000000000","tz":600},"committer":{"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","date":"2026-06-09 22:59:16.000000000","tz":0},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n  * plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n  * plugins/module_utils/openstack.py (OpenStackModule class)\n  * plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version and\npackaging call to get base_version, which is the canonical Python\nway of reading an installed distribution\u0027s version and will omit\npbr generated versioning like \"1.1.1.dev11\"\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/0c5d7ff6b29a2fa4dbd478125a82fe46509d1e2b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/0c5d7ff6b29a2fa4dbd478125a82fe46509d1e2b"}]},"branch":"refs/heads/master"},"813c6e57dfc1d97a73f5e838b84a8befb5146018":{"kind":"REWORK","_number":7,"created":"2026-06-10 01:03:23.000000000","uploader":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"ref":"refs/changes/26/992526/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/7"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-10 01:01:27.000000000","tz":600},"committer":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-10 01:01:27.000000000","tz":600},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n* plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n* plugins/module_utils/openstack.py (OpenStackModule class)\n* plugins/inventory/openstack.py\n\nSwitch all three call sites to importlib.metadata.version and\npackaging call to get base_version, which is the canonical Python\nway of reading an installed distribution\u0027s version and will omit\npbr generated versioning like \"1.1.1.dev11\"\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/813c6e57dfc1d97a73f5e838b84a8befb5146018"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/813c6e57dfc1d97a73f5e838b84a8befb5146018"}]},"branch":"refs/heads/master"},"92fb1d6f9dbc69e46f275372e0c003cc9b571d14":{"kind":"REWORK","_number":8,"created":"2026-06-10 02:21:27.000000000","uploader":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"ref":"refs/changes/26/992526/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ansible-collections-openstack","ref":"refs/changes/26/992526/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ansible-collections-openstack refs/changes/26/992526/8"}}},"commit":{"parents":[{"commit":"c81422e3f6be86394284ce2db3e28ed87a530428","subject":"Merge \"[doc] Document usage of changelog\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/c81422e3f6be86394284ce2db3e28ed87a530428"}]}],"author":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-10 02:20:21.000000000","tz":600},"committer":{"name":"Michael Still","email":"mikal@stillhq.com","date":"2026-06-10 02:20:21.000000000","tz":600},"subject":"Use importlib.metadata to read openstacksdk version.","message":"Use importlib.metadata to read openstacksdk version.\n\nopenstacksdk has dropped its internal import of the deprecated\nopenstack.version submodule (commit 3ae89d61 \"drop deprecated\nopenstack.version\", 2026-06-02). That import was the side effect\nthat made openstack.version reachable as an attribute on the\nopenstack package; with it gone, any consumer that reads\nopenstack.version.__version__ now fails with:\n\n    AttributeError: module \u0027openstack\u0027 has no attribute \u0027version\u0027\n\nThis collection hit that failure in three places:\n\n* plugins/module_utils/openstack.py (legacy\n    openstack_cloud_from_module function)\n* plugins/module_utils/openstack.py (OpenStackModule class)\n* plugins/inventory/openstack.py\n\nSwitch all three call sites to conditionally import\nimportlib.metadata.version and packaging, as these are not in the\nLint sanity requirements file. Then call to get base_version,\nwhich is the canonical Python way of reading an installed\ndistribution\u0027s version and will omit pbr generated versioning like\n\"1.1.1.dev11\".\n\nChange-Id: I8b6a1c5d5f4d6111e3f83e6a668a812d6fd2449b\nSigned-off-by: Michael Still \u003cmikal@stillhq.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/92fb1d6f9dbc69e46f275372e0c003cc9b571d14"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ansible-collections-openstack/commit/92fb1d6f9dbc69e46f275372e0c003cc9b571d14"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
