)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3dd8d2899284638e16b5fc1822871750ef1300e2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to provide additional links to information and reflect the fact that"},{"line_number":11,"context_line":"placement is now using uwsgi and mod_proxy_uwsgi in devstack. This"},{"line_number":12,"context_line":"does not provide a full set of installations instructions. This is"},{"line_number":13,"context_line":"somewhat intentional:"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"* there are many ways to deploy a wsgi application and we\u0027d like the"},{"line_number":16,"context_line":"  packagers and deployers to choose a way that works best for them,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df140735_f75ff7e2","line":13,"updated":"2017-05-30 10:50:33.000000000","message":"I\u0027m happy to provide a full set of instructions if a) we deem that\u0027s the right thing to do, b) can choose which scenario we want to document, c) I\u0027m on a network where I can set it up and confirm it (which I\u0027m not, right now).","commit_id":"7c456a08c7c0f0dc4efa4f50f69dd5516bbede66"}],"doc/source/placement.rst":[{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"8d44df1193b909e393502a4bd6b5cc23e0503ec8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"already have the placement API code, you just need to install the service."},{"line_number":75,"context_line":"Nova provides a ``nova-placement-api`` WSGI script for running the service"},{"line_number":76,"context_line":"with Apache. Depending on what packaging solution is used this may"},{"line_number":77,"context_line":"be in ``/usr/bin`` or ``/usr/local/bin``."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note:: The placement API service is currently developed within Nova but"},{"line_number":80,"context_line":"        it is designed to be as separate as possible from the existing code so"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f0e0f27_06dca472","line":77,"updated":"2017-06-09 10:25:09.000000000","message":"Are those only places script can be? Somewhere in PATH maybe?\n\nIn nova-placement-api there is option to run as a standalone server with wsgiref.simple_server. Do you think it\u0027s worth to mention difference between other scripts like nova-api, nova-compute?","commit_id":"7c456a08c7c0f0dc4efa4f50f69dd5516bbede66"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"8d44df1193b909e393502a4bd6b5cc23e0503ec8","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. note:: When using uwsgi with a front end (e.g., apache2 or nginx)"},{"line_number":115,"context_line":"          something needs to ensure that the uwsgi process is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f0e0f27_26a32852","line":112,"updated":"2017-06-09 10:25:09.000000000","message":"++ to have these links","commit_id":"7c456a08c7c0f0dc4efa4f50f69dd5516bbede66"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"8d44df1193b909e393502a4bd6b5cc23e0503ec8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"possible to deploy as many servers as desired behind a load balancer,"},{"line_number":124,"context_line":"round-robin DNS, or many other scenarios for robust and simple scaling. If you"},{"line_number":125,"context_line":"familiarize yourself with installing generic WSGI applications (using the links"},{"line_number":126,"context_line":"in the common scenarios list, above), those techniques will be applicable here."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. _apache2: http://httpd.apache.org/"},{"line_number":129,"context_line":".. _mod_wsgi: https://modwsgi.readthedocs.io/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f0e0f27_0624a4c5","line":126,"updated":"2017-06-09 10:25:09.000000000","message":"Some people are just looking for a recommended way and a couple of examples. I believe community should find out that way and describe it here. IMO for \"from scratch\" installation it\u0027s nginx + uwsgi server.","commit_id":"7c456a08c7c0f0dc4efa4f50f69dd5516bbede66"}],"doc/source/user/placement.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"REST API code (nova-api). So once you have upgraded nova-api to Newton you"},{"line_number":74,"context_line":"already have the placement API code, you just need to install the service."},{"line_number":75,"context_line":"Nova provides a ``nova-placement-api`` WSGI script for running the service"},{"line_number":76,"context_line":"with Apache. Depending on what packaging solution is used this may"},{"line_number":77,"context_line":"be in ``/usr/bin`` or ``/usr/local/bin``."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note:: The placement API service is currently developed within Nova but"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_4b932b5c","line":76,"range":{"start_line":76,"start_character":5,"end_line":76,"end_character":11},"updated":"2017-09-28 12:32:33.000000000","message":"a server such as Apache (nginx is also an option)","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"REST API code (nova-api). So once you have upgraded nova-api to Newton you"},{"line_number":74,"context_line":"already have the placement API code, you just need to install the service."},{"line_number":75,"context_line":"Nova provides a ``nova-placement-api`` WSGI script for running the service"},{"line_number":76,"context_line":"with Apache. Depending on what packaging solution is used this may"},{"line_number":77,"context_line":"be in ``/usr/bin`` or ``/usr/local/bin``."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note:: The placement API service is currently developed within Nova but"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_aea86d8b","line":76,"range":{"start_line":76,"start_character":5,"end_line":76,"end_character":11},"in_reply_to":"7f515b1d_4b932b5c","updated":"2017-09-28 13:13:22.000000000","message":"Done","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"REST API code (nova-api). So once you have upgraded nova-api to Newton you"},{"line_number":74,"context_line":"already have the placement API code, you just need to install the service."},{"line_number":75,"context_line":"Nova provides a ``nova-placement-api`` WSGI script for running the service"},{"line_number":76,"context_line":"with Apache. Depending on what packaging solution is used this may"},{"line_number":77,"context_line":"be in ``/usr/bin`` or ``/usr/local/bin``."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note:: The placement API service is currently developed within Nova but"},{"line_number":80,"context_line":"        it is designed to be as separate as possible from the existing code so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_0b99b377","line":77,"range":{"start_line":76,"start_character":12,"end_line":77,"end_character":41},"updated":"2017-09-28 12:32:33.000000000","message":"This seems irrelevant. I\u0027d expect users to know what Apache is, or at least go find some DigitalOceans article on it","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"REST API code (nova-api). So once you have upgraded nova-api to Newton you"},{"line_number":74,"context_line":"already have the placement API code, you just need to install the service."},{"line_number":75,"context_line":"Nova provides a ``nova-placement-api`` WSGI script for running the service"},{"line_number":76,"context_line":"with Apache. Depending on what packaging solution is used this may"},{"line_number":77,"context_line":"be in ``/usr/bin`` or ``/usr/local/bin``."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":".. note:: The placement API service is currently developed within Nova but"},{"line_number":80,"context_line":"        it is designed to be as separate as possible from the existing code so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_cea729bd","line":77,"range":{"start_line":76,"start_character":12,"end_line":77,"end_character":41},"in_reply_to":"7f515b1d_0b99b377","updated":"2017-09-28 13:13:22.000000000","message":"the \"this\" is the wsgi script, I\u0027ll make that more clear\n\nThe fact that it ends up in those two locations is weird, and not what anyone doing wsgi from scratch would expect, so that why I called it out.\n\nBut the ambiguity is a problem, so I\u0027ll fix that.","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":87,"context_line":"scenarios. Common scenarios include:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* apache2_ with mod_wsgi_"},{"line_number":90,"context_line":"* apache2 with mod_proxy_uwsgi_"},{"line_number":91,"context_line":"* nginx_ with uwsgi_"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In all of these scenarios the host, port and mounting path (or"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_0b72d349","line":90,"range":{"start_line":90,"start_character":15,"end_line":90,"end_character":31},"updated":"2017-09-28 12:32:33.000000000","message":"nit: I know we use this in Devstack, but is this actually that common elsewhere? nginx+Gunicorn is the most referenced solution I\u0027ve seen when working on Django apps at least","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"scenarios. Common scenarios include:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* apache2_ with mod_wsgi_"},{"line_number":90,"context_line":"* apache2 with mod_proxy_uwsgi_"},{"line_number":91,"context_line":"* nginx_ with uwsgi_"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In all of these scenarios the host, port and mounting path (or"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_0ea781a9","line":90,"range":{"start_line":90,"start_character":15,"end_line":90,"end_character":31},"in_reply_to":"7f515b1d_0b72d349","updated":"2017-09-28 13:13:22.000000000","message":"It\u0027s increasingly common and proves to work very well, so I thought it best to mention it. nginx+uwsgi is by far the \"cool way\", but I\u0027ll add nginx+gunicorn because that is indeed common.","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"* apache2 with mod_proxy_uwsgi_"},{"line_number":91,"context_line":"* nginx_ with uwsgi_"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In all of these scenarios the host, port and mounting path (or"},{"line_number":94,"context_line":"prefix) of the application is controlled in the web server\u0027s"},{"line_number":95,"context_line":"configuration, not in the configuration (``nova.conf``) of the"},{"line_number":96,"context_line":"placement application."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"At the time of writing, devstack configures placement to use the"},{"line_number":99,"context_line":"mod_proxy_uwsgi_ method to host placement at ``/placement`` on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_ab817ffd","line":96,"range":{"start_line":93,"start_character":0,"end_line":96,"end_character":22},"updated":"2017-09-28 12:32:33.000000000","message":"nit: can you wrap this at ~79 chars","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"* apache2 with mod_proxy_uwsgi_"},{"line_number":91,"context_line":"* nginx_ with uwsgi_"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"In all of these scenarios the host, port and mounting path (or"},{"line_number":94,"context_line":"prefix) of the application is controlled in the web server\u0027s"},{"line_number":95,"context_line":"configuration, not in the configuration (``nova.conf``) of the"},{"line_number":96,"context_line":"placement application."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"At the time of writing, devstack configures placement to use the"},{"line_number":99,"context_line":"mod_proxy_uwsgi_ method to host placement at ``/placement`` on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_eeb9c5cb","line":96,"range":{"start_line":93,"start_character":0,"end_line":96,"end_character":22},"in_reply_to":"7f515b1d_ab817ffd","updated":"2017-09-28 13:13:22.000000000","message":"Done","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":95,"context_line":"configuration, not in the configuration (``nova.conf``) of the"},{"line_number":96,"context_line":"placement application."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"At the time of writing, devstack configures placement to use the"},{"line_number":99,"context_line":"mod_proxy_uwsgi_ method to host placement at ``/placement`` on"},{"line_number":100,"context_line":"either of the default ports for http or https (``80`` or ``443``)"},{"line_number":101,"context_line":"depending on whether TLS is being used. Using a default port is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_8b86c312","line":98,"range":{"start_line":98,"start_character":24,"end_line":98,"end_character":32},"updated":"2017-09-28 12:32:33.000000000","message":"DevStack","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"placement application."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"At the time of writing, devstack configures placement to use the"},{"line_number":99,"context_line":"mod_proxy_uwsgi_ method to host placement at ``/placement`` on"},{"line_number":100,"context_line":"either of the default ports for http or https (``80`` or ``443``)"},{"line_number":101,"context_line":"depending on whether TLS is being used. Using a default port is"},{"line_number":102,"context_line":"desirable."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_6bcdc764","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":16},"updated":"2017-09-28 12:32:33.000000000","message":"Huh? You say below that it was using \u0027mod_wsgi\u0027 but later moved to \u0027uswgi\u0027, but this says something different. Which is correct? Also, I imagine the two paragraphs could be merged","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"placement application."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"At the time of writing, devstack configures placement to use the"},{"line_number":99,"context_line":"mod_proxy_uwsgi_ method to host placement at ``/placement`` on"},{"line_number":100,"context_line":"either of the default ports for http or https (``80`` or ``443``)"},{"line_number":101,"context_line":"depending on whether TLS is being used. Using a default port is"},{"line_number":102,"context_line":"desirable."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_6efb9578","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":16},"in_reply_to":"7f515b1d_6bcdc764","updated":"2017-09-28 13:13:22.000000000","message":"using uwsgi with apache _is_ using \"mod_proxy_uwsgi\", uwsgi is a style of deployment with a variety of tools available\n\nbut yeah, I\u0027ll merge and simplify","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"depending on whether TLS is being used. Using a default port is"},{"line_number":102,"context_line":"desirable."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"By default the placement application will get its configuration for settings"},{"line_number":105,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":106,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":107,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_eb909745","line":104,"updated":"2017-09-28 12:32:33.000000000","message":",","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"depending on whether TLS is being used. Using a default port is"},{"line_number":102,"context_line":"desirable."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"By default the placement application will get its configuration for settings"},{"line_number":105,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":106,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":107,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_ce31695c","line":104,"in_reply_to":"7f515b1d_eb909745","updated":"2017-09-28 13:13:22.000000000","message":"Done","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":108,"context_line":"application."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_8b9b6364","line":110,"range":{"start_line":110,"start_character":58,"end_line":110,"end_character":66},"updated":"2017-09-28 12:32:33.000000000","message":"``mod_wsgi``","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":108,"context_line":"application."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_ab961f3d","line":110,"range":{"start_line":110,"start_character":19,"end_line":110,"end_character":45},"updated":"2017-09-28 12:32:33.000000000","message":"nit: You could also use anonymous references to make this a little cleaner looking.\n\n  `first added to DevStack`__\n\n  __ link-here","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":108,"context_line":"application."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_2e46bdc1","line":110,"range":{"start_line":110,"start_character":19,"end_line":110,"end_character":45},"in_reply_to":"7f515b1d_ab961f3d","updated":"2017-09-28 13:13:22.000000000","message":"I find that less clean, or at least more confusing","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. note:: When using uwsgi with a front end (e.g., apache2 or nginx)"},{"line_number":115,"context_line":"          something needs to ensure that the uwsgi process is"},{"line_number":116,"context_line":"          running. In devstack this is done with systemd_. This is"},{"line_number":117,"context_line":"          one of many different ways to manage uwsgi."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"This document refrains from declaring a set of installation instructions for"},{"line_number":120,"context_line":"the placement service. This is because a major point of having a WSGI"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_abe4dfe0","line":117,"range":{"start_line":113,"start_character":0,"end_line":117,"end_character":53},"updated":"2017-09-28 12:32:33.000000000","message":"nit: Any chance you could wrap this in one of the following manners, both of which are more typical in rST:\n\n  .. note:: Some text here...\n      which wraps onto the next line\n\n  .. note::\n\n      Some text here in its own block","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"When placement was `first added to devstack`_ it used the mod_wsgi"},{"line_number":111,"context_line":"style. Later it `was udpated`_ to use uwsgi. Looking at those"},{"line_number":112,"context_line":"changes can be useful for understanding the relevant options."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. note:: When using uwsgi with a front end (e.g., apache2 or nginx)"},{"line_number":115,"context_line":"          something needs to ensure that the uwsgi process is"},{"line_number":116,"context_line":"          running. In devstack this is done with systemd_. This is"},{"line_number":117,"context_line":"          one of many different ways to manage uwsgi."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"This document refrains from declaring a set of installation instructions for"},{"line_number":120,"context_line":"the placement service. This is because a major point of having a WSGI"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_ee15459d","line":117,"range":{"start_line":113,"start_character":0,"end_line":117,"end_character":53},"in_reply_to":"7f515b1d_abe4dfe0","updated":"2017-09-28 13:13:22.000000000","message":"sure if that\u0027s what\u0027s preferred","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01b957da798ea0e365a6feaddc30dceb8d8cb4f","unresolved":false,"context_lines":[{"line_number":120,"context_line":"the placement service. This is because a major point of having a WSGI"},{"line_number":121,"context_line":"application is to make the deployment as flexible as possible. Because the"},{"line_number":122,"context_line":"placement API service is itself stateless (all state is in the database) it is"},{"line_number":123,"context_line":"possible to deploy as many servers as desired behind a load balancer,"},{"line_number":124,"context_line":"round-robin DNS, or many other scenarios for robust and simple scaling. If you"},{"line_number":125,"context_line":"familiarize yourself with installing generic WSGI applications (using the links"},{"line_number":126,"context_line":"in the common scenarios list, above), those techniques will be applicable here."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_eb2c1703","line":124,"range":{"start_line":123,"start_character":53,"end_line":124,"end_character":40},"updated":"2017-09-28 12:32:33.000000000","message":"Let\u0027s simplify this:\n\n  a load-balancing solution","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"90a65da295d081d7e555a494338151a98cbd3d5e","unresolved":false,"context_lines":[{"line_number":120,"context_line":"the placement service. This is because a major point of having a WSGI"},{"line_number":121,"context_line":"application is to make the deployment as flexible as possible. Because the"},{"line_number":122,"context_line":"placement API service is itself stateless (all state is in the database) it is"},{"line_number":123,"context_line":"possible to deploy as many servers as desired behind a load balancer,"},{"line_number":124,"context_line":"round-robin DNS, or many other scenarios for robust and simple scaling. If you"},{"line_number":125,"context_line":"familiarize yourself with installing generic WSGI applications (using the links"},{"line_number":126,"context_line":"in the common scenarios list, above), those techniques will be applicable here."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f515b1d_6e2955e4","line":124,"range":{"start_line":123,"start_character":53,"end_line":124,"end_character":40},"in_reply_to":"7f515b1d_eb2c1703","updated":"2017-09-28 13:13:22.000000000","message":"Done","commit_id":"3ae3d8bc2a0cb8af1c093d937488eba7acaba687"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"have the placement API code, you just need to install the service.  Nova"},{"line_number":75,"context_line":"provides a ``nova-placement-api`` WSGI script for running the service with"},{"line_number":76,"context_line":"Apache, nginx or other WSGI-capable web servers. Depending on what packaging"},{"line_number":77,"context_line":"solution is used to deploy OpenStack, the WSGI script may be in ``/usr/bin``"},{"line_number":78,"context_line":"or ``/usr/local/bin``."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note:: The placement API service is currently developed within Nova but"},{"line_number":81,"context_line":"        it is designed to be as separate as possible from the existing code so"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_b17b3079","line":78,"range":{"start_line":77,"start_character":37,"end_line":78,"end_character":22},"updated":"2017-09-28 13:28:20.000000000","message":"ahhhh, much clearer","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        it is designed to be as separate as possible from the existing code so"},{"line_number":82,"context_line":"        that it can eventually be split into a separate project."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"``nova-placement-api``, as a standard WSGI script, provides a module"},{"line_number":85,"context_line":"level ``application`` attribute that most WSGI servers expect to"},{"line_number":86,"context_line":"find. This means it is possible to run it with lots of different"},{"line_number":87,"context_line":"servers, providing flexibility in the face of different deployment"},{"line_number":88,"context_line":"scenarios. Common scenarios include:"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* apache2_ with mod_wsgi_"},{"line_number":91,"context_line":"* apache2 with mod_proxy_uwsgi_"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_114fa434","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":36},"updated":"2017-09-28 13:28:20.000000000","message":"nit: this also could do with wrapping at ~79","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        it is designed to be as separate as possible from the existing code so"},{"line_number":82,"context_line":"        that it can eventually be split into a separate project."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"``nova-placement-api``, as a standard WSGI script, provides a module"},{"line_number":85,"context_line":"level ``application`` attribute that most WSGI servers expect to"},{"line_number":86,"context_line":"find. This means it is possible to run it with lots of different"},{"line_number":87,"context_line":"servers, providing flexibility in the face of different deployment"},{"line_number":88,"context_line":"scenarios. Common scenarios include:"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* apache2_ with mod_wsgi_"},{"line_number":91,"context_line":"* apache2 with mod_proxy_uwsgi_"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_7cec6f8e","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":36},"in_reply_to":"7f515b1d_114fa434","updated":"2017-09-28 14:19:29.000000000","message":"Done","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"application is controlled in the web server\u0027s configuration, not in the"},{"line_number":97,"context_line":"configuration (``nova.conf``) of the placement application."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When placement was `first added to devstack`_ it used the ``mod_wsgi`` style."},{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_b1f0d0fe","line":99,"range":{"start_line":99,"start_character":35,"end_line":99,"end_character":43},"updated":"2017-09-28 13:28:20.000000000","message":"DevStack","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"application is controlled in the web server\u0027s configuration, not in the"},{"line_number":97,"context_line":"configuration (``nova.conf``) of the placement application."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When placement was `first added to devstack`_ it used the ``mod_wsgi`` style."},{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_7ca10f46","line":99,"range":{"start_line":99,"start_character":35,"end_line":99,"end_character":43},"in_reply_to":"7f515b1d_b1f0d0fe","updated":"2017-09-28 14:19:29.000000000","message":"Done","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":97,"context_line":"configuration (``nova.conf``) of the placement application."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When placement was `first added to devstack`_ it used the ``mod_wsgi`` style."},{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"DevStack is configured to host placement at ``/placement`` on either of the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_51dbdc7a","line":100,"range":{"start_line":100,"start_character":14,"end_line":100,"end_character":21},"updated":"2017-09-28 13:28:20.000000000","message":"updated","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"configuration (``nova.conf``) of the placement application."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"When placement was `first added to devstack`_ it used the ``mod_wsgi`` style."},{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"DevStack is configured to host placement at ``/placement`` on either of the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_9cb5eb80","line":100,"range":{"start_line":100,"start_character":14,"end_line":100,"end_character":21},"in_reply_to":"7f515b1d_51dbdc7a","updated":"2017-09-28 14:19:29.000000000","message":"Done","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"DevStack is configured to host placement at ``/placement`` on either of the"},{"line_number":104,"context_line":"default ports for http or https (``80`` or ``443``) depending on whether TLS is"},{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_51499c2e","line":103,"range":{"start_line":103,"start_character":62,"end_line":103,"end_character":75},"updated":"2017-09-28 13:28:20.000000000","message":"this is a little ambiguous: I assume you mean it will use port 80 if TLS is not used, or 443 if it is? If so, maybe drop \u0027of\u0027 (\u0027either the default port for http...\u0027). If not, maybe clarify however you see best","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Later it `was udpated`_ to use mod_proxy_uwsgi_. Looking at those changes can"},{"line_number":101,"context_line":"be useful for understanding the relevant options."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"DevStack is configured to host placement at ``/placement`` on either of the"},{"line_number":104,"context_line":"default ports for http or https (``80`` or ``443``) depending on whether TLS is"},{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_bc3787ff","line":103,"range":{"start_line":103,"start_character":62,"end_line":103,"end_character":75},"in_reply_to":"7f515b1d_51499c2e","updated":"2017-09-28 14:19:29.000000000","message":"Done","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"By default, the placement application will get its configuration for settings"},{"line_number":108,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":109,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":110,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":111,"context_line":"application."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_b157b0ca","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":4},"updated":"2017-09-28 13:28:20.000000000","message":"I don\u0027t recall, but is this colloquial? Maybe \u0027such as\u0027, if so?","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"By default, the placement application will get its configuration for settings"},{"line_number":108,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":109,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":110,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":111,"context_line":"application."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_915cb4ed","line":108,"range":{"start_line":108,"start_character":67,"end_line":108,"end_character":76},"updated":"2017-09-28 13:28:20.000000000","message":"directory that","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"By default, the placement application will get its configuration for settings"},{"line_number":108,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":109,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":110,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":111,"context_line":"application."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_772488af","line":108,"range":{"start_line":108,"start_character":67,"end_line":108,"end_character":76},"in_reply_to":"7f515b1d_915cb4ed","updated":"2017-09-28 14:19:29.000000000","message":"that is redundant, say it out loud: \"the directory the configuration file will be found in\" versus \"the directory that the configuration file will be found in\"","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"being used. Using a default port is desirable."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"By default, the placement application will get its configuration for settings"},{"line_number":108,"context_line":"like the database connection URL from ``/etc/nova/nova.conf``. The directory"},{"line_number":109,"context_line":"the configuration file will be found in can be changed by setting"},{"line_number":110,"context_line":"``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the"},{"line_number":111,"context_line":"application."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_373a90cb","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":4},"in_reply_to":"7f515b1d_b157b0ca","updated":"2017-09-28 14:19:29.000000000","message":"yes, probably so","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ce4a6b67236d4dc02c3ab77d73be3fd9995bd6","unresolved":false,"context_lines":[{"line_number":117,"context_line":"This document refrains from declaring a set of installation instructions for"},{"line_number":118,"context_line":"the placement service. This is because a major point of having a WSGI"},{"line_number":119,"context_line":"application is to make the deployment as flexible as possible. Because the"},{"line_number":120,"context_line":"placement API service is itself stateless (all state is in the database) it is"},{"line_number":121,"context_line":"possible to deploy as many servers as desired behind a load balancing solution"},{"line_number":122,"context_line":"for robust and simple scaling. If you familiarize yourself with installing"},{"line_number":123,"context_line":"generic WSGI applications (using the links in the common scenarios list,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_f10648ce","line":120,"updated":"2017-09-28 13:28:20.000000000","message":",","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8ff6a5e6c117dd2aa35d9cfe8e39bebef30b7601","unresolved":false,"context_lines":[{"line_number":117,"context_line":"This document refrains from declaring a set of installation instructions for"},{"line_number":118,"context_line":"the placement service. This is because a major point of having a WSGI"},{"line_number":119,"context_line":"application is to make the deployment as flexible as possible. Because the"},{"line_number":120,"context_line":"placement API service is itself stateless (all state is in the database) it is"},{"line_number":121,"context_line":"possible to deploy as many servers as desired behind a load balancing solution"},{"line_number":122,"context_line":"for robust and simple scaling. If you familiarize yourself with installing"},{"line_number":123,"context_line":"generic WSGI applications (using the links in the common scenarios list,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_023070e7","line":120,"in_reply_to":"7f515b1d_574cec40","updated":"2017-09-28 14:42:31.000000000","message":"Aha, I\u0027m seeing the same here. I\u0027ll mark a word next time","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e20a3bc47c2008bbefa232d27d480e803b5972d3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"This document refrains from declaring a set of installation instructions for"},{"line_number":118,"context_line":"the placement service. This is because a major point of having a WSGI"},{"line_number":119,"context_line":"application is to make the deployment as flexible as possible. Because the"},{"line_number":120,"context_line":"placement API service is itself stateless (all state is in the database) it is"},{"line_number":121,"context_line":"possible to deploy as many servers as desired behind a load balancing solution"},{"line_number":122,"context_line":"for robust and simple scaling. If you familiarize yourself with installing"},{"line_number":123,"context_line":"generic WSGI applications (using the links in the common scenarios list,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f515b1d_574cec40","line":120,"in_reply_to":"7f515b1d_f10648ce","updated":"2017-09-28 14:19:29.000000000","message":"done\n\nbtw, in the way I\u0027m viewing gerrit I can\u0027t see where you mean for the comma to go, and I\u0027m having to guess","commit_id":"a53591f5189d3a32a86de8c9b7851602c02c6a7a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8ff6a5e6c117dd2aa35d9cfe8e39bebef30b7601","unresolved":false,"context_lines":[{"line_number":110,"context_line":"application."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":".. note:: When using uwsgi with a front end (e.g., apache2 or nginx) something"},{"line_number":113,"context_line":"    needs to ensure that the uwsgi process is running. In devstack this is done"},{"line_number":114,"context_line":"    with systemd_. This is one of many different ways to manage uwsgi."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This document refrains from declaring a set of installation instructions for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7f515b1d_623de4c2","line":113,"range":{"start_line":113,"start_character":58,"end_line":113,"end_character":66},"updated":"2017-09-28 14:42:31.000000000","message":"DevStack","commit_id":"ff46e3ccbe73f928351f840211d09f894a38b9c0"}]}
