)]}'
{"id":"openstack%2Fdevstack~995132","triplet_id":"openstack%2Fdevstack~master~If385d91da820e24732b27d840ff38f66cf35899d","project":"openstack/devstack","branch":"master","attention_set":{"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-07-01 08:31:52.000000000","reason":"Change was marked ready for review"}},"removed_from_attention_set":{"10273":{"account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"last_update":"2026-06-26 19:48:17.000000000","reason":"Change was marked work in progress"}},"hashtags":["asgi","asgi-phase-0"],"change_id":"If385d91da820e24732b27d840ff38f66cf35899d","subject":"Add ASGI serving support via Hypercorn","status":"NEW","created":"2026-06-26 19:09:04.000000000","updated":"2026-07-01 08:31:52.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"9d6d19ece2a153e84981d165458e2f9db2bafb43","_number":995132,"virtual_id_number":995132,"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":[{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-01 05:36:52.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":{"recommended":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":1,"date":"2026-07-01 04:50:02.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"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":[{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_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"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-26 19:13:39.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2026-06-26 19:13: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":"9e0e4dbe74c7e41ede1cc3bf451ebf2d194bf8f1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:09:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7c9de3e18d8e3e1d2f6ae2c622303966102a0852","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-26 19:13:39.000000000","message":"Patch Set 1: Code-Review-1\n\nThis change depends on a change that failed to merge.\n\nChanges https://review.opendev.org/c/openstack/requirements/+/995122, https://review.opendev.org/c/openstack/oslo.service/+/995128 are needed.","accounts_in_message":[],"_revision_number":1},{"id":"37698555e674b755f4aeb1a86df081e5f184e75e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 19:13:59.000000000","message":"Patch Set 1: Verified-1\n\nThis change depends on a change that failed to merge.\n\nChanges https://review.opendev.org/c/openstack/requirements/+/995122, https://review.opendev.org/c/openstack/oslo.service/+/995128 are needed.","accounts_in_message":[],"_revision_number":1},{"id":"c1acf30341ccbf701a6741b6c293e5ebb7e87ce4","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:48:17.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"1929403be435460bd7842a40a71beda500294c02","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:48:17.000000000","message":"Hashtag added: asgi","accounts_in_message":[],"_revision_number":1},{"id":"789fd2513c643c6ed01357436a749163ca68354f","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 22:38:28.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"182c45a1e5af2b62739b269c22bd2e4c8fefd8bb","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-26 23:53:10.000000000","message":"Patch Set 2: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/93187fc11eb64292a5f9a7ff2d3193dd\n\n- devstack-platform-centos-10-stream https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/6c2e5d8eb52b4ef4a78facf854c3040c : SUCCESS in 1h 13m 25s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"c8a2abf2bc61c1b273aa4136011ebe877b046c36","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 23:53:37.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":3},{"id":"f9028127810c2ca745419a6adf42c74bbd44b451","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 23:56:00.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"78abc55c8b65a70bd4ca40f10188f9309ec3e1cb","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 01:09:25.000000000","message":"Patch Set 4: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/ddb0ace2a1614615801ef7c59a77451a\n\n- devstack-platform-centos-10-stream https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/95b4afcc102e46558de716eeba2671ab : SUCCESS in 1h 12m 15s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"8d2debc1590d3e9bfa47cf14a0fb306c260d99d6","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-27 01:26:58.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":5},{"id":"a9a53ab11154e7033f96e18d920454a8a64648eb","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 01:27:15.000000000","message":"Patch Set 5: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":5},{"id":"e5b462d65606ce01674e7281927f347c3b5833c8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 01:55:04.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4edbc04d33ad4cdd920d1483e1775ee6\n\n- devstack https://zuul.opendev.org/t/openstack/build/61e114c368ed423d818b2de5216b46cd : SUCCESS in 24m 41s","accounts_in_message":[],"_revision_number":5},{"id":"407c08967babb613aa142fb21c6da75580a16d52","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-27 02:23:34.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"1f4f26704cd98a682de7a1ce809e7ab105ac08e0","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 02:23:54.000000000","message":"Patch Set 6: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":6},{"id":"57f6e6dd91c4032c8c8f4dd9a4c379948cf13472","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 03:47:48.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9359cad39fee42b18c903bb934cc1612\n\n- devstack https://zuul.opendev.org/t/openstack/build/c6eab8130b494da284d25bff181843c4 : SUCCESS in 28m 17s","accounts_in_message":[],"_revision_number":6},{"id":"3e8553f094ab2992e451d1516fbcc40176e0fc64","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-27 04:19:53.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"2af316386fa6795928a504a4321179b25878a85d","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 04:20:09.000000000","message":"Patch Set 7: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":7},{"id":"b54c383d0537d3450dc3c4f85971dade1d89db7b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 04:48:23.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b2a8100773814a6d87d6bbf6aa910b12\n\n- devstack https://zuul.opendev.org/t/openstack/build/8b15846bcd2a48de8493fbc942f86ebf : SUCCESS in 26m 14s","accounts_in_message":[],"_revision_number":7},{"id":"13b65310bb68b52e7264031ec1f57d1e78e08155","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-27 16:48:20.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"7f67599569e3190d4fed468de417fe256321ffae","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 16:48:41.000000000","message":"Patch Set 8: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":8},{"id":"2ee7a9912c813ee2c5dc8ba58efee8507c5f64e3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 17:22:04.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/aca25cbe124244e0b4e72fdb28aa3b0b\n\n- devstack https://zuul.opendev.org/t/openstack/build/568a890a20304259920ffc1781ee6c32 : SUCCESS in 25m 32s","accounts_in_message":[],"_revision_number":8},{"id":"4010494855049e7d40b27bad8199ae94c6fa0c92","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-27 22:30:59.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"3fbd2530befe041c02d0bd4ba13ec17cc84d6dd3","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-27 22:31:21.000000000","message":"Patch Set 9: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":9},{"id":"7950dca1682ce3efab53cb538c4d4b9612c22dab","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-27 22:50:29.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1777adb26b324d0081b4cade0be8df85\n\n- devstack https://zuul.opendev.org/t/openstack/build/ec1060586144489b8f09474ecc51a9a0 : SUCCESS in 13m 43s","accounts_in_message":[],"_revision_number":9},{"id":"1d8ff69d9a06574514673f1896ef58985ddeae1d","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 03:54:59.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"aec7a46a864b96d9d8dfbf1974ee39a8464cf87c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 03:55:17.000000000","message":"Patch Set 10: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":10},{"id":"6194ec6e21180b7f7e39ec349cfc93cde2c9db33","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 04:10:32.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5722da73a20e471db49aee3d58734f81\n\n- devstack https://zuul.opendev.org/t/openstack/build/5d1ffe59694442bf83cfc952921a6b58 : SUCCESS in 12m 57s","accounts_in_message":[],"_revision_number":10},{"id":"2fa4c07aecba9977747b55bd412e2bcf9d18fb3c","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 06:38:56.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":11},{"id":"671332e4decfe9497cf18d201b7598e92fd2f87a","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 06:39:12.000000000","message":"Patch Set 11: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The project \"opendev.org/openstack/oslo.service\" was not found.  All\n  projects referenced within a Zuul configuration must first be added to\n  the main configuration file by the Zuul administrator.\n\nThe problem appears in the \"tempest-full-asgi\" job stanza:\n\n  job:\n      name: tempest-full-asgi\n      parent: tempest-full-py3\n      description: |\n        Full integrated tempest suite with all core API services\n        (keystone, glance, cinder, nova, neutron, placement) served\n        under Hypercorn (ASGI) instead of uWSGI.\n      required-projects:\n        - opendev.org/openstack/oslo.service\n  ...\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 996","accounts_in_message":[],"_revision_number":11},{"id":"f32a7519a376bf9b816c51c8405028bfe9135dcd","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 06:56:38.000000000","message":"Uploaded patch set 12: Commit message was updated.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":12},{"id":"f6e611bebad4af1af32e38d767f9a25453d214c6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 06:56:42.000000000","message":"Patch Set 12: 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/d1032626819e41eda1d1b79659c5ab0a\n\n\nWarning:\n  Dependency cycle detected and project openstack/glance doesn\u0027t allow circular dependencies","accounts_in_message":[],"_revision_number":12},{"id":"0030545ea5b2513dc973690fcb81ee8b4d7d5543","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 06:56:44.000000000","message":"Patch Set 12: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/e34171469ee04c9d9e6415daf04999fa\n\n\nWarning:\n  Dependency cycle detected and project openstack/glance doesn\u0027t allow circular dependencies","accounts_in_message":[],"_revision_number":12},{"id":"97c1b3b7dc99428406afe37a7c620c1ecebaf625","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 07:05:49.000000000","message":"Patch Set 12:\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/d655dd0a474b4f36845f84f5b8582deb\n\n\nWarning:\n  Dependency cycle detected and project openstack/glance doesn\u0027t allow circular dependencies","accounts_in_message":[],"_revision_number":12},{"id":"cd4f0dedf1be73add2c4c5a40df1117f88d8d782","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 07:06:49.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":13},{"id":"62fc9cb49e23b3139a86e687c3f8d8330dad328b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 07:06:52.000000000","message":"Patch Set 13: 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/991791fcfd994987a04b2c317e5e76c2\n\n\nWarning:\n  Dependency cycle detected and project openstack/glance doesn\u0027t allow circular dependencies","accounts_in_message":[],"_revision_number":13},{"id":"8e5986406243af90d0ad857158a591673354f352","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 07:06:55.000000000","message":"Patch Set 13: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/641e56aacf064fc9a680a0eb6b344e1a\n\n\nWarning:\n  Dependency cycle detected and project openstack/glance doesn\u0027t allow circular dependencies","accounts_in_message":[],"_revision_number":13},{"id":"1094a6d2b485276bda1fa59775c965060103c1a5","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 07:19:02.000000000","message":"Uploaded patch set 14: Commit message was updated.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":14},{"id":"21af242293068645a523f76ef2c007517779b484","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 07:19:19.000000000","message":"Patch Set 14: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":14},{"id":"6c09de106698dce698d200c315a4078d169eadff","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 07:21:35.000000000","message":"Uploaded patch set 15.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":15},{"id":"c27950ea12271ca16734b933f26a197f7e958a24","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 07:21:50.000000000","message":"Patch Set 15: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":15},{"id":"15a637cfa30240291664f0b0f7d21c171f557cc4","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 07:29:23.000000000","message":"Uploaded patch set 16.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":16},{"id":"e1cb6adc9277b46bde511c4b457b667d702f3b80","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 07:29:39.000000000","message":"Patch Set 16: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":16},{"id":"2160c67a949ce3c635d431326833e83889c29b7c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 07:59:09.000000000","message":"Patch Set 16: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6c34a28c5d3f4a9caf807f038eae94ad\n\n- devstack https://zuul.opendev.org/t/openstack/build/2c93f6989ec24a6888677d8605c44231 : SUCCESS in 27m 55s","accounts_in_message":[],"_revision_number":16},{"id":"df6cd37709d7e41326666e2d190f691846172187","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 21:59:03.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":17},{"id":"c0fc51a3dca2ed1fa4ba1403c915a355646fc459","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-28 21:59:24.000000000","message":"Patch Set 17: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":17},{"id":"78bd31d390756e993e6984ca61eadc5367e5bae3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-28 22:33:15.000000000","message":"Patch Set 17: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4c53f94bf4f749df864b361a4379eeae\n\n- devstack https://zuul.opendev.org/t/openstack/build/da60c21422984fe4a81090d2c30dfe02 : SUCCESS in 25m 07s","accounts_in_message":[],"_revision_number":17},{"id":"c3325edf94111b64cbb41555a604bb03eb8ec998","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-0","accounts_in_message":[],"_revision_number":17},{"id":"2270666a0fd256ad3880c31f9ef321fb8d3705c6","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 23:57:34.000000000","message":"Uploaded patch set 18.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":18},{"id":"44e4e408ef6bbc6a29b5e3eb7218296794210e4e","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-29 23:57:50.000000000","message":"Patch Set 18: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":18},{"id":"abd65b761ac431e34c1b39353b233aa183b308a0","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 00:05:49.000000000","message":"Uploaded patch set 19.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":19},{"id":"3ec06ef2ef4e192abdc59432ce1755828090b7c7","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-30 00:06:24.000000000","message":"Patch Set 19: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo config on branch master.  The\nproblem was:\n\n  Job devstack-platform-centos-9-stream not defined\n\nThe problem appears in the \"devstack-platform-centos-10-stream\" job stanza:\n\n  job:\n      name: devstack-platform-centos-10-stream\n      # move to devstack-platform-centos-10-stream or drop job if not needed once\n      # https://review.opendev.org/c/openstack/devstack/+/937251 merges\n      parent: devstack-platform-centos-9-stream\n      branches: ^master$\n      vars:\n        devstack_localrc:\n          PYTHON3_VERSION: 3.12\n  ...\n\n  in \"config/zuul.d/jobs.yaml@master\", line 417","accounts_in_message":[],"_revision_number":19},{"id":"33574d79423be2d97f3292fc0320f93c4016791b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 00:12:59.000000000","message":"Patch Set 19: Verified-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo airship/pegleg on branch helm3.  The\nproblem was:\n\n  The nodeset \"openstack-single-node-bionic\" was not found.\n\nThe problem appears in the \"openstack-tox-pep8-bionic\" job stanza:\n\n  job:\n      name: openstack-tox-pep8-bionic\n      parent: openstack-tox-pep8\n      nodeset: openstack-single-node-bionic\n\n  in \"airship/pegleg/.zuul.yaml@helm3\", line 63","accounts_in_message":[],"_revision_number":19},{"id":"de580ca5b721868713a7b8f2ea9efab5ac4572a2","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 00:13:33.000000000","message":"Uploaded patch set 20.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":20},{"id":"6d280c5602d3831e81ea6d4463718360382b3c8d","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-30 00:14:05.000000000","message":"Patch Set 20: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/tempest on branch master.  The\nproblem was:\n\n  Job devstack not defined\n\nThe problem appears in the \"devstack-tempest\" job stanza:\n\n  job:\n      name: devstack-tempest\n      parent: devstack\n      description: |\n        Base Tempest job.\n  \n        This Tempest job provides the base for both the single and multi-node\n        test setup. To run a multi-node test inherit from devstack-tempest and\n        set the nodeset to a multi-node one.\n  ...\n\n  in \"openstack/tempest/zuul.d/base.yaml@master\", line 1","accounts_in_message":[],"_revision_number":20},{"id":"ef72a6ea88171d6c46541a092361f8cbdea25446","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 00:17:16.000000000","message":"Uploaded patch set 21.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":21},{"id":"1f60d3931141a0267d0a8a6f111cb63e726bbc23","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-30 00:28:56.000000000","message":"Uploaded patch set 22.","accounts_in_message":[],"_revision_number":22},{"id":"301fc6c15388af334cf84ab8c914b7d2b808c5d1","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-30 00:29:37.000000000","message":"Patch Set 22: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/devstack on branch master.  The\nproblem was:\n\n  The nodeset \"devstack-single-node-debian-trixie\" was not found.\n\nThe problem appears in the \"devstack-platform-debian-trixie\" job stanza:\n\n  job:\n      name: devstack-platform-debian-trixie\n      parent: tempest-full-py3\n      description: Debian Trixie platform test\n      nodeset: devstack-single-node-debian-trixie\n      timeout: 9000\n      vars:\n        configure_swap_size: 4096\n\n  in \"openstack/devstack/.zuul.yaml@master\", line 809","accounts_in_message":[],"_revision_number":22},{"id":"a25a923e5df23bf0f88b022ca5898f38e76a7ada","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 01:00:25.000000000","message":"Patch Set 22: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/63e2f41a85714ac48c8c1ae69ac173ad\n\n- devstack https://zuul.opendev.org/t/openstack/build/9337f4c7c5c5423fb4724d9a17960215 : SUCCESS in 25m 18s","accounts_in_message":[],"_revision_number":22},{"id":"432dffb837c70d35c501e51fb790d91ac3cbc5fc","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-01 03:38:47.000000000","message":"Uploaded patch set 23.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":23},{"id":"86847e9cb77046608cd295bb189cb525a5cc0b92","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-01 04:50:02.000000000","message":"Patch Set 23: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/16d6f54ad0a2496780ce4792c4e0b80b\n\n- devstack-platform-centos-10-stream https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/92abc9b3ee3e45f69c344c3edfdad5b2 : SUCCESS in 1h 09m 46s (non-voting)","accounts_in_message":[],"_revision_number":23},{"id":"917608de368b60d1001ab918110a74c4d115d703","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 05:36:52.000000000","message":"Patch Set 23: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/99d3f6707443438d90f605a523bd1b68\n\n- grenade https://zuul.opendev.org/t/openstack/build/39cb2193b9a6482cbd43efe44f49a87d : SUCCESS in 35m 43s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/799a74f2e83441eea868d0d036271097 : SUCCESS in 1h 29m 42s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/462976e381744ee2b4320c0976738121 : SUCCESS in 3m 52s\n- devstack https://zuul.opendev.org/t/openstack/build/553b1741b8e84ef7b17e57f5208ef4fd : SUCCESS in 18m 50s\n- devstack-ipv6 https://zuul.opendev.org/t/openstack/build/d37aff1e0fc74af898e80b11c8e657f9 : SUCCESS in 13m 24s\n- devstack-enforce-scope https://zuul.opendev.org/t/openstack/build/3180ac854d14432e8ef0725566df83e7 : SUCCESS in 13m 49s\n- devstack-platform-almalinux-purple-lion-ovn-source https://zuul.opendev.org/t/openstack/build/c90460d062cc46969427274e6a714144 : SUCCESS in 56m 51s (non-voting)\n- devstack-platform-centos-10-stream https://zuul.opendev.org/t/openstack/build/1658509a9b514cdeaffdac8c03d7816d : SUCCESS in 56m 46s (non-voting)\n- devstack-platform-centos-9-stream https://zuul.opendev.org/t/openstack/build/ddf2f8637b6f4d75a80e46a0cb346e23 : SUCCESS in 1h 52m 20s (non-voting)\n- devstack-platform-debian-bookworm https://zuul.opendev.org/t/openstack/build/77edf6e62850486b9bfbaa7c300bcd13 : SUCCESS in 1h 50m 30s\n- devstack-platform-debian-trixie https://zuul.opendev.org/t/openstack/build/0f7655fe868a4fae98c99e8a31d4967e : SUCCESS in 1h 01m 47s\n- devstack-platform-rocky-blue-onyx https://zuul.opendev.org/t/openstack/build/d4923f436b7342638cea2ef31311a5b0 : SUCCESS in 1h 00m 21s (non-voting)\n- devstack-platform-rocky-red-quartz https://zuul.opendev.org/t/openstack/build/ef8ee90bc6b54c08a9d011e40c1f29ba : SUCCESS in 59m 24s (non-voting)\n- devstack-platform-ubuntu-noble-ovn-source https://zuul.opendev.org/t/openstack/build/c4b08da320534e388cf7e1ecd4bda452 : SUCCESS in 1h 00m 58s (non-voting)\n- devstack-platform-ubuntu-noble-ovs https://zuul.opendev.org/t/openstack/build/e565001ede84458abd7c9cdaa85f37a5 : SUCCESS in 1h 19m 39s (non-voting)\n- devstack-platform-ubuntu-resolute https://zuul.opendev.org/t/openstack/build/398baeb3947646569ead5a903dc0e74c : SUCCESS in 56m 31s (non-voting)\n- devstack-multinode https://zuul.opendev.org/t/openstack/build/65f71b6f166b42aeb0f40852300000fe : SUCCESS in 27m 01s\n- devstack-unit-tests https://zuul.opendev.org/t/openstack/build/639a240be917423680ecc4308d616b05 : SUCCESS in 3m 05s\n- openstack-tox-bashate https://zuul.opendev.org/t/openstack/build/4fb42c0351f943e8a59b389363049008 : SUCCESS in 1m 51s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/1ac640a061bc427fbead9789e9d309bd : SUCCESS in 1h 06m 07s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/c296ef11d9094be6a5ff4f4ad7e48d2e : SUCCESS in 24m 18s\n- neutron-ovs-grenade-multinode https://zuul.opendev.org/t/openstack/build/8274c4d3a7b24ee8b1e7dd5ddfc66752 : SUCCESS in 1h 10m 01s\n- neutron-ovn-tempest-ovs-release https://zuul.opendev.org/t/openstack/build/ddb04e3bb36e4ecd8e4bbdc8775394c2 : SUCCESS in 1h 02m 28s (non-voting)\n- tempest-multinode-full-py3 https://zuul.opendev.org/t/openstack/build/10b4d87200df4a568744db31d7d48c47 : SUCCESS in 48m 26s (non-voting)\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f714318f44df4a1f9b9d85a3e810bfb6 : SUCCESS in 54m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/670b338dca2b4fbf831d85d9f5780688 : SUCCESS in 44m 58s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/c5ddd8269288422690a436399aae8505 : SUCCESS in 1h 51m 50s","accounts_in_message":[],"_revision_number":23},{"id":"9d6d19ece2a153e84981d165458e2f9db2bafb43","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-07-01 08:31:52.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":23}],"current_revision_number":23,"current_revision":"8ba307868fdf921c234bb1ade8f05d0aaf78f950","revisions":{"f1913bd08b5521f6b1832e9052d0ea40ce22191c":{"kind":"REWORK","_number":1,"created":"2026-06-26 19:09:04.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/1"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdd the ability to serve OpenStack API services under the Hypercorn\nASGI server instead of uWSGI. This is controlled by a new\nASGI_SERVICES variable in local.conf which lists the services to\nserve under ASGI.\n\nNew helpers in lib/apache:\n  - is_asgi_enabled(): check if a service should use ASGI\n  - install_hypercorn(): install Hypercorn into the service venv\n  - run_hypercorn(): start a service under Hypercorn with an apache\n    HTTP proxy in front (reusing write_local_proxy_http_config), so\n    the public endpoint URL and TLS termination are identical to\n    uWSGI mode\n  - remove_asgi_config(): clean up apache site config\n\nWiring added for placement-api and cinder-api (c-api). Each service\nbranches on is_asgi_enabled at configure, start, and cleanup time.\nWhen ASGI is not enabled for a service, the existing uWSGI path is\nunchanged.\n\nThe ASGI entry points (placement.asgi.api:application and\ncinder.asgi.api:application) wrap the existing WSGI applications\nusing oslo_service.asgi.wrap_wsgi(), preserving all paste deploy\nmiddleware pipelines, authentication, and API behavior.\n\nUsage in local.conf:\n  ASGI_SERVICES\u003d\"placement-api cinder-api\"\n  LIBS_FROM_GIT\u003doslo.service\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/f1913bd08b5521f6b1832e9052d0ea40ce22191c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/f1913bd08b5521f6b1832e9052d0ea40ce22191c"}]},"branch":"refs/heads/master"},"ee49760d4a7a22a7de408a96487dbf70283b604d":{"kind":"REWORK","_number":2,"created":"2026-06-26 22:38:28.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/2"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 22:38:20.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdd the ability to serve OpenStack API services under the Hypercorn\nASGI server instead of uWSGI. This is controlled by a new\nASGI_SERVICES variable in local.conf which lists the services to\nserve under ASGI.\n\nNew helpers in lib/apache:\n  - is_asgi_enabled(): check if a service should use ASGI\n  - install_hypercorn(): install Hypercorn into the service venv\n  - write_asgi_config(): allocate a port and configure the apache\n    HTTP proxy during the configure phase (mirrors write_uwsgi_config)\n  - start_hypercorn(): start Hypercorn on the pre-allocated port\n    during the start phase\n  - remove_asgi_config(): clean up apache site config\n\nPort allocation is split into configure (write_asgi_config) and start\n(start_hypercorn) phases to avoid collisions with ports allocated by\nother services\u0027 write_uwsgi_config/write_local_uwsgi_http_config\ncalls. Previously, allocating the port at start time could collide\nwith ports already assigned (but not yet bound) during configure.\n\nWiring added for placement-api and cinder-api (c-api). Each service\nbranches on is_asgi_enabled at configure, start, and cleanup time.\nWhen ASGI is not enabled for a service, the existing uWSGI path is\nunchanged.\n\nThe ASGI entry points (placement.asgi.api:application and\ncinder.asgi.api:application) wrap the existing WSGI applications\nusing oslo_service.asgi.wrap_wsgi(), preserving all paste deploy\nmiddleware pipelines, authentication, and API behavior.\n\nUsage in local.conf:\n  ASGI_SERVICES\u003d\"placement-api cinder-api\"\n  LIBS_FROM_GIT\u003doslo.service\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/ee49760d4a7a22a7de408a96487dbf70283b604d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/ee49760d4a7a22a7de408a96487dbf70283b604d"}]},"branch":"refs/heads/master"},"694e577ccd3121ebb10705d1f9ae5a3f64319066":{"kind":"REWORK","_number":3,"created":"2026-06-26 23:53:37.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/3"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 23:53:31.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdd the ability to serve OpenStack API services under the Hypercorn\nASGI server instead of uWSGI. This is controlled by a new\nASGI_SERVICES variable in local.conf which lists the services to\nserve under ASGI.\n\nNew helpers in lib/apache:\n  - is_asgi_enabled(): check if a service should use ASGI\n  - install_hypercorn(): install Hypercorn into the service venv\n  - write_asgi_config(): allocate a port, bind a placeholder socket\n    to reserve it (preventing get_random_port collisions), and\n    configure the apache HTTP proxy during the configure phase\n  - start_hypercorn(): kill the placeholder, start Hypercorn on the\n    pre-allocated port during the start phase\n  - remove_asgi_config(): clean up apache site config\n\nPort reservation uses a placeholder socket because get_random_port\nchecks lsof for live bindings. Without the placeholder, ports\nallocated during the configure phase (when nothing is bound) can\ncollide with ports allocated by other services\u0027\nwrite_local_uwsgi_http_config calls (which also use get_random_port\nduring configure).\n\nWiring added for placement-api and cinder-api (c-api). Each service\nbranches on is_asgi_enabled at configure, start, and cleanup time.\nWhen ASGI is not enabled for a service, the existing uWSGI path is\nunchanged.\n\nThe ASGI entry points (placement.asgi.api:application and\ncinder.asgi.api:application) wrap the existing WSGI applications\nusing oslo_service.asgi.wrap_wsgi(), preserving all paste deploy\nmiddleware pipelines, authentication, and API behavior.\n\nUsage in local.conf:\n  ASGI_SERVICES\u003d\"placement-api cinder-api\"\n  LIBS_FROM_GIT\u003doslo.service\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/694e577ccd3121ebb10705d1f9ae5a3f64319066"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/694e577ccd3121ebb10705d1f9ae5a3f64319066"}]},"branch":"refs/heads/master"},"1180bce985bfefc75db98ebffe2225e8c10c1488":{"kind":"REWORK","_number":4,"created":"2026-06-26 23:56:00.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/4"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 23:55:54.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdd the ability to serve OpenStack API services under the Hypercorn\nASGI server instead of uWSGI. This is controlled by a new\nASGI_SERVICES variable in local.conf which lists the services to\nserve under ASGI.\n\nNew helpers in lib/apache:\n  - is_asgi_enabled(): check if a service should use ASGI\n  - install_hypercorn(): install Hypercorn into the service venv\n  - write_asgi_config(): configure the apache HTTP proxy for a fixed\n    per-service port during the configure phase\n  - start_hypercorn(): start Hypercorn on the pre-configured port\n    during the start phase\n  - remove_asgi_config(): clean up apache site config\n\nEach ASGI service defines a fixed internal port (e.g.\nPLACEMENT_ASGI_PORT\u003d28778, CINDER_ASGI_PORT\u003d28776) rather than using\nget_random_port, which checks lsof for live bindings and can return\nthe same port to multiple services during the configure phase when\nnothing is bound yet.\n\nWiring added for placement-api and cinder-api (c-api). Each service\nbranches on is_asgi_enabled at configure, start, and cleanup time.\nWhen ASGI is not enabled for a service, the existing uWSGI path is\nunchanged.\n\nThe ASGI entry points (placement.asgi.api:application and\ncinder.asgi.api:application) wrap the existing WSGI applications\nusing oslo_service.asgi.wrap_wsgi(), preserving all paste deploy\nmiddleware pipelines, authentication, and API behavior.\n\nUsage in local.conf:\n  ASGI_SERVICES\u003d\"placement-api cinder-api\"\n  LIBS_FROM_GIT\u003doslo.service\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/1180bce985bfefc75db98ebffe2225e8c10c1488"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/1180bce985bfefc75db98ebffe2225e8c10c1488"}]},"branch":"refs/heads/master"},"7215e20d347b617307a40cbd68a29dbacc96fcfa":{"kind":"REWORK","_number":5,"created":"2026-06-27 01:26:58.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/5"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-27 01:26:49.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\n\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/7215e20d347b617307a40cbd68a29dbacc96fcfa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/7215e20d347b617307a40cbd68a29dbacc96fcfa"}]},"branch":"refs/heads/master"},"7f0971d9d650fb91db5d99ea863ec767571f541b":{"kind":"REWORK","_number":6,"created":"2026-06-27 02:23:34.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/6"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-27 02:23:06.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/7f0971d9d650fb91db5d99ea863ec767571f541b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/7f0971d9d650fb91db5d99ea863ec767571f541b"}]},"branch":"refs/heads/master"},"b5d8ea2742ed463fcacacc1d2d42a01df4578060":{"kind":"REWORK","_number":7,"created":"2026-06-27 04:19:53.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/7"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-27 04:19:44.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/b5d8ea2742ed463fcacacc1d2d42a01df4578060"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/b5d8ea2742ed463fcacacc1d2d42a01df4578060"}]},"branch":"refs/heads/master"},"76d89ca4b317c2bc5d752a9d13d1f5bbdcea0ba0":{"kind":"REWORK","_number":8,"created":"2026-06-27 16:48:20.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/8"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-27 16:48:06.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/76d89ca4b317c2bc5d752a9d13d1f5bbdcea0ba0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/76d89ca4b317c2bc5d752a9d13d1f5bbdcea0ba0"}]},"branch":"refs/heads/master"},"f02dad8d8cd0cdf64ca2cbf693cf8cb0c393a2ab":{"kind":"REWORK","_number":9,"created":"2026-06-27 22:30:59.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/9"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-27 22:30:57.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/f02dad8d8cd0cdf64ca2cbf693cf8cb0c393a2ab"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/f02dad8d8cd0cdf64ca2cbf693cf8cb0c393a2ab"}]},"branch":"refs/heads/master"},"9aa6ee9f3f41997da4aef2a2a380739428d604aa":{"kind":"REWORK","_number":10,"created":"2026-06-28 03:54:59.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/10"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 03:54:57.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/9aa6ee9f3f41997da4aef2a2a380739428d604aa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/9aa6ee9f3f41997da4aef2a2a380739428d604aa"}]},"branch":"refs/heads/master"},"50cba8f1ee6529f6a6b1355d8f028c259a826734":{"kind":"REWORK","_number":11,"created":"2026-06-28 06:38:56.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/11"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 06:38:41.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/50cba8f1ee6529f6a6b1355d8f028c259a826734"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/50cba8f1ee6529f6a6b1355d8f028c259a826734"}]},"branch":"refs/heads/master"},"207497e19617d2ba68ded123354da6db5a1bf411":{"kind":"NO_CODE_CHANGE","_number":12,"created":"2026-06-28 06:56:38.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/12"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 06:56:32.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nDepends-On: https://review.opendev.org/c/openstack/placement/+/995133\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995131\nDepends-On: https://review.opendev.org/c/openstack/nova/+/995163\nDepends-On: https://review.opendev.org/c/openstack/neutron/+/995162\nDepends-On: https://review.opendev.org/c/openstack/keystone/+/995161\nDepends-On: https://review.opendev.org/c/openstack/glance/+/995165\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/207497e19617d2ba68ded123354da6db5a1bf411"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/207497e19617d2ba68ded123354da6db5a1bf411"}]},"branch":"refs/heads/master"},"7840545f0a3cdb8af15dc6e687f3b6694969e91b":{"kind":"REWORK","_number":13,"created":"2026-06-28 07:06:49.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/13"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 07:06:42.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nDepends-On: https://review.opendev.org/c/openstack/placement/+/995133\nDepends-On: https://review.opendev.org/c/openstack/cinder/+/995131\nDepends-On: https://review.opendev.org/c/openstack/nova/+/995163\nDepends-On: https://review.opendev.org/c/openstack/neutron/+/995162\nDepends-On: https://review.opendev.org/c/openstack/keystone/+/995161\nDepends-On: https://review.opendev.org/c/openstack/glance/+/995165\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/7840545f0a3cdb8af15dc6e687f3b6694969e91b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/7840545f0a3cdb8af15dc6e687f3b6694969e91b"}]},"branch":"refs/heads/master"},"9c2d96c41869a405369225dc690e463c2ce0b395":{"kind":"NO_CODE_CHANGE","_number":14,"created":"2026-06-28 07:19:02.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/14"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 07:18:31.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/9c2d96c41869a405369225dc690e463c2ce0b395"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/9c2d96c41869a405369225dc690e463c2ce0b395"}]},"branch":"refs/heads/master"},"504386c968ece6cda79402a5082a3ca402526b80":{"kind":"REWORK","_number":15,"created":"2026-06-28 07:21:35.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/15"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 07:21:27.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/504386c968ece6cda79402a5082a3ca402526b80"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/504386c968ece6cda79402a5082a3ca402526b80"}]},"branch":"refs/heads/master"},"219ce3c16833992a82e8247a241c66d662f5f805":{"kind":"REWORK","_number":16,"created":"2026-06-28 07:29:23.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/16"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 07:29:21.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/219ce3c16833992a82e8247a241c66d662f5f805"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/219ce3c16833992a82e8247a241c66d662f5f805"}]},"branch":"refs/heads/master"},"fb859886ee523cea3dce35b352573f952264d32b":{"kind":"REWORK","_number":17,"created":"2026-06-28 21:59:03.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/17"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-28 21:58:19.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/fb859886ee523cea3dce35b352573f952264d32b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/fb859886ee523cea3dce35b352573f952264d32b"}]},"branch":"refs/heads/master"},"77f69ca83cfd46672d17405c7dd3095ead065488":{"kind":"REWORK","_number":18,"created":"2026-06-29 23:57:34.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/18"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-29 23:57:04.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/77f69ca83cfd46672d17405c7dd3095ead065488"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/77f69ca83cfd46672d17405c7dd3095ead065488"}]},"branch":"refs/heads/master"},"2bee61d7116857db72b2eda3703dd113b68c638f":{"kind":"REWORK","_number":19,"created":"2026-06-30 00:05:49.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/19"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 00:04:55.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/2bee61d7116857db72b2eda3703dd113b68c638f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/2bee61d7116857db72b2eda3703dd113b68c638f"}]},"branch":"refs/heads/master"},"8e82b5334ff237711a9ef4286fc6b0e4fb3d6f6d":{"kind":"REWORK","_number":20,"created":"2026-06-30 00:13:33.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/20"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 00:13:06.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/8e82b5334ff237711a9ef4286fc6b0e4fb3d6f6d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/8e82b5334ff237711a9ef4286fc6b0e4fb3d6f6d"}]},"branch":"refs/heads/master"},"b74db182776a9ea9279e980eecdfed731d096637":{"kind":"REWORK","_number":21,"created":"2026-06-30 00:17:16.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/21"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 00:16:01.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/b74db182776a9ea9279e980eecdfed731d096637"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/b74db182776a9ea9279e980eecdfed731d096637"}]},"branch":"refs/heads/master"},"c8bfdbd4a14cae0ae04bf8c0b82cc29464b90ebf":{"kind":"REWORK","_number":22,"created":"2026-06-30 00:28:56.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/22"}}},"commit":{"parents":[{"commit":"886291296c846797d58396bd45cd8a5cbbb1775e","subject":"Run resolute noVNC proxy in threaded mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/886291296c846797d58396bd45cd8a5cbbb1775e"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-30 00:28:27.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nIncludes a tempest-full-asgi gate job that runs all core services\nsimultaneously under Hypercorn.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/c8bfdbd4a14cae0ae04bf8c0b82cc29464b90ebf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/c8bfdbd4a14cae0ae04bf8c0b82cc29464b90ebf"}]},"branch":"refs/heads/master"},"8ba307868fdf921c234bb1ade8f05d0aaf78f950":{"kind":"REWORK","_number":23,"created":"2026-07-01 03:38:47.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/32/995132/23","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/devstack","ref":"refs/changes/32/995132/23","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/23 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/23 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/devstack refs/changes/32/995132/23 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/devstack refs/changes/32/995132/23"}}},"commit":{"parents":[{"commit":"689d0b9f0af1cd06d120d3a2e8170edc49125001","subject":"Merge \"Fix verify-ipv6-address.py crash on Python 3.14\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/689d0b9f0af1cd06d120d3a2e8170edc49125001"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:08:56.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-07-01 03:38:29.000000000","tz":-240},"subject":"Add ASGI serving support via Hypercorn","message":"Add ASGI serving support via Hypercorn\n\nAdds infrastructure for serving OpenStack API services under Hypercorn\n(ASGI) instead of uwsgi (WSGI). Controlled by the ASGI_SERVICES\nvariable in local.conf.\n\nNew helpers in lib/apache:\n- is_asgi_enabled: check if a service is in ASGI_SERVICES\n- install_hypercorn: pip install hypercorn into service venv\n- write_asgi_config: write port config and apache ProxyPass\n- start_hypercorn: launch hypercorn via run_process\n- remove_asgi_config: cleanup apache site config\n\nServices with ASGI support:\n- placement-api (port 28778)\n- cinder-api (port 28776)\n- nova n-api (port 28774) and n-api-meta (direct bind)\n- neutron-api (port 29696)\n- keystone (port 25000)\n- glance-api (port 28292)\n\nEach service\u0027s lib file branches on is_asgi_enabled to choose between\nuwsgi and hypercorn for configure, start, and cleanup phases. All\nexisting uwsgi behavior is preserved when ASGI_SERVICES is empty.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/995122\nDepends-On: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: If385d91da820e24732b27d840ff38f66cf35899d\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/devstack/commit/8ba307868fdf921c234bb1ade8f05d0aaf78f950"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/devstack/commit/8ba307868fdf921c234bb1ade8f05d0aaf78f950"}]},"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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"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":"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":""}}}]}
