)]}'
{"id":"openstack%2Fplacement~995129","triplet_id":"openstack%2Fplacement~master~I74d939d46f490a23388b08de09a4b2236c9795cb","project":"openstack/placement","branch":"master","hashtags":[],"change_id":"I74d939d46f490a23388b08de09a4b2236c9795cb","subject":"Add ASGI application entry point for Placement API","status":"ABANDONED","created":"2026-06-26 19:06:41.000000000","updated":"2026-06-26 19:13:38.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"e6982f51c9c16146767f09659ac8713b4be6797e","_number":995129,"virtual_id_number":995129,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"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":{"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":{"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"e4dc2cb6d83a7d03eba25369c5b8dcf5d0ef9a97","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:06:41.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"e6982f51c9c16146767f09659ac8713b4be6797e","tag":"autogenerated:gerrit:abandon","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:13:38.000000000","message":"Abandoned\n\noops, lost this change-id, will just use the new one","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"09c13ae820b4b92ece4b468519f9162f9fc423cc","revisions":{"09c13ae820b4b92ece4b468519f9162f9fc423cc":{"kind":"REWORK","_number":1,"created":"2026-06-26 19:06:41.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/29/995129/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/29/995129/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/29/995129/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/29/995129/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/29/995129/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/29/995129/1"}}},"commit":{"parents":[{"commit":"7ad9ef078b490423ac6605e805fad2b75c8f2107","subject":"Merge \"Update policy scope enforcement testing\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7ad9ef078b490423ac6605e805fad2b75c8f2107"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 15:14:34.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:06:34.000000000","tz":-240},"subject":"Add ASGI application entry point for Placement API","message":"Add ASGI application entry point for Placement API\n\nAdds placement.asgi.api:application, an ASGI entry point that wraps the\nexisting WSGI application using oslo_service.asgi.wrap_wsgi(). This\nenables serving the Placement API under modern ASGI servers such as\nHypercorn while preserving all middleware, authentication, and API\nbehavior unchanged.\n\nUsage:\n  $ hypercorn placement.asgi.api:application --bind 0.0.0.0:8778\n\nThe existing WSGI entry point (placement.wsgi.api:application) remains\navailable and unchanged for deployers using uwsgi, gunicorn, or mod_wsgi.\n\nASGI mode requires eventlet to be disabled. Placement already runs\nwithout eventlet by default, so no additional configuration is needed.\n\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: I74d939d46f490a23388b08de09a4b2236c9795cb\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/09c13ae820b4b92ece4b468519f9162f9fc423cc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/09c13ae820b4b92ece4b468519f9162f9fc423cc"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"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":""}}}]}
