)]}'
{"lib/apache":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"e7bf14670249562d3529adc187d50a5461a2d1c1","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"d757bed0_d6f8e8b8","line":306,"updated":"2021-09-28 06:37:16.000000000","message":"This exapnds to\n\n ProxyPass \"/placement\" \"unix:/var/run/uwsgi/placement-api.socket|uwsgi://uwsgi-uds-placement-api\" retry\u003d0 \n\non the host.  So per discussion in #openstack-qa, https://httpd.apache.org/docs/trunk/mod/mod_proxy.html#proxypass says\n\n\"If the first argument ends with a trailing /, the second argument should also end with a trailing /, and vice versa. Otherwise, the resulting requests to the backend may miss some needed slashes and do not deliver the expected results.\"\n\nSo it seems we either need to do this, and should probably strip any trailing slashes from ${url} for good measure -- or do the opposite; keep the trailing ${name}/ and ensure ${url} has a trailing slash.\n\nNot sure which is better?","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"07200888027bf5bdfcaf8c248651b0787eba08d2","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"c1eb13d8_5c3c1abc","line":306,"in_reply_to":"328115ad_410dbcf0","updated":"2021-09-28 07:48:42.000000000","message":"We can add a redirect from /placement to /placement/ but I\u0027m not sure about that being a breaking change. The API is defined starting with /, /placement is just a prefix to that so the contract is still valid.","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"199912ef02e24570976aa13f80c21fa1bb45f5e2","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"328115ad_410dbcf0","line":306,"in_reply_to":"4bc88e77_c74ad335","updated":"2021-09-28 07:35:46.000000000","message":"Agreed with Gibi, the endpoint should not have a trailed slash for getting the WSGI app.","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3f4e1c36ee4e8c1fdd3601773aa8a786a0de1839","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"4bc88e77_c74ad335","line":306,"in_reply_to":"65b3fb18_c1d7aae4","updated":"2021-09-28 07:29:56.000000000","message":"I think we need to use the \u0027/placement\u0027 variant to allow GET http://\u003cip\u003e/placement to be routed to the placement app. As far as I see if we use \u0027/placement/\u0027 variant then GET \u003cip\u003e/placement is not routed and that would be a breaking API change.","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"35f35c0db26fdb598f85332d4bb1a8eb71986347","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"94253a4a_f004434b","line":306,"in_reply_to":"6c7ca892_0c5cd9ea","updated":"2021-09-28 11:20:49.000000000","message":"It seems that the trailing / case breaks keystone in devstack https://zuul.opendev.org/t/openstack/build/36e95d6ba37f4c58891ce6d254518a1f/log/job-output.txt#15671","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"542847d2a8f6a836d10ab6da3977c472cae6e8e4","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"e910bb08_1e92193b","line":306,"in_reply_to":"c1eb13d8_5c3c1abc","updated":"2021-09-28 10:01:15.000000000","message":"Does somebody want to propose a final change?  Personally I think the / variant because it seems sane and matches [1].  IMO we should either reject a ${url} without a trailing slash or just add one if missing.\n\n[1] https://uwsgi-docs.readthedocs.io/en/latest/Apache.html#mod-proxy-uwsgi","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"765608280d91f5a429bb2f30df889f9eac83c671","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"d0304511_405bbef4","line":306,"in_reply_to":"c1eb13d8_5c3c1abc","updated":"2021-09-28 08:23:38.000000000","message":"Hm, now I looked at it from the perspective how nova works. Right now both \nhttp://\u003cip\u003e/compute and http://\u003c\u003e/compute/ is routed to the app and result in the version document returned. \n\nAlso I\u0027ve checked and placement before the Apache change worked the same way as nova. \n\nI withdraw my argument about API correctness as you are right Radoslaw, we are defining our API as simply starting with \u0027/\u0027 so based on that \u0027any-prefix/\u0027 is correct but \u0027any-prefix\u0027 is not correct.  Still I\u0027m wondering if want to start rejecting \u0027any-prefix\u0027 now, and for placement only.","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fd2a5c8f2329016df532ce0cc97f812eb05ce904","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"65b3fb18_c1d7aae4","line":306,"in_reply_to":"d757bed0_d6f8e8b8","updated":"2021-09-28 07:13:15.000000000","message":"To flesh this out, I\u0027ve tried with both\n\n ProxyPass \"/placement/\" \"unix:/var/run/uwsgi/placement-api.socket|uwsgi://uwsgi-uds-placement-api/\" retry\u003d0 \n\nand\n\n ProxyPass \"/placement\" \"unix:/var/run/uwsgi/placement-api.socket|uwsgi://uwsgi-uds-placement-api\" retry\u003d0 \n\nand both appear to work with the latest Apache (104.130.219.63 is the held node where I was playing with this; feel free to poke).\n\nI\u0027m not sure which is the better format to enforce here?  Flip a coin?","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"dbfea964027b527c90a4d7693825679af7baa45d","unresolved":true,"context_lines":[{"line_number":303,"context_line":"        apache_conf\u003d$(apache_site_config_for $name)"},{"line_number":304,"context_line":"        iniset \"$file\" uwsgi socket \"$socket\""},{"line_number":305,"context_line":"        iniset \"$file\" uwsgi chmod-socket 666"},{"line_number":306,"context_line":"        echo \"ProxyPass \\\"${url}\\\" \\\"unix:${socket}|uwsgi://uwsgi-uds-${name}\\\" retry\u003d0 \" | sudo tee -a $apache_conf"},{"line_number":307,"context_line":"        enable_apache_site $name"},{"line_number":308,"context_line":"        restart_apache_server"},{"line_number":309,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"6c7ca892_0c5cd9ea","line":306,"in_reply_to":"e910bb08_1e92193b","updated":"2021-09-28 10:14:30.000000000","message":"I proposed https://review.opendev.org/c/openstack/devstack/+/811389 on Xena that does the / appending.  Not attached to it so please upload over it, etc. as required.  I figure we can cherry-pick it to master","commit_id":"5db84b342fb4ca2834e6024c39388d897756c3a0"}]}
