)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3f07279b084be9f4e4a642ad0d274cc55e86ff44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"439dc983_129f31f9","updated":"2025-09-10 20:22:21.000000000","message":"TBH, I thought this had already merged. But, since it hasn\u0027t, please add this config, otherwise imports will always fail unless a job or user adds it.\n\nAlso, as I think we saw today, we should do a nova and glance run against this before we merge to make sure those jobs all work. The ceph-multistore job (defined by nova, used by both) would have been broken here.","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"1fe51b42a2142cc22a20ec7641577f133b024a4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"56c09bab_a12e0b44","updated":"2025-05-21 14:31:27.000000000","message":"We are also trying to stop using GLANCE_STANDALONE when running tests (see https://review.opendev.org/c/openstack/glance/+/933614), so I\u0027m all for this.","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"29e94b0fcb015818c48cd67939c0bd23dcfa8c83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"42ef6903_1e129f7f","updated":"2025-08-12 17:32:03.000000000","message":"recheck\n\nThe old failure (in tempest-full-py3) is not accessible anymore","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a2f4c952f6e2c0ed1572a6601e5c22dd2a6f93a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e1e22ae1_e0a05af3","updated":"2025-06-25 08:19:20.000000000","message":"recheck another unrelated failure","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4a55130aa8b7e68757b398caef0f2b732cd9b317","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df5eca7d_86fdb998","updated":"2025-05-07 17:02:34.000000000","message":"recheck failures appear unrelated","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a201c5d53eb098bb100303f78912ea88335def8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"34534f0d_5f187fd0","updated":"2025-05-27 11:30:27.000000000","message":"recheck unrelated failure in ceph multistore job","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ccff2a8a2880b76a13e4b13b80bbc1cd95914e91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d5e04f0e_65b9182c","updated":"2025-09-11 13:35:22.000000000","message":"As noted, I think we need glance and nova test patches to depends-on this. We have one going already for nova to drop standalone from the ceph job, so it would be good to use that and/or something on top of it as that\u0027s where we\u0027ll end up, since not all of those jobs run against devstack.","commit_id":"1aa22aa6d4b8dac710b50b6aabd3ce9ce8280a98"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"46b6c1f8e97157068f37cc0e5963799e704b4471","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2b60a337_b6ba1b85","updated":"2025-09-11 17:49:33.000000000","message":"Glance and Nova seem fine with this, and confirmed they\u0027re actually running uwsgi for g-api, so should be good.","commit_id":"1aa22aa6d4b8dac710b50b6aabd3ce9ce8280a98"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"93fe6069bec62f31ce13b346676fa411ef472314","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c283891f_8cc16dc4","updated":"2025-09-11 15:30:57.000000000","message":"glance patch: https://review.opendev.org/c/openstack/glance/+/960620","commit_id":"1aa22aa6d4b8dac710b50b6aabd3ce9ce8280a98"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e0dc5570c1987ccca021ba54a372ba2d0953255","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"206a5585_30cc9249","in_reply_to":"d5e04f0e_65b9182c","updated":"2025-09-11 13:43:09.000000000","message":"I have a nova patch [here](https://review.opendev.org/c/openstack/nova/+/960446). I\u0027ll propose a glance one shortly.","commit_id":"1aa22aa6d4b8dac710b50b6aabd3ce9ce8280a98"}],"lib/glance":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"50ed22e7e957f54fdeb6c7dde3521dae88249e04","unresolved":true,"context_lines":[{"line_number":142,"context_line":"# If wsgi mode is uwsgi run glance under uwsgi, else default to eventlet"},{"line_number":143,"context_line":"# TODO(mtreinish): Remove the eventlet path here and in all the similar"},{"line_number":144,"context_line":"# conditionals below after the Pike release"},{"line_number":145,"context_line":"if [[ \"$WSGI_MODE\" \u003d\u003d \"uwsgi\" ]]; then"},{"line_number":146,"context_line":"    GLANCE_URL\u003d\"$GLANCE_SERVICE_PROTOCOL://$GLANCE_SERVICE_HOST/image\""},{"line_number":147,"context_line":"else"},{"line_number":148,"context_line":"    GLANCE_URL\u003d\"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"680b3a62_7f8de40d","side":"PARENT","line":145,"updated":"2025-05-21 16:44:34.000000000","message":"Hmm, not sure WSGI_MODE and standalone mode are fully tied together.. what are the other values for that? I can\u0027t remember...","commit_id":"3fe8873a15db27d2d8b7df4e708210ee3ca1465d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e491498b7ddb68fcd917e9ce1f234b263aa11247","unresolved":false,"context_lines":[{"line_number":142,"context_line":"# If wsgi mode is uwsgi run glance under uwsgi, else default to eventlet"},{"line_number":143,"context_line":"# TODO(mtreinish): Remove the eventlet path here and in all the similar"},{"line_number":144,"context_line":"# conditionals below after the Pike release"},{"line_number":145,"context_line":"if [[ \"$WSGI_MODE\" \u003d\u003d \"uwsgi\" ]]; then"},{"line_number":146,"context_line":"    GLANCE_URL\u003d\"$GLANCE_SERVICE_PROTOCOL://$GLANCE_SERVICE_HOST/image\""},{"line_number":147,"context_line":"else"},{"line_number":148,"context_line":"    GLANCE_URL\u003d\"$GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"12604951_88143882","side":"PARENT","line":145,"in_reply_to":"680b3a62_7f8de40d","updated":"2025-05-27 11:30:01.000000000","message":"fwict, we only ever checked for `uwsgi` so `WSGI_MODE` really should have been called `USE_MOD_UWSGI` and been a boolean. Based on Id5b2c67701bcc7b12c8e3764c7199d10f85df80f, it appears this option was intended to allow services to migrate from `mod_wsgi` to `mod_uwsgi` and was used to migrate placement and keystone across (we\u0027ve since removed support for this option - and the `mod_wsgi` deployment path in general - in these services via If17deabc35d35dca1d94b0d15d258769f347b130 and I2409385a87ee7cc7869bba9711bf95ab5fe77dc7, respectively). However, we were very inconsistent in other services. We never adopted the pattern for nova when we migrated from `mod_wsgi` to `mod_uwsgi`, opting to do a straight swap in change If2d7e363a6541854f2e30c03171bef7a41aff745, while neutron never supported deployment under `mod_wsgi` and went straight for `mod_uwsgi` in change I16a199b04858bfc03ef50d9883154dba8b0d66ea (but still called their option `NEUTRON_DEPLOY_MOD_WSGI` rather than `NEUTRON_DEPLOY_MOD_UWSGI`...ugh). It looks like mtreinish chose to use `WSGI_MODE` as the indication that glance should be deployed via wsgi rather that adding another option like `GLANCE_DEPLOY_MOD_WSGI` or `GLANCE_USE_MOD_WSGI` in change Ie98fb7da5e8ecfa49cd680b88139cb7034d5f88f.\n\nYou had change I79068ce0bd7414bc48ff534ee22f0de5d7b091cb decoupling these somewhat but that seems to be merely a way of allowing us to continue deploying e.g. placement and keystone under `mod_uwsgi` rather than `mod_wsgi`.","commit_id":"3fe8873a15db27d2d8b7df4e708210ee3ca1465d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3f07279b084be9f4e4a642ad0d274cc55e86ff44","unresolved":true,"context_lines":[{"line_number":456,"context_line":"    write_local_uwsgi_http_config \"$GLANCE_UWSGI_CONF\" \"$GLANCE_UWSGI\" \"/image\" \"glance-api\""},{"line_number":457,"context_line":"    # Grab our uwsgi listen address and use that to fill out our"},{"line_number":458,"context_line":"    # worker_self_reference_url config"},{"line_number":459,"context_line":"    iniset $GLANCE_API_CONF DEFAULT worker_self_reference_url $(awk \u0027-F\u003d \u0027 \u0027/^http-socket/ { print \"http://\"$2}\u0027 $GLANCE_UWSGI_CONF)"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    if [[ \"$GLANCE_ENFORCE_SCOPE\" \u003d\u003d True || \"$ENFORCE_SCOPE\" \u003d\u003d True ]] ; then"},{"line_number":462,"context_line":"        iniset $GLANCE_API_CONF oslo_policy enforce_scope true"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"400ff742_16eeb5af","line":459,"updated":"2025-09-10 20:22:21.000000000","message":"Before when the default was nominally standlone, and where import wasn\u0027t always enabled, we set this per-job:\n\nhttps://github.com/openstack/glance/blob/master/.zuul.yaml#L235\n\nWith this move to all-wsgi, I think we should just add setting that all the time regardless. Without this, an attempt to run privsep things (only done during an import so easy to miss) will fail because privsep self-execs the \"current python\" which is uwsgi.","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98673fb0e1f62be9e8cc0d70119c4dd073500165","unresolved":false,"context_lines":[{"line_number":456,"context_line":"    write_local_uwsgi_http_config \"$GLANCE_UWSGI_CONF\" \"$GLANCE_UWSGI\" \"/image\" \"glance-api\""},{"line_number":457,"context_line":"    # Grab our uwsgi listen address and use that to fill out our"},{"line_number":458,"context_line":"    # worker_self_reference_url config"},{"line_number":459,"context_line":"    iniset $GLANCE_API_CONF DEFAULT worker_self_reference_url $(awk \u0027-F\u003d \u0027 \u0027/^http-socket/ { print \"http://\"$2}\u0027 $GLANCE_UWSGI_CONF)"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    if [[ \"$GLANCE_ENFORCE_SCOPE\" \u003d\u003d True || \"$ENFORCE_SCOPE\" \u003d\u003d True ]] ; then"},{"line_number":462,"context_line":"        iniset $GLANCE_API_CONF oslo_policy enforce_scope true"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"1a1c3546_f398374f","line":459,"in_reply_to":"400ff742_16eeb5af","updated":"2025-09-11 09:30:02.000000000","message":"Good catch. Done (I think)","commit_id":"6e86c1a5c0680931cb113bb19bf640234c6c3501"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ccff2a8a2880b76a13e4b13b80bbc1cd95914e91","unresolved":true,"context_lines":[{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    # Configure the Python binary used for \"import\" plugins. If unset, these"},{"line_number":462,"context_line":"    # will attempt the uwsgi binary instead."},{"line_number":463,"context_line":"    iniset $GLANCE_API_CONF wsgi python_interpreter $PYTHON"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    if [[ \"$GLANCE_ENFORCE_SCOPE\" \u003d\u003d True || \"$ENFORCE_SCOPE\" \u003d\u003d True ]] ; then"},{"line_number":466,"context_line":"        iniset $GLANCE_API_CONF oslo_policy enforce_scope true"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"0adb1d0c_b2df57ff","line":463,"updated":"2025-09-11 13:35:22.000000000","message":"Assuming $PYTHON is our venv python, then this should be right.","commit_id":"1aa22aa6d4b8dac710b50b6aabd3ce9ce8280a98"}]}
