)]}'
{"id":"openstack%2Fosc-placement~963962","triplet_id":"openstack%2Fosc-placement~master~Ie6a6486ea543f6a3c5e23a8cc0cab44fc1beab44","project":"openstack/osc-placement","branch":"master","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2025-10-14 13:49:16.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ie6a6486ea543f6a3c5e23a8cc0cab44fc1beab44","subject":"Improve functional test debuggability with log capture","status":"NEW","created":"2025-10-14 13:30:01.000000000","updated":"2026-08-05 11:02:49.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":5,"unresolved_comment_count":5,"has_review_started":true,"meta_rev_id":"65b7ae70590f946b98a1923d78e258312633787a","_number":963962,"virtual_id_number":963962,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:check","value":1,"date":"2025-10-14 14:30:38.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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"all":[{"value":-1,"date":"2026-08-05 11:02:49.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_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},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-10-14 13:49:16.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-08-05 11:02:49.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":"REVIEWER"}],"messages":[{"id":"b1624aa50e97197392e635a23a3a04601fd32a64","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-10-14 13:30:01.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d92b5b533af487282cbc048355f641047f6f3e33","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-14 13:49:16.000000000","message":"Patch Set 1: Verified-1\n\n(25 comments)\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/eae73b7ff35741a190527c07ede8f2ba\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/868e1044b5e1441aab47771cf7ba42ad : FAILURE in 2m 03s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9287a6d653a14844b9128c25b0bdb6de : SUCCESS in 5m 01s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/5409e8a601474bedbb9016bf319e99af : SUCCESS in 3m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/59c6a0ad38b941aabfb079e4ac3f23fa : SUCCESS in 6m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a39117cb1cbd4a36802178e510f9ec83 : SUCCESS in 8m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4afec6ffefcb4c729d653d7d49712ed1 : SUCCESS in 1m 52s\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/b8b08e0cebbb486db9d54d1557de0db6 : FAILURE in 3m 38s (non-voting)\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/78b80baa0a4541b2b912d6966560eacb : SUCCESS in 4m 11s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/580153d0b295481382a565fca62f05dd : SUCCESS in 3m 52s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/6d2b311bdd9b4186992de0229327fb27 : SUCCESS in 4m 02s","accounts_in_message":[],"_revision_number":1},{"id":"7b4390659b9d625d156467d0cdd21ef34d9c59a5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-10-14 14:17:34.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"39bb49cfc9f3e7d234d589be1a4fb62fcbd545de","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-14 14:30:38.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f7304bb60e164557a3f18cd2ec74899d\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/21abfc95807c42969399fc1023475a4c : SUCCESS in 2m 32s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/abef846bf7094c93919bfc43ee046988 : SUCCESS in 3m 04s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/14157b402bca49a2b5367cda3cef643f : SUCCESS in 3m 43s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/60e50ad3eb994ac981b249faa1e0d15e : SUCCESS in 4m 10s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d6207ebdaef54d36bdec680fc44b3878 : SUCCESS in 8m 03s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/02a3ec4a8116451fabceac50254d5535 : SUCCESS in 3m 00s\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/58db6a4b769241959676b34f89f689e5 : FAILURE in 6m 30s (non-voting)\n- openstack-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/a7f35f058a224a72825b1e1625ceaefd : SUCCESS in 5m 58s\n- openstack-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/7e92bff370d647ac98cbec713796f107 : SUCCESS in 3m 01s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/a4c41d34e131430ab59066d46618cde5 : SUCCESS in 7m 05s","accounts_in_message":[],"_revision_number":2},{"id":"65b7ae70590f946b98a1923d78e258312633787a","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-08-05 11:02:49.000000000","message":"Patch Set 2: Code-Review-1\n\n(5 comments)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"e831127ae5a9a6316db1fe4879768ba2966fdc66","revisions":{"beb9137fffa5046ba1298ea4b13d2c95bd16b463":{"kind":"REWORK","_number":1,"created":"2025-10-14 13:30:01.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/62/963962/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/62/963962/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/1"}}},"commit":{"parents":[{"commit":"9114810f3c69085c6dce2aea57063e94c2028140","subject":"Filter out placement api logs in functional tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/9114810f3c69085c6dce2aea57063e94c2028140"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-14 13:28:57.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-14 13:29:23.000000000","tz":60},"subject":"Improve functional test debuggability with log capture","message":"Improve functional test debuggability with log capture\n\nAdd comprehensive logging improvements to functional tests:\n\n1. PlacementServerLogFixture: Captures placement server logs to prevent\n   stderr pollution that causes test failures. Uses logging.Filter to\n   target \u0027placement\u0027 logger specifically and sets propagate\u003dFalse to\n   prevent logs from reaching root logger.\n\n2. OS_DEBUG support: When OS_DEBUG is set, suppresses debug messages\n   from client-side libraries (osc_lib, keystoneauth, urllib3, stevedore,\n   cliff) while preserving osc_placement debug logs for debugging the\n   code under test.\n\n3. Log attachment: Automatically attaches captured placement server\n   logs to test output when tests fail or when OS_DEBUG is enabled,\n   using testtools addDetail() for proper integration with subunit.\n\n4. Code organization: Refactored client-side logger suppression into\n   RESET_LOGGING_CLIENT_DEBUG module constant following existing\n   patterns (RESET_LOGGING, RESET_LOGGING_SERVER).\n\n5. Environment handling: Updated tox.ini to pass through OS_DEBUG\n   environment variable and temporarily unsets it during test execution\n   to prevent direct stderr output from OpenStack client.\n\nThis resolves test failures caused by placement server logs appearing\nin stderr while enabling effective debugging of osc_placement code.\n\nGenerated-By: cursor auto model\nRelated-Bug: #2127848\nChange-Id: Ie6a6486ea543f6a3c5e23a8cc0cab44fc1beab44\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/beb9137fffa5046ba1298ea4b13d2c95bd16b463"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/beb9137fffa5046ba1298ea4b13d2c95bd16b463"}]},"branch":"refs/heads/master"},"e831127ae5a9a6316db1fe4879768ba2966fdc66":{"kind":"REWORK","_number":2,"created":"2025-10-14 14:17:34.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/62/963962/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/osc-placement","ref":"refs/changes/62/963962/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/osc-placement refs/changes/62/963962/2"}}},"commit":{"parents":[{"commit":"9114810f3c69085c6dce2aea57063e94c2028140","subject":"Filter out placement api logs in functional tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/9114810f3c69085c6dce2aea57063e94c2028140"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-14 13:28:57.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-14 14:17:26.000000000","tz":60},"subject":"Improve functional test debuggability with log capture","message":"Improve functional test debuggability with log capture\n\nAdd comprehensive logging improvements to functional tests:\n\n1. PlacementServerLogFixture: Captures placement server logs to prevent\n   stderr pollution that causes test failures. Uses logging.Filter to\n   target \u0027placement\u0027 logger specifically and sets propagate\u003dFalse to\n   prevent logs from reaching root logger.\n\n2. OS_DEBUG support: When OS_DEBUG is set, suppresses debug messages\n   from client-side libraries (osc_lib, keystoneauth, urllib3, stevedore,\n   cliff) while preserving osc_placement debug logs for debugging the\n   code under test.\n\n3. Log attachment: Automatically attaches captured placement server\n   logs to test output when tests fail or when OS_DEBUG is enabled,\n   using testtools addDetail() for proper integration with subunit.\n\n4. Code organization: Refactored client-side logger suppression into\n   RESET_LOGGING_CLIENT_DEBUG module constant following existing\n   patterns (RESET_LOGGING, RESET_LOGGING_SERVER).\n\n5. Environment handling: Updated tox.ini to pass through OS_DEBUG\n   environment variable and temporarily unsets it during test execution\n   to prevent direct stderr output from OpenStack client.\n\nThis resolves test failures caused by placement server logs appearing\nin stderr while enabling effective debugging of osc_placement code.\n\nGenerated-By: cursor auto model\nRelated-Bug: #2127848\nChange-Id: Ie6a6486ea543f6a3c5e23a8cc0cab44fc1beab44\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/e831127ae5a9a6316db1fe4879768ba2966fdc66"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/osc-placement/commit/e831127ae5a9a6316db1fe4879768ba2966fdc66"}]},"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":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"}},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","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":"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":"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":""}}}]}
