)]}'
{"id":"openstack%2Fcinder~995440","triplet_id":"openstack%2Fcinder~master~I02ef95ee15122b43cca31ca7a666d035f6902f1c","project":"openstack/cinder","branch":"master","hashtags":["asgi","asgi-phase-2"],"change_id":"I02ef95ee15122b43cca31ca7a666d035f6902f1c","subject":"Add native ASGI app with async RPC for volume actions","status":"ABANDONED","created":"2026-06-30 05:54:20.000000000","updated":"2026-07-16 09:41:17.000000000","total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":true,"meta_rev_id":"d1d58f1b2c39d87621cd89322e7ecda3a0ccbcf1","_number":995440,"virtual_id_number":995440,"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-30 07:43:33.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},"Review-Priority":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":15670,"name":"StorPool OpenStack CI","email":"openstack-ci@storpool.com","username":"storpoolci","tags":["SERVICE_USER"]},{"_account_id":22248,"name":"HPE STORAGE CI","display_name":"HPE NIMBLE STORAGE CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},{"_account_id":38252,"name":"HPE AlletraMP NVMeTCP CI","display_name":"HPE AlletraMP NVMeTCP CI","email":"yogeshwari.gitte-ext@hpe.com","username":"yogeshwarigitte"},{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},{"_account_id":39096,"name":"HPE AlletraMP FC CI","display_name":"HPE AlletraMP FC CI","email":"diganta.bora@hpe.com","username":"digantabora"}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":15670,"name":"StorPool OpenStack CI","email":"openstack-ci@storpool.com","username":"storpoolci","tags":["SERVICE_USER"]},{"_account_id":22248,"name":"HPE STORAGE CI","display_name":"HPE NIMBLE STORAGE CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},{"_account_id":38252,"name":"HPE AlletraMP NVMeTCP CI","display_name":"HPE AlletraMP NVMeTCP CI","email":"yogeshwari.gitte-ext@hpe.com","username":"yogeshwarigitte"},{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},{"_account_id":39096,"name":"HPE AlletraMP FC CI","display_name":"HPE AlletraMP FC CI","email":"diganta.bora@hpe.com","username":"digantabora"}]},"reviewer_updates":[{"updated":"2026-06-30 06:08:11.000000000","updated_by":{"_account_id":38252,"name":"HPE AlletraMP NVMeTCP CI","display_name":"HPE AlletraMP NVMeTCP CI","email":"yogeshwari.gitte-ext@hpe.com","username":"yogeshwarigitte"},"reviewer":{"_account_id":38252,"name":"HPE AlletraMP NVMeTCP CI","display_name":"HPE AlletraMP NVMeTCP CI","email":"yogeshwari.gitte-ext@hpe.com","username":"yogeshwarigitte"},"state":"CC"},{"updated":"2026-06-30 06:26:46.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-06-30 06:36:38.000000000","updated_by":{"_account_id":39096,"name":"HPE AlletraMP FC CI","display_name":"HPE AlletraMP FC CI","email":"diganta.bora@hpe.com","username":"digantabora"},"reviewer":{"_account_id":39096,"name":"HPE AlletraMP FC CI","display_name":"HPE AlletraMP FC CI","email":"diganta.bora@hpe.com","username":"digantabora"},"state":"CC"},{"updated":"2026-06-30 06:36:42.000000000","updated_by":{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},"reviewer":{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},"state":"CC"},{"updated":"2026-06-30 06:38:40.000000000","updated_by":{"_account_id":22248,"name":"HPE STORAGE CI","display_name":"HPE NIMBLE STORAGE CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22248,"name":"HPE STORAGE CI","display_name":"HPE NIMBLE STORAGE CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-06-30 06:53:38.000000000","updated_by":{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},"reviewer":{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},"state":"CC"},{"updated":"2026-06-30 06:55:29.000000000","updated_by":{"_account_id":15670,"name":"StorPool OpenStack CI","email":"openstack-ci@storpool.com","username":"storpoolci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":15670,"name":"StorPool OpenStack CI","email":"openstack-ci@storpool.com","username":"storpoolci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-06-30 07:16:26.000000000","updated_by":{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},"reviewer":{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},"state":"CC"},{"updated":"2026-06-30 07:43:33.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-30 07:43:44.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"}],"messages":[{"id":"6d496fb4aabc35d17a8615988f3773df60073c6b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 05:54:20.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"dd81c2aac71d9e26acefe0649d4f6ed930ed6f54","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 05:54:30.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"1b2e809e28432796c0531ed8aabf85fd33094a2b","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 05:54:30.000000000","message":"Hashtags added: asgi, asgi-phase-2","accounts_in_message":[],"_revision_number":1},{"id":"3df71808379c8dfeca3f49ca9cd0223fb1bdd814","tag":"autogenerated:zuul:check","author":{"_account_id":38252,"name":"HPE AlletraMP NVMeTCP CI","display_name":"HPE AlletraMP NVMeTCP CI","email":"yogeshwari.gitte-ext@hpe.com","username":"yogeshwarigitte"},"date":"2026-06-30 06:08:11.000000000","message":"Patch Set 1:\n\nBuild failed.\n\n- hpe-nvmetcp-driver build/f369968c439c4cb0a7902da7f03e4b16 : FAILURE in 12m 34s\n\nWarning:\n  NVMe CI log: https://github.com/hpe-storage/hpe-nvmetcp-ci-logs/tree/master/new_logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"56c95748048df0ce45b615d3e47e0a73cdecc041","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-06-30 06:26:46.000000000","message":"Patch Set 1:\n\nBuild Failed \n\n* quobyteci:  cinder_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I02ef95ee15122b43cca31ca7a666d035f6902f1c .","accounts_in_message":[],"_revision_number":1},{"id":"4c1580003992b158a8bb0863165919f05dca834b","tag":"autogenerated:zuul:check","author":{"_account_id":39096,"name":"HPE AlletraMP FC CI","display_name":"HPE AlletraMP FC CI","email":"diganta.bora@hpe.com","username":"digantabora"},"date":"2026-06-30 06:36:38.000000000","message":"Patch Set 1:\n\nBuild succeeded.\n\n- hpe-fc-driver build/193b2e46d5074b1ba0a901c489b7c4ec : SUCCESS in 40m 43s\n\nWarning:\n  FC CI log: https://github.com/hpe-storage/hpe-ci-log/tree/master/logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"3335e6224f2d081fa86b1e86ca28b6933011cdba","author":{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},"date":"2026-06-30 06:36:42.000000000","message":"Patch Set 1:\n\nHPE AlletraMP Jenkins FC CI\n\nBuild succeeded.\n\n- OpenstackCI/Openstack_FC_CI build/376 : SUCCESS in 0h 41m 58s\n\nFC CI log: https://github.com/hpe-storage/hpe_cinder_jenkins_logs/tree/master/FC_new_logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"5ced0ffa5635ead565bf4cfb54cbb2dd59ad4793","author":{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},"date":"2026-06-30 06:37:50.000000000","message":"Patch Set 1:\n\nHPE AlletraMP Jenkins NVMe/TCP CI\n\nBuild succeeded.\n\n- OpenstackCI/Openstack_NVME_CI build/282 : SUCCESS in 0h 43m 5s\n\nNVMe/TCP CI log: https://github.com/hpe-storage/hpe_cinder_jenkins_logs/tree/master/NVME_new_logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"7352b18e4a107063a5dbb3fa9fed5df1f2be5958","author":{"_account_id":22248,"name":"HPE STORAGE CI","display_name":"HPE NIMBLE STORAGE CI","email":"hp.cinder.blr.ci@groups.ext.hpe.com","username":"hp-storage-blr-ci","tags":["SERVICE_USER"]},"date":"2026-06-30 06:38:40.000000000","message":"Patch Set 1:\n\nBuild succeeded.\n\n- 3par-iscsi-driver-master-client-pip-ssa02-dsvm build/4352b03809794028ab78eef56a41c9cb : SUCCESS in 41m 22s\n\nWarning:\n  iSCSI CI log: https://github.com/hpe-storage/hpe_cinder_logs/blob/master/new_logs/995440\n  iSCSI CI log: https://github.com/hpe-storage/hpe_cinder_logs/blob/master/new_logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"27261a0dcf362ef52c86fd76aedd45639ddeb029","author":{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},"date":"2026-06-30 06:53:38.000000000","message":"Patch Set 1:\n\nBuild succeeded (iSCSI).\nLogs: http://tempest-openstack.spb.yadro.com/openstack-gerrit-trigger-iscsi/4572/.","accounts_in_message":[],"_revision_number":1},{"id":"90bad92e389d36b5fedb7ce72afdb9aa364a6898","author":{"_account_id":15670,"name":"StorPool OpenStack CI","email":"openstack-ci@storpool.com","username":"storpoolci","tags":["SERVICE_USER"]},"date":"2026-06-30 06:55:29.000000000","message":"Patch Set 1:\n\nBuild succeeded.\n\n- cinder-storpool-tempest build/333dfa0545964eceadaf8194fecd31cd : SUCCESS in 50m 13s\n- cinder-storpool-tempest-iscsi-multipath build/83269862c19c4d21814c443fb8565177 : SUCCESS in 59m 37s","accounts_in_message":[],"_revision_number":1},{"id":"2caa37af7bb1c1da4a58e394ecad6989ed94ea8e","author":{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},"date":"2026-06-30 07:16:26.000000000","message":"Patch Set 1:\n\nPure Storage CI logs (all jobs): https://github.com/Everpure-Zuul-CI/Cinder-CI/tree/gh-pages/f2313c8944864c79ba1b009e55d84ec4/","accounts_in_message":[],"_revision_number":1},{"id":"ce515b5ee2547fc5dec0ab5c09cb5e201b42ed47","author":{"_account_id":32912,"name":"Pure Storage Third-Party CI","display_name":"Pure Storage Third-Party CI","email":"openstack-third-party-ci@purestorage.com","username":"purestorage-thirdparty-ci","status":"Doing CI things"},"date":"2026-06-30 07:16:27.000000000","message":"Patch Set 1:\n\nBuild succeeded.\nhttps://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/buildset/f2313c8944864c79ba1b009e55d84ec4\n\n- pure-devstack-cinder-tempest-iscsi-aio-noble https://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/build/47c087de85e44bd9a547dbf5c48592f2 : SUCCESS in 35m 22s\n- pure-devstack-cinder-tempest-fc-aio-noble https://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/build/657402b04a534c2da049bf9c8324f38f : SUCCESS in 33m 44s\n- pure-devstack-cinder-tempest-nvme-roce-aio-noble https://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/build/ab61959588354962ad5991ddb5f107af : SUCCESS in 43m 13s\n- pure-devstack-cinder-tempest-nvme-tcp-aio-noble https://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/build/b3fea6b21092403696c6aab671e6c013 : SUCCESS in 40m 44s\n- pure-ci-buildset-reporter https://cinderci-sf.dev.purestorage.com/zuul/t/third-party-ci/build/ff30e630c4344802855aa1d65e59de03 : SUCCESS in 29s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"652789066d1f71a72a4be497765bef01fac5de01","author":{"_account_id":39082,"name":"Vijay Jatti","display_name":"HPE AlletraMP iSCSI CI","email":"vijay.jatti@hpe.com","username":"vijay-jatti"},"date":"2026-06-30 07:23:21.000000000","message":"Patch Set 1:\n\nHPE AlletraMP Jenkins iSCSI CI\n\nBuild succeeded.\n\n- OpenstackCI/Openstack_iSCSi_CI build/647 : SUCCESS in 0h 41m 19s\n\niSCSI CI log: https://github.com/hpe-storage/hpe_cinder_jenkins_logs/tree/master/new_logs/995440","accounts_in_message":[],"_revision_number":1},{"id":"397a29c997e9274798ca1ea243f503aa62216332","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 07:43:33.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/effba22bb3fd40c59386c91c8205918d\n\n- tempest-integrated-storage-asgi https://zuul.opendev.org/t/openstack/build/961a2c66bf3143c2bd97ae452d013e57 : SUCCESS in 1h 35m 46s","accounts_in_message":[],"_revision_number":1},{"id":"93bdfe6169ba1eb5ee6f10f1b3f836d96795ba45","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-06-30 07:54:57.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: https://github.com/LightBitsLabs/logs/tree/main/30_06_2026_07_47_18\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"cb18c4191a89593b600af00eafb060635cea5060","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:27.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":1},{"id":"d1d58f1b2c39d87621cd89322e7ecda3a0ccbcf1","author":{"_account_id":33746,"name":"YADRO TATLIN CI","email":"tatlin_ci@yadro.com","username":"tatlin-ci"},"date":"2026-07-16 09:41:17.000000000","message":"Patch Set 1:\n\nBuild failed (FC).\nLogs: http://tempest-openstack.spb.yadro.com/openstack-gerrit-trigger-fc/4396/.","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"546e1d587466d2fd11f773a220724324f0b8810b","revisions":{"546e1d587466d2fd11f773a220724324f0b8810b":{"kind":"REWORK","_number":1,"created":"2026-06-30 05:54:20.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/40/995440/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cinder","ref":"refs/changes/40/995440/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cinder refs/changes/40/995440/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cinder refs/changes/40/995440/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cinder refs/changes/40/995440/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cinder refs/changes/40/995440/1"}}},"commit":{"parents":[{"commit":"6267c50cb8bb544de8f5e71603f5cd0c389e5cf9","subject":"Add ASGI entry point for Cinder API","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cinder/commit/6267c50cb8bb544de8f5e71603f5cd0c389e5cf9"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 05:48:13.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 05:48:13.000000000","tz":-240},"subject":"Add native ASGI app with async RPC for volume actions","message":"Add native ASGI app with async RPC for volume actions\n\nAdds a native ASGI application entry point at cinder.asgi.native:application\nthat demonstrates the async value proposition for Cinder: non-blocking RPC\nfor attach/detach/initialize_connection/terminate_connection operations.\n\nArchitecture:\n- Dual-dispatch router: registered async handlers run natively on the event\n  loop; unregistered endpoints fall through to the Phase-0 WSGI pipeline\n  (wrapped via oslo_service.asgi.wrap_wsgi) ensuring all existing endpoints\n  work from day 1.\n- AsyncVolumeAPI wraps blocking volume_rpcapi.call() operations in\n  asyncio.to_thread(), freeing the event loop during the multi-second\n  wait for volume-manager (iSCSI/FC target setup).\n- async_api.py proves the SA 2.0 async DB pattern (model_select helper +\n  5 representative read functions using oslo_db asyncio_facade).\n\nThe native app is NON-DEFAULT — existing cinder.asgi.api (Phase-0 wrap_wsgi)\nremains the deployed entry point. Enable via:\n  CINDER_ASGI\u003dcinder.asgi.native:application\n\nFiles added:\n- cinder/asgi/native.py — ASGI app skeleton with middleware + router\n- cinder/asgi/handlers/volume_actions.py — async attach/detach/init/term\n- cinder/volume/async_rpcapi.py — AsyncVolumeAPI (to_thread wrappers)\n- cinder/db/async_api.py — SA 2.0 async DB spike (model_select + 5 fns)\n\nChange-Id: I02ef95ee15122b43cca31ca7a666d035f6902f1c\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/cinder/commit/546e1d587466d2fd11f773a220724324f0b8810b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cinder/commit/546e1d587466d2fd11f773a220724324f0b8810b"}]},"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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\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":""}}}]}
