)]}'
{"id":"openstack%2Fplacement~972708","triplet_id":"openstack%2Fplacement~master~Ibf3a87bf986ed158dd049e72a329f643a87630e7","project":"openstack/placement","branch":"master","topic":"gabbi-4x","attention_set":{},"removed_from_attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-01-08 19:19:31.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ibf3a87bf986ed158dd049e72a329f643a87630e7","subject":"Fix compatibility with gabbi 4.x","status":"MERGED","created":"2026-01-08 14:17:14.000000000","updated":"2026-01-19 11:07:54.000000000","submitted":"2026-01-08 19:19:31.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":5,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"972708-gabbi-4x","meta_rev_id":"183d9a5456681ae9245592100549ae68afa93004","_number":972708,"virtual_id_number":972708,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-01-08 19:19:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"all":[{"value":2,"date":"2026-01-08 17:00:52.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-01-08 16:10:40.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}],"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":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"all":[{"value":1,"date":"2026-01-08 17:00:52.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-01-08 16:10:40.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-01-08 16:34:11.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-01-08 17:00:46.000000000","updated_by":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"reviewer":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"state":"CC"},{"updated":"2026-01-08 17:00:52.000000000","updated_by":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"reviewer":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"state":"REVIEWER"}],"messages":[{"id":"16df6578247c772cb99b5f814570cfc543815886","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-01-08 14:17:14.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"592144b76724e0a17158d1a3bad60e89f3bff775","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-01-08 16:10:40.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"5442fca696fc1888cab1d07747b0091052b898a4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 16:34:11.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/b0ffe6cd1632426287c9f50bfcc9abe4\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5a9d3ad0fef34370a5684e5bd40b8ee5 : SUCCESS in 52m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/dcbf8d7b80254ad3bf2a977c8aa91b5b : SUCCESS in 1h 48m 19s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1e1d37c6049e49ecacf750fa479ab299 : TIMED_OUT in 51m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fb961eeb83d24891ad4c33f4ecd4b3a7 : SUCCESS in 3m 27s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/595d391945144381a4c068c5cbc3ae45 : SUCCESS in 4m 42s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a846b006bbb04ac8ac4441d0b406661d : SUCCESS in 7m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7b5e68f74dc24e31a1051cee959b4c01 : SUCCESS in 4m 22s\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/8181b80ee8df4abdb286f1b4b67ea2fa : SUCCESS in 5m 38s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/0e720c38b6104305a8215695f0217046 : SUCCESS in 6m 19s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/a72b213bad194e8aa72a6e623d9eb74e : SUCCESS in 21m 19s","accounts_in_message":[],"_revision_number":1},{"id":"4542d17a1579b5a157a677a013fadd10963cea16","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2026-01-08 17:00:46.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"970720ded6b6c46c1824e0bfa8a9fe33a39115c2","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2026-01-08 17:00:52.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"17fb30a3c66785dff884fed62b366b68b51b0e3e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 18:07:54.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/14687a5bab664e048a07355abe678231\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/82455120d4644748b8567c546dc5be61 : SUCCESS in 55m 54s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/be33068328374bf68b02754b46b83750 : SUCCESS in 59m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e3bc1bab70824aaf95fff5ea3ec969bd : SUCCESS in 12m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e3a22849408a4ac6baa87959b984fc05 : SUCCESS in 4m 34s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/41d43058d2a94498a0665ceedceb13cb : SUCCESS in 4m 53s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0536bb05bd534e4baa604e6b8c1dbfe7 : SUCCESS in 7m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a6a9a1d8aa464501aa412d7641d1e36b : SUCCESS in 8m 43s\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/645943fcea1b45058ac2a17077c24d57 : SUCCESS in 6m 16s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/be80a3656ea14eafa795f5b60bc50c3d : SUCCESS in 6m 22s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/1173091b2401427f9eaaef5a8a2048d1 : SUCCESS in 22m 37s","accounts_in_message":[],"_revision_number":1},{"id":"0fb9bee7a27337498b6ca751e6719b1b8a46175d","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 18:08:16.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"2dec47e5babb91362a84931ff481bc530fe2bb55","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 19:19:31.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ab1361c1d90a4c359229d0b4141bb676\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/33336b37eadc4ac09653be491dbb9e8c : SUCCESS in 58m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8e449fac81da401185a84042586b83d8 : SUCCESS in 1h 09m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1851e725666147bf9c033b871f27e576 : SUCCESS in 4m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/176c94b9b1c0453fad854e378dc0041c : SUCCESS in 4m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cda7848fdaff44b79ee8002d27336b58 : SUCCESS in 6m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0d9cb58ca6914e778afd4b44ead18bf7 : SUCCESS in 8m 19s\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/528e3794f4fa4ea0be3205c8a60b2a57 : SUCCESS in 7m 02s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/15507a60673b4dbd98a828d783d5473d : SUCCESS in 7m 27s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/4ad47fcbdb3a4da7be89bbd7a8a1b368 : SUCCESS in 21m 10s","accounts_in_message":[],"_revision_number":1},{"id":"40d2f50d26e64c318877ef34399d9de4bb82543b","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 19:19:31.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"846a7ef6630d18afc65c05187d7dbf4fce34b616","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-08 19:20:18.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/99390c870ad14933ae5a15517fd79d14\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c397c82a70f144c3b07e54fb07712a16 : SUCCESS in 39s","accounts_in_message":[],"_revision_number":1},{"id":"183d9a5456681ae9245592100549ae68afa93004","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-01-19 11:07:54.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"c31ee4a9abf22f2c78a373ddaab1aabddaf06eb0","revisions":{"c31ee4a9abf22f2c78a373ddaab1aabddaf06eb0":{"kind":"REWORK","_number":1,"created":"2026-01-08 14:17:14.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/08/972708/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/08/972708/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/08/972708/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/08/972708/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/08/972708/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/08/972708/1"}}},"commit":{"parents":[{"commit":"1c16485a11946441b0e4893ed9ee1cafadbe4527","subject":"Merge \"pre-commit: Bump versions\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/1c16485a11946441b0e4893ed9ee1cafadbe4527"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-01-08 13:53:07.000000000","tz":0},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2026-01-08 14:14:04.000000000","tz":0},"subject":"Fix compatibility with gabbi 4.x","message":"Fix compatibility with gabbi 4.x\n\ngabbi 4.x significantly reworked how interception happens [1]. One side\neffect of this change is interception callable is now invoked during\ntest construction (via client creation [2], which is called by test\nsuite creation [3]) rather than during test execution. In placement, the\ninterception callable used is our WSGI app. This requires oslo.conf\u0027s\nCONF singleton to be initialized first else we see errors like so:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  Failures during discovery\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  --- import errors ---\n  Failed to call load_tests:\n  Traceback (most recent call last):\n    ...\n    File \".../placement/placement/deploy.py\", line 47, in deploy\n      if conf.api.auth_strategy \u003d\u003d \u0027noauth2\u0027:\n         ^^^^^^^^\n  AttributeError: \u0027NoneType\u0027 object has no attribute \u0027api\u0027\n\nBecause gabbi \"creates\" tests via the custom suite maker, it does not\nappear to be possible to inject the Config fixture earlier in test\nwithout breaking \u0027APIFixture\u0027 (which is currently responsible for doing\nthis). Instead, we opt to implement a \"lazy\" intercept function which\nwill only creation the app when actually invoked by a test.\n\n[1] https://github.com/cdent/gabbi/commit/4d9d3b4\n[2] https://github.com/cdent/gabbi/commit/4d9d3b4#diff-387442266e6c9ad9359689c282903e5b1e406bb31db94c5732384f8fb4ce45f2R36-R44\n[3] https://github.com/cdent/gabbi/blob/4d9d3b4/gabbi/suitemaker.py#L59-L89\n\nChange-Id: Ibf3a87bf986ed158dd049e72a329f643a87630e7\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/c31ee4a9abf22f2c78a373ddaab1aabddaf06eb0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/c31ee4a9abf22f2c78a373ddaab1aabddaf06eb0"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
