)]}'
{"id":"openstack%2Fkeystoneauth~995233","triplet_id":"openstack%2Fkeystoneauth~master~I8ce057170b727aa25c4a2c99f491b21328195648","project":"openstack/keystoneauth","branch":"master","hashtags":["asgi","asgi-phase-1"],"change_id":"I8ce057170b727aa25c4a2c99f491b21328195648","subject":"Add AsyncSession with httpx for async HTTP","status":"ABANDONED","created":"2026-06-29 00:18:34.000000000","updated":"2026-07-01 03:09:01.000000000","total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":true,"meta_rev_id":"920eca0cdbf1846c42b9ccd307c56767c664bc86","_number":995233,"virtual_id_number":995233,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-06-29 07:03:32.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":{"all":[{"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":"","default_value":0,"optional":true},"Workflow":{"all":[{"_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":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-06-29 01:49:59.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"}],"messages":[{"id":"476ba415cd54c40d8a40aa7cc1407959d3baa3d9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 00:18:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"03ee984742f90fd44d4028dcd0a1f77f238b539d","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 00:18:45.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"cf04c9f57a2ad30a5be260fb792249bb049ef6f2","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 00:18:45.000000000","message":"Hashtag added: asgi","accounts_in_message":[],"_revision_number":1},{"id":"4b8fef497208aa33429588493aa31875c444f461","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 00:27:18.000000000","message":"Hashtag added: asgi-phase-1","accounts_in_message":[],"_revision_number":1},{"id":"62fa263a31ea828cc573d33473cc61f25ff57fc1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 01:49:59.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/7fe5385c82a142ed85daefdb9e5d12ff\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3f3c159a3d8242249070fb2d5d01837c : FAILURE in 1m 28s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/04daeac3dd6d4071a0786ccb08ffa45f : SUCCESS in 1h 29m 23s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/02cc1c3983454ce2a1b2cd6a32961035 : SUCCESS in 3m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d12f4f42d96a45c0844272ba1cd3c682 : SUCCESS in 3m 47s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5527ebc965e549a4a14dcdf9edaaa83f : SUCCESS in 9m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7ee8e0b9983843ecacb844696e26a5e9 : SUCCESS in 4m 56s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/f0d09aca020e450587568d5a519d1a02 : SUCCESS in 14m 45s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/c38bbd5b1d784c4fa38653fd5cf9b688 : SUCCESS in 51m 26s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/8140753cfdcd4c4d8cb5136c4599dcce : SUCCESS in 7m 23s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/d92e1639ed0240a696dad37020bb5fcb : SUCCESS in 7m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/76d1b7bee4e04377bbf6c68d5b462c26 : SUCCESS in 10m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3b9867b7a9c14b0daefa63666028b016 : SUCCESS in 5m 25s","accounts_in_message":[],"_revision_number":1},{"id":"9998b75b8a091936b33418e2c4ee09d3823f937d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 05:56:04.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"aeaaaae2fdaf9d83bb761b9332062cf31e1aa92a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 07:03:32.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c6a3191efaf846a78d75cd892dd85816\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/55bed7b5bc6d462383334e6e91c9e290 : SUCCESS in 1m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/5d420db7fe0948f68eb04885d2dc499a : SUCCESS in 1h 02m 25s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/764e106062a7445cace6041d6f8a290d : SUCCESS in 4m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/67a4596e698b4ab2bd0caa4f5505ae18 : SUCCESS in 4m 06s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/12b85c4941d04032b1b978bb3bb175de : SUCCESS in 4m 16s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/789799ba5e7445f7a3b14449f2defedd : SUCCESS in 9m 39s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/55ee889dd00248fdaa95c3741b630c82 : SUCCESS in 13m 53s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/09f6c1f25a6143bab875929f950bfe56 : SUCCESS in 1h 02m 19s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/c80a9023853e4dbc9a4365db83b3d410 : SUCCESS in 4m 24s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/c87b6cb48de247feb5c493597ab8daac : SUCCESS in 4m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a1a1d74fa08549b78846491924f695a4 : SUCCESS in 8m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cbba6d5fb6934a5da1173c45a208c2e8 : SUCCESS in 5m 04s","accounts_in_message":[],"_revision_number":2},{"id":"920eca0cdbf1846c42b9ccd307c56767c664bc86","tag":"autogenerated:gerrit:abandon","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-01 03:09:01.000000000","message":"Abandoned\n\nBenchmark proved async provides no throughput benefit over thread-pool-tuned WSGI for OpenStack workloads. Preserving Phase 0 (ASGI serving for HTTP/2) only. See full analysis in opencode-workspace/asgi/HANDOFF.md.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"88a1f19fa0c99dd15472426a7a3ecec19f6f7a5c","revisions":{"45c90d90a2747a252506dc397b5a7149d662a04f":{"kind":"REWORK","_number":1,"created":"2026-06-29 00:18:34.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/33/995233/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/33/995233/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/1"}}},"commit":{"parents":[{"commit":"9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf","subject":"Merge \"trivial: Declare attributes on _BaseAdapter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 23:43:30.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-29 00:18:23.000000000","tz":-240},"subject":"Add AsyncSession with httpx for async HTTP","message":"Add AsyncSession with httpx for async HTTP\n\nAdd AsyncSession class that uses httpx.AsyncClient for native async\nHTTP requests, enabling OpenStack services running under ASGI to make\nnon-blocking inter-service calls.\n\nNew modules:\n- async_session: AsyncSession (httpx-based, full retry/redirect/auth)\n- async_adapter: AsyncAdapter (wraps AsyncSession with service defaults)\n- async_plugin: AsyncBaseAuthPlugin interface for async auth\n- async_identity.base: AsyncBaseIdentityPlugin with asyncio.Lock\n- async_identity.v3: AsyncAuth, AsyncPassword, AsyncToken for V3\n- _session_common: Shared non-I/O logic (headers, URLs, logging)\n- _async_fair_semaphore: Async rate limiter\n\nAuth plugins support duck-typing fallback: existing sync plugins\nwork with AsyncSession via automatic asyncio.to_thread() wrapping.\n\nIncludes 50 unit tests covering session, adapter, and identity.\n\nDepends-On: httpx addition to global-requirements (to be proposed)\nChange-Id: I8ce057170b727aa25c4a2c99f491b21328195648\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\nGenerated-By: claude-opus-4-6 (OpenCode)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/45c90d90a2747a252506dc397b5a7149d662a04f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/45c90d90a2747a252506dc397b5a7149d662a04f"}]},"branch":"refs/heads/master"},"88a1f19fa0c99dd15472426a7a3ecec19f6f7a5c":{"kind":"REWORK","_number":2,"created":"2026-06-29 05:56:04.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/33/995233/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/33/995233/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/33/995233/2"}}},"commit":{"parents":[{"commit":"9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf","subject":"Merge \"trivial: Declare attributes on _BaseAdapter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/9c28aa6eb6b2f62b7c3946bf02b90413f57db6bf"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 23:43:30.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-29 05:55:54.000000000","tz":-240},"subject":"Add AsyncSession with httpx for async HTTP","message":"Add AsyncSession with httpx for async HTTP\n\nAdd AsyncSession class that uses httpx.AsyncClient for native async\nHTTP requests, enabling OpenStack services running under ASGI to make\nnon-blocking inter-service calls.\n\nNew modules:\n- async_session: AsyncSession (httpx-based, full retry/redirect/auth)\n- async_adapter: AsyncAdapter (wraps AsyncSession with service defaults)\n- async_plugin: AsyncBaseAuthPlugin interface for async auth\n- async_identity.base: AsyncBaseIdentityPlugin with asyncio.Lock\n- async_identity.v3: AsyncAuth, AsyncPassword, AsyncToken for V3\n- _session_common: Shared non-I/O logic (headers, URLs, logging)\n- _async_fair_semaphore: Async rate limiter\n\nAuth plugins support duck-typing fallback: existing sync plugins\nwork with AsyncSession via automatic asyncio.to_thread() wrapping.\n\nIncludes 50 unit tests covering session, adapter, and identity.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995245\nChange-Id: I8ce057170b727aa25c4a2c99f491b21328195648\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/88a1f19fa0c99dd15472426a7a3ecec19f6f7a5c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/88a1f19fa0c99dd15472426a7a3ecec19f6f7a5c"}]},"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":"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":""}}}]}
