)]}'
{"doc/source/install/from-pypi.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5d24660c4862a1148e343303833443401044a087","unresolved":false,"context_lines":[{"line_number":97,"context_line":"The default location of the placement configuration file is"},{"line_number":98,"context_line":"``/etc/placement/placement.conf``. A different directory may be chosen by"},{"line_number":99,"context_line":"setting ``OS_PLACEMENT_CONFIG_DIR`` in the environment. It is also possible to"},{"line_number":100,"context_line":"run the service with a partial or not configuration file and set some options"},{"line_number":101,"context_line":"in `the environment`_. See :doc:`/configuration/index` for additional"},{"line_number":102,"context_line":"configuration settings not mentioned here."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_091f0a08","line":100,"range":{"start_line":100,"start_character":34,"end_line":100,"end_character":37},"updated":"2019-03-18 19:08:42.000000000","message":"no","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5d24660c4862a1148e343303833443401044a087","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":151,"context_line":"     ``placement`` user in the Identity service."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * You may wish to set ``debug \u003d True`` at the top of the"},{"line_number":154,"context_line":"     configuration file, to get additional log information."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Populate the ``placement`` database:"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_e9e87ee2","line":154,"range":{"start_line":153,"start_character":5,"end_line":154,"end_character":59},"updated":"2019-03-18 19:08:42.000000000","message":"eh? What\u0027s this? Where is it documented?","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"18d9235e7af5df2f2c566787d063cccf575d6bc7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":151,"context_line":"     ``placement`` user in the Identity service."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * You may wish to set ``debug \u003d True`` at the top of the"},{"line_number":154,"context_line":"     configuration file, to get additional log information."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Populate the ``placement`` database:"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_7b60c236","line":154,"range":{"start_line":153,"start_character":5,"end_line":154,"end_character":59},"in_reply_to":"5fc1f717_3be55add","updated":"2019-03-19 14:55:59.000000000","message":"\u003e There\u0027s still the question of whether we should move the\n \u003e register_options under conf/*. Thoughts?\n\nDid this too, if you want it: https://review.openstack.org/#/c/644591/","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b7512d30d92dddb67b0b89ca3e69fcf98093c370","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":151,"context_line":"     ``placement`` user in the Identity service."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * You may wish to set ``debug \u003d True`` at the top of the"},{"line_number":154,"context_line":"     configuration file, to get additional log information."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Populate the ``placement`` database:"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_3be55add","line":154,"range":{"start_line":153,"start_character":5,"end_line":154,"end_character":59},"in_reply_to":"5fc1f717_5b25c6aa","updated":"2019-03-19 14:49:52.000000000","message":"That turned out to be easier than I thought [1].\n\nThere\u0027s still the question of whether we should move the register_options under conf/*. Thoughts?\n\n[1] https://review.openstack.org/#/c/644589/","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0c947b60f324228ffb603afb7f5a10f2d734e000","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":151,"context_line":"     ``placement`` user in the Identity service."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * You may wish to set ``debug \u003d True`` at the top of the"},{"line_number":154,"context_line":"     configuration file, to get additional log information."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Populate the ``placement`` database:"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_5b25c6aa","line":154,"range":{"start_line":153,"start_character":5,"end_line":154,"end_character":59},"in_reply_to":"5fc1f717_daa462a8","updated":"2019-03-19 14:34:36.000000000","message":"Dug into this. We\u0027re pulling in oslo.log options (including debug [1]) via [2]. So for one thing, we should probably be doing that in conf/__init__.py instead of in that method. And for another, we ought to be emitting those options in our genconfig, which I think means writing a list_opts() for them.\n\nI wrote a Story [3].\n\nIn the meantime, we might as well link to [1] here.\n\n[1] https://docs.openstack.org/oslo.log/latest/configuration/index.html#DEFAULT.debug\n[2] https://github.com/openstack/placement/blob/394dfadcb9cc8e7a65b816ac615f2c2aa257c4b1/placement/wsgi.py#L74\n[3] https://storyboard.openstack.org/#!/story/2005264","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"faaa0ca736f2865acb98be846f9c25fd20db45ec","unresolved":false,"context_lines":[{"line_number":150,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":151,"context_line":"     ``placement`` user in the Identity service."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"   * You may wish to set ``debug \u003d True`` at the top of the"},{"line_number":154,"context_line":"     configuration file, to get additional log information."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Populate the ``placement`` database:"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_daa462a8","line":154,"range":{"start_line":153,"start_character":5,"end_line":154,"end_character":59},"in_reply_to":"5fc1f717_e9e87ee2","updated":"2019-03-18 21:08:58.000000000","message":"It\u0027s hard to say. I tried to link to :oslo.config:option:`debug` (or DEFAULT.debug) and it didn\u0027t work, but that\u0027s where it is. I think perhaps it is from oslo.logging.\n\nI considered leaving it out, but then the logs aren\u0027t very loggy...","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5d24660c4862a1148e343303833443401044a087","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        }"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"     Further interactions with the system can be made with osc-placement_."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":".. _PyPI: https://pypi.org"},{"line_number":231,"context_line":".. _pip: https://pypi.org/project/pip/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_49ac329e","line":228,"updated":"2019-03-18 19:08:42.000000000","message":"I feel like there should be some kind of wrap-up message here. \"Your placement service is now ready for blah blah blah. You can try it out by doing X, Y, or Z (links).\" etc.","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0c947b60f324228ffb603afb7f5a10f2d734e000","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        }"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"     Further interactions with the system can be made with osc-placement_."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":".. _PyPI: https://pypi.org"},{"line_number":231,"context_line":".. _pip: https://pypi.org/project/pip/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_9b500e0d","line":228,"in_reply_to":"5fc1f717_1ae50adc","updated":"2019-03-19 14:34:36.000000000","message":"Just something generic to let them know they\u0027ve reached the end of the article.\n\n\"Congratulations, your placement service is now ready for... whatever use you have planned for it.\"","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"faaa0ca736f2865acb98be846f9c25fd20db45ec","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        }"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"     Further interactions with the system can be made with osc-placement_."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":""},{"line_number":230,"context_line":".. _PyPI: https://pypi.org"},{"line_number":231,"context_line":".. _pip: https://pypi.org/project/pip/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_1ae50adc","line":228,"in_reply_to":"5fc1f717_49ac329e","updated":"2019-03-18 21:08:58.000000000","message":"That\u0027s why I did the `curl [...]` It\u0027s hard to know what else to do that doesn\u0027t simply recapitulate other docs. I could link somewhere else, but I\u0027m not sure where.","commit_id":"f33b223c7bf2fcf08fa9345bfbb6b03d3acdb899"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"b6a0a4746bbb402611f7c645ddb116d37698a20f","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Prerequisites"},{"line_number":27,"context_line":"-------------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Before installing the service, create the database, service credentials and API"},{"line_number":30,"context_line":"endpoints."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"If you haven\u0027t already done so, install the ``openstack`` command line tool:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_3ba31a03","line":30,"range":{"start_line":29,"start_character":0,"end_line":30,"end_character":10},"updated":"2019-03-19 14:36:49.000000000","message":"It might help to mention that the details on carrying out these steps are in the section below. Otherwise, a newcomer might wonder what the hell they are supposed to do when they get to this line.\n\nI would prefer to see the openstackclient mentioned first, followed by:\n\n  Before installing the service, you will need to create the database, service credentials, and API endpoints, as described in the following sections.","commit_id":"3f2279d23caf4bf730a79e48f001a82295363337"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"up and running before starting services that use it but after services it uses."},{"line_number":19,"context_line":"That means after Keystone_, but before anything else."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"If you are not in an OpenStack environment, you can skip the steps below that"},{"line_number":22,"context_line":"establish service credentials and endpoints and configure the"},{"line_number":23,"context_line":":oslo.config:option:`api.auth_strategy` setting with a value of ``noauth2``."},{"line_number":24,"context_line":"See also :doc:`/contributor/quick-dev`."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Prerequisites"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_61b490f3","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":76},"updated":"2019-03-19 17:01:20.000000000","message":"I would move this into the note in the section below because...","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":18,"context_line":"up and running before starting services that use it but after services it uses."},{"line_number":19,"context_line":"That means after Keystone_, but before anything else."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"If you are not in an OpenStack environment, you can skip the steps below that"},{"line_number":22,"context_line":"establish service credentials and endpoints and configure the"},{"line_number":23,"context_line":":oslo.config:option:`api.auth_strategy` setting with a value of ``noauth2``."},{"line_number":24,"context_line":"See also :doc:`/contributor/quick-dev`."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Prerequisites"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_8a12f1b3","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":76},"in_reply_to":"5fc1f717_61b490f3","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Prerequisites"},{"line_number":27,"context_line":"-------------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If you haven\u0027t already done so, install the ``openstack`` command line tool:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_61e570dc","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":14},"updated":"2019-03-19 17:01:20.000000000","message":"Avoid contractions in docs for non-native English speakers.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Prerequisites"},{"line_number":27,"context_line":"-------------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If you haven\u0027t already done so, install the ``openstack`` command line tool:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_4a8169c3","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":14},"in_reply_to":"5fc1f717_61e570dc","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   # pip install openstackclient"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Before installing the service, you will need to create the database, service"},{"line_number":36,"context_line":"credentials, and API endpoints, as described in the following sections."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_61fed06c","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":32},"updated":"2019-03-19 17:01:20.000000000","message":"python-openstackclient right?\n\nhttps://pypi.org/project/python-openstackclient/","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2e3a2faada4d5978d7468db2731eb06ea55af6cd","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   # pip install openstackclient"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Before installing the service, you will need to create the database, service"},{"line_number":36,"context_line":"credentials, and API endpoints, as described in the following sections."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_84eaeaa9","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":32},"in_reply_to":"5fc1f717_449e4255","updated":"2019-03-19 17:06:27.000000000","message":"Oh wait, no, you don\u0027t want that, it\u0027s a really old version of OSC.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8ab45b03e8eb27c56ba2767e8e70782bcbebd57c","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   # pip install openstackclient"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Before installing the service, you will need to create the database, service"},{"line_number":36,"context_line":"credentials, and API endpoints, as described in the following sections."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_449e4255","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":32},"in_reply_to":"5fc1f717_61fed06c","updated":"2019-03-19 17:05:49.000000000","message":"I guess this also works, just verified it.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   # pip install openstackclient"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Before installing the service, you will need to create the database, service"},{"line_number":36,"context_line":"credentials, and API endpoints, as described in the following sections."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_2a689d1f","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":32},"in_reply_to":"5fc1f717_84eaeaa9","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   # pip install openstackclient"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Before installing the service, you will need to create the database, service"},{"line_number":36,"context_line":"credentials, and API endpoints, as described in the following sections."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_84a2ea4a","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":32},"in_reply_to":"5fc1f717_84eaeaa9","updated":"2019-03-19 17:21:16.000000000","message":"There\u0027s both? ugh. how. what. argh. the older one was last released december last year,","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"here. It also works well with PostgreSQL and likely with many other databases"},{"line_number":43,"context_line":"supported by sqlalchemy_."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_c42b1280","line":45,"updated":"2019-03-19 17:01:20.000000000","message":"This is a knock against the other install docs as well, but this is the only numbered item in this \"Create Database\" section which creates unnecessary nesting, we should just remove this part and turn the bullets below into numbered items.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":42,"context_line":"here. It also works well with PostgreSQL and likely with many other databases"},{"line_number":43,"context_line":"supported by sqlalchemy_."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_6aed458a","line":45,"in_reply_to":"5fc1f717_c42b1280","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"25a82599d17b80a712d6d1df17a3cc5066ec8095","unresolved":false,"context_lines":[{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"     .. code-block:: console"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_a41286b3","line":48,"updated":"2019-03-19 17:11:39.000000000","message":"This is distro specific shenanigans, could be re-written with like a \"as the ``root`` user or by using ``sudo`` as appropriate\"","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"     .. code-block:: console"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_0a02813f","line":48,"in_reply_to":"5fc1f717_a41286b3","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"here. It also works well with PostgreSQL and likely with many other databases"},{"line_number":43,"context_line":"supported by sqlalchemy_."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"     .. code-block:: console"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # mysql"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Create the ``placement`` database:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"     .. code-block:: console"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        MariaDB [(none)]\u003e CREATE DATABASE placement;"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   * Grant proper access to the database:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"     .. code-block:: console"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027localhost\u0027 \\"},{"line_number":65,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":66,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027%\u0027 \\"},{"line_number":67,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"     Replace ``PLACEMENT_DBPASS`` with a suitable password."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Exit the database access client."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Configure User and Endpoints"},{"line_number":74,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_81865cdb","line":71,"range":{"start_line":45,"start_character":0,"end_line":71,"end_character":37},"updated":"2019-03-19 17:01:20.000000000","message":"This is pretty much boilerplate copy/paste from the obs/rdo/ubuntu install docs as well, the one difference being the obs and rdo docs say \"mysql -u root -p\" and ubuntu is just \"mysql\". We could follow up by splitting this out into intsall/shared/database.rst.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c91609a16614250ac4eda93df5183c9ef94aa0a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"here. It also works well with PostgreSQL and likely with many other databases"},{"line_number":43,"context_line":"supported by sqlalchemy_."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"     .. code-block:: console"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # mysql"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Create the ``placement`` database:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"     .. code-block:: console"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        MariaDB [(none)]\u003e CREATE DATABASE placement;"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   * Grant proper access to the database:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"     .. code-block:: console"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027localhost\u0027 \\"},{"line_number":65,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":66,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027%\u0027 \\"},{"line_number":67,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"     Replace ``PLACEMENT_DBPASS`` with a suitable password."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Exit the database access client."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Configure User and Endpoints"},{"line_number":74,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_af633fb1","line":71,"range":{"start_line":45,"start_character":0,"end_line":71,"end_character":37},"in_reply_to":"5fc1f717_81865cdb","updated":"2019-03-19 17:45:51.000000000","message":"For any of this \"could be split into a shared file\" stuff, feel free to just leave a todo code comment in the docs here as a marker.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":42,"context_line":"here. It also works well with PostgreSQL and likely with many other databases"},{"line_number":43,"context_line":"supported by sqlalchemy_."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. To create the database, complete these steps:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   * Use the database access client to connect to the database server"},{"line_number":48,"context_line":"     as the ``root`` user:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"     .. code-block:: console"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # mysql"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   * Create the ``placement`` database:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"     .. code-block:: console"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        MariaDB [(none)]\u003e CREATE DATABASE placement;"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"   * Grant proper access to the database:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"     .. code-block:: console"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027localhost\u0027 \\"},{"line_number":65,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":66,"context_line":"        MariaDB [(none)]\u003e GRANT ALL PRIVILEGES ON placement.* TO \u0027placement\u0027@\u0027%\u0027 \\"},{"line_number":67,"context_line":"          IDENTIFIED BY \u0027PLACEMENT_DBPASS\u0027;"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"     Replace ``PLACEMENT_DBPASS`` with a suitable password."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"   * Exit the database access client."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Configure User and Endpoints"},{"line_number":74,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_cafb1945","line":71,"range":{"start_line":45,"start_character":0,"end_line":71,"end_character":37},"in_reply_to":"5fc1f717_af633fb1","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Configure User and Endpoints"},{"line_number":74,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note:: If you are not using Keystone, you can skip this step."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. note:: You will need to authenticate to Keystone as an ``admin`` before"},{"line_number":79,"context_line":"          making these calls. There are many different ways to do this,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_a19fd863","line":76,"updated":"2019-03-19 17:01:20.000000000","message":"...this is not entirely true, because you\u0027d need to configure auth_strategy\u003dnoauth2 correct? So I\u0027d probably just move the wording from the intro to here.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":80,"context_line":"          depending on how your system was set up. If you do not have an"},{"line_number":81,"context_line":"          ``admin-openrc`` file, you will have something similar."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. warning:: These documents use an endpoint URL of ``http://controller:8778/``"},{"line_number":84,"context_line":"             as an example only. You should configure placement to use whatever"},{"line_number":85,"context_line":"             hostname and port works best for your environment. Using SSL on"},{"line_number":86,"context_line":"             the default port, with either a domain or path specific to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_217c481f","line":83,"range":{"start_line":83,"start_character":3,"end_line":83,"end_character":10},"updated":"2019-03-19 17:01:20.000000000","message":"Is warning too much here? Would \".. important::\" be better if you\u0027re trying to emphasize differently from a \u0027note\u0027 like the two above, but don\u0027t want to scare someone off with a warning.\n\nAlternatively, move this wording to the shared/endpoints.rst since it already mentions something like this:\n\nhttps://review.openstack.org/#/c/643919/7/doc/source/install/shared/endpoints.rst@56","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":80,"context_line":"          depending on how your system was set up. If you do not have an"},{"line_number":81,"context_line":"          ``admin-openrc`` file, you will have something similar."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. warning:: These documents use an endpoint URL of ``http://controller:8778/``"},{"line_number":84,"context_line":"             as an example only. You should configure placement to use whatever"},{"line_number":85,"context_line":"             hostname and port works best for your environment. Using SSL on"},{"line_number":86,"context_line":"             the default port, with either a domain or path specific to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_aa980d1b","line":83,"range":{"start_line":83,"start_character":3,"end_line":83,"end_character":10},"in_reply_to":"5fc1f717_217c481f","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":80,"context_line":"          depending on how your system was set up. If you do not have an"},{"line_number":81,"context_line":"          ``admin-openrc`` file, you will have something similar."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. warning:: These documents use an endpoint URL of ``http://controller:8778/``"},{"line_number":84,"context_line":"             as an example only. You should configure placement to use whatever"},{"line_number":85,"context_line":"             hostname and port works best for your environment. Using SSL on"},{"line_number":86,"context_line":"             the default port, with either a domain or path specific to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_04a83a75","line":83,"range":{"start_line":83,"start_character":3,"end_line":83,"end_character":10},"in_reply_to":"5fc1f717_217c481f","updated":"2019-03-19 17:21:16.000000000","message":"I didn\u0027t know .. important existed. Since it does, I agree that\u0027s better.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":115,"context_line":"#. Create the ``/etc/placement/placement.conf`` file and complete the following"},{"line_number":116,"context_line":"   actions:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   * Create a ``[placement_database]`` section and configure database access:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"     .. path /etc/placement/placement.conf"},{"line_number":121,"context_line":"     .. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_84818a4d","line":118,"updated":"2019-03-19 17:01:20.000000000","message":"nit: the bullets in here are also mostly boilerplate with the other install docs, so it\u0027s an opportunity to move that into a shared file.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":115,"context_line":"#. Create the ``/etc/placement/placement.conf`` file and complete the following"},{"line_number":116,"context_line":"   actions:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   * Create a ``[placement_database]`` section and configure database access:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"     .. path /etc/placement/placement.conf"},{"line_number":121,"context_line":"     .. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_0a87e1b8","line":118,"in_reply_to":"5fc1f717_84818a4d","updated":"2019-03-19 18:55:33.000000000","message":"marked as todo","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":133,"context_line":"     .. code-block:: ini"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        [api]"},{"line_number":136,"context_line":"        auth_strategy \u003d keystone"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_c49eb2b7","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":32},"updated":"2019-03-19 17:01:20.000000000","message":"Should we make this something like:\n\n  [api]\n  auth_strategy \u003d keystone  # use noauth2 if not using keystone\n\nSince it\u0027s mentioned above.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":133,"context_line":"     .. code-block:: ini"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        [api]"},{"line_number":136,"context_line":"        auth_strategy \u003d keystone"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_8a619114","line":136,"range":{"start_line":136,"start_character":8,"end_line":136,"end_character":32},"in_reply_to":"5fc1f717_c49eb2b7","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        auth_strategy \u003d keystone"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_64f1fe01","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":28},"updated":"2019-03-19 17:01:20.000000000","message":"Hmm, I didn\u0027t think we were actually supposed to use this are we? I thought this was a keystone v2 relic, and it\u0027s not in any of the other distribution-specific install docs.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c91609a16614250ac4eda93df5183c9ef94aa0a","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        auth_strategy \u003d keystone"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_cf6b2b83","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":28},"in_reply_to":"5fc1f717_24f8d67a","updated":"2019-03-19 17:45:51.000000000","message":"Sounds like yeah sure leave it:\n\n(12:02:52 PM) mriedem: lbragstad: we should avoid mentioning configuring services\u0027 [keystone_authtoken] section to use www_authenticate_uri yeah? that\u0027s a v2 relic right?\n(12:03:38 PM) cmurphy: no, www_authenticate_uri is required, not v2-specific\n(12:03:40 PM) lbragstad: www_authenticate_uri is a more descriptive of an old and confusing alternative we were using\n(12:03:58 PM) mriedem: hmm, ok, context: https://review.openstack.org/#/c/643938/5/doc/source/install/from-pypi.rst@139\n(12:04:51 PM) cmurphy: www_authenticate_uri and auth_url should both be set\n(12:07:47 PM) mriedem: hmm\n(12:07:56 PM) mriedem: we don\u0027t have www_authenticate_uri in any of the nova install docs,\n(12:08:02 PM) mriedem: or the placement install docs for the distro-based instructions\n(12:08:23 PM) mriedem: nor is it set by devstack http://logs.openstack.org/76/644576/1/check/tempest-full-py3/7769ef9/controller/logs/etc/placement/placement_conf.txt.gz\n(12:08:28 PM) mriedem: so it seems entirely optional\n(12:10:11 PM) cmurphy: well, it is kind of optional because of how openstackclient works\n(12:10:42 PM) cmurphy: what it does is if it doesn\u0027t see a token in the X-Auth-Token header it sets the WWW-Authenticate header in its response to the user\n(12:10:49 PM) cmurphy: to yell at them to go authenticate\n(12:11:09 PM) cmurphy: but most clients sidestep that and go to keystone first anyways","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        auth_strategy \u003d keystone"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_24f8d67a","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":28},"in_reply_to":"5fc1f717_64f1fe01","updated":"2019-03-19 17:21:16.000000000","message":"I\u0027ve struggled with this for a long time and can\u0027t seem to find a proper answer. It sounds like you are asking the keystone folk.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"},{"line_number":143,"context_line":"        project_domain_name \u003d default"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_c4d55245","line":140,"range":{"start_line":140,"start_character":19,"end_line":140,"end_character":42},"updated":"2019-03-19 17:01:20.000000000","message":"The other install docs use http://controller:5000/v3 for this. Does that suffix matter? I guess not given what\u0027s used in devstack:\n\nhttp://logs.openstack.org/76/644576/1/check/tempest-full-py3/7769ef9/controller/logs/etc/placement/placement_conf.txt.gz\n\n[keystone_authtoken]\nmemcached_servers \u003d localhost:11211\nsigning_dir \u003d /var/cache/placement\ncafile \u003d /opt/stack/data/ca-bundle.pem\nproject_domain_name \u003d Default\nproject_name \u003d service\nuser_domain_name \u003d Default\npassword \u003d secretservice\nusername \u003d placement\nauth_url \u003d https://10.209.35.230/identity\nauth_type \u003d password\n\nI\u0027m assuming that auth_url is in the docs though because of how the keystone install guide is written?\n\nhttps://docs.openstack.org/keystone/latest/install/keystone-verify-ubuntu.html\n\nyeah: openstack --os-auth-url http://controller:5000/v3\n\nSo it\u0027d be good to match that for consistency.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c91609a16614250ac4eda93df5183c9ef94aa0a","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"},{"line_number":143,"context_line":"        project_domain_name \u003d default"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_4f265b6b","line":140,"range":{"start_line":140,"start_character":19,"end_line":140,"end_character":42},"in_reply_to":"5fc1f717_243d362c","updated":"2019-03-19 17:45:51.000000000","message":"Yeah let\u0027s leave it unversioned (auth_url that is).\n\n\"The keystone host (used for ``auth_url`` and ``www_authenticate_uri``) should be the unversioned public endpoint for the Identity service.\" at the top is also useful because I used \"openstack catalog list\" to get the public keystone endpoint to use in the configuration.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        [keystone_authtoken]"},{"line_number":139,"context_line":"        www_authenticate_uri \u003d http://controller:5000/"},{"line_number":140,"context_line":"        auth_url \u003d http://controller:5000/"},{"line_number":141,"context_line":"        memcached_servers \u003d controller:11211"},{"line_number":142,"context_line":"        auth_type \u003d password"},{"line_number":143,"context_line":"        project_domain_name \u003d default"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_243d362c","line":140,"range":{"start_line":140,"start_character":19,"end_line":140,"end_character":42},"in_reply_to":"5fc1f717_c4d55245","updated":"2019-03-19 17:21:16.000000000","message":"and on this too\n\nOne of the things I was trying to do when making this doc was \"be more correct than the (other) install docs which are old and stale\" (if that\u0027s in fact the case) so that we have something to reference when correcting those things.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d2c1e9ab33fa0300ba59bc932067b6f59c2af824","unresolved":false,"context_lines":[{"line_number":149,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":150,"context_line":"     ``placement`` user in the Identity service."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"   * You may wish to set the :oslo.config:option:`debug` option to ``True`` to"},{"line_number":153,"context_line":"     produce more verbose log output."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"#. Populate the ``placement`` database:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_213f68b6","line":152,"range":{"start_line":152,"start_character":29,"end_line":152,"end_character":56},"updated":"2019-03-19 16:12:58.000000000","message":"I think this will fail to build until https://review.openstack.org/644589 merges","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"dd71cc8feca1759038735f5be09f8895d0f3db1e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"     Replace ``PLACEMENT_PASS`` with the password you chose for the"},{"line_number":150,"context_line":"     ``placement`` user in the Identity service."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"   * You may wish to set the :oslo.config:option:`debug` option to ``True`` to"},{"line_number":153,"context_line":"     produce more verbose log output."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"#. Populate the ``placement`` database:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_e4b64e3f","line":152,"range":{"start_line":152,"start_character":29,"end_line":152,"end_character":56},"in_reply_to":"5fc1f717_213f68b6","updated":"2019-03-19 16:48:37.000000000","message":"I\u0027m hoping the depends-on will help that go.\n\nI used a depends on instead of stacking commits because I was already in the middle of a rebase while running through the changes and in repo depends-on is a perfectly legit last I checked.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   .. note:: An alternative is to use the"},{"line_number":162,"context_line":"             :oslo.config:option:`placement_database.sync_on_startup` option."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"#. Perform status checks to make sure everything is in order:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   .. code-block:: console"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"      $ placement-status upgrade check"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Finalize installation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_64581efa","line":168,"range":{"start_line":164,"start_character":0,"end_line":168,"end_character":38},"updated":"2019-03-19 17:01:20.000000000","message":"We should move this to install/verify.rst and then that can be our bare minimum verification step.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   .. note:: An alternative is to use the"},{"line_number":162,"context_line":"             :oslo.config:option:`placement_database.sync_on_startup` option."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"#. Perform status checks to make sure everything is in order:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   .. code-block:: console"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"      $ placement-status upgrade check"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Finalize installation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_c41792a3","line":168,"range":{"start_line":164,"start_character":0,"end_line":168,"end_character":38},"in_reply_to":"5fc1f717_64581efa","updated":"2019-03-19 17:21:16.000000000","message":"Is that enough? I hadn\u0027t done that because it seemed so...lame","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c91609a16614250ac4eda93df5183c9ef94aa0a","unresolved":false,"context_lines":[{"line_number":161,"context_line":"   .. note:: An alternative is to use the"},{"line_number":162,"context_line":"             :oslo.config:option:`placement_database.sync_on_startup` option."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"#. Perform status checks to make sure everything is in order:"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   .. code-block:: console"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"      $ placement-status upgrade check"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Finalize installation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_afbfbfce","line":168,"range":{"start_line":164,"start_character":0,"end_line":168,"end_character":38},"in_reply_to":"5fc1f717_c41792a3","updated":"2019-03-19 17:45:51.000000000","message":"It\u0027s more than the TODO that is there now :)\n\nHonestly the finalize installation step of curling and such is also post-install verify step kind of stuff, so IDK, that could also be moved if we wanted - or verify could simply be something like install osc-placement and list resource providers - of which there may be none but it at least shows the auth and policy stuff is working, and the DB for that matter.\n\nAs for *this* change, feel free to just leave this in here for now and we can cross that bridge when someone documents the verify doc.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":177,"context_line":"web servers and many ways to manage them, such things are outside the scope of"},{"line_number":178,"context_line":"this document."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"#. Install and run the web server:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"   * Install the ``uwsgi`` package (these instructions are against version"},{"line_number":183,"context_line":"     2.0.18):"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_44f402d0","line":180,"updated":"2019-03-19 17:01:20.000000000","message":"Like the \"Configure Database\" nit above, this doesn\u0027t really need to be a numbered list at this level since it\u0027s the only item in the list, there is no 2. ...\n\nSo maybe just remove this and make the bullet items below into numbered items.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"951819599cd2a13a7c0193d5f8161b5140259967","unresolved":false,"context_lines":[{"line_number":177,"context_line":"web servers and many ways to manage them, such things are outside the scope of"},{"line_number":178,"context_line":"this document."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"#. Install and run the web server:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"   * Install the ``uwsgi`` package (these instructions are against version"},{"line_number":183,"context_line":"     2.0.18):"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_6a3ea5db","line":180,"in_reply_to":"5fc1f717_44f402d0","updated":"2019-03-19 18:55:33.000000000","message":"Done","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"97cbf678c6382523b15c606138f2285c82c6b0aa","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"     .. code-block:: console"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # uwsgi -M --http :80 --wsgi-file /usr/local/bin/placement-api \\"},{"line_number":197,"context_line":"                --processes 2 --threads 10"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"   * In another terminal confirm the server is running using ``curl``:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_84174a52","line":196,"updated":"2019-03-19 17:23:12.000000000","message":"I\u0027m getting this error:\n\n$ sudo uwsgi -M --http :80 --wsgi-file /usr/local/bin/placement-api \\\n\u003e         --processes 2 --threads 10\nuwsgi: option \u0027--http\u0027 is ambiguous; possibilities: \u0027--http-socket\u0027 \u0027--http-socket-modifier1\u0027 \u0027--http-socket-modifier2\u0027 \u0027--https-socket\u0027 \u0027--https-socket-modifier1\u0027 \u0027--https-socket-modifier2\u0027\ngetopt_long() error\n\n\n\nstack@devstack:~/devstack$ pip show uwsgi\nName: uWSGI\nVersion: 2.0.18\nSummary: The uWSGI server\nHome-page: https://uwsgi-docs.readthedocs.io/en/latest/\nAuthor: Unbit\nAuthor-email: info@unbit.it\nLicense: GPLv2+\nLocation: /usr/local/lib/python2.7/dist-packages\nRequires: \nYou are using pip version 9.0.3, however version 19.0.3 is available.\nYou should consider upgrading via the \u0027pip install --upgrade pip\u0027 command.\nstack@devstack:~/devstack$ which uwsgi\n/usr/local/bin/uwsgi\nstack@devstack:~/devstack$","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2dd4c89ca6a101bd947be31d795e6eb131bc0da1","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"     .. code-block:: console"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # uwsgi -M --http :80 --wsgi-file /usr/local/bin/placement-api \\"},{"line_number":197,"context_line":"                --processes 2 --threads 10"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"   * In another terminal confirm the server is running using ``curl``:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_cf1a4b6e","line":196,"in_reply_to":"5fc1f717_84174a52","updated":"2019-03-19 17:24:19.000000000","message":"And then this:\n\nstack@devstack:~/devstack$ sudo uwsgi -M --http-socket :80 --wsgi-file /usr/local/bin/placement-api         --processes 2 --threads 10\nuwsgi: unrecognized option \u0027--wsgi-file\u0027\ngetopt_long() error","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"08b7c3214b7b22a1fcca5d3ca30b9825957c873e","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"     .. code-block:: console"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        # uwsgi -M --http :80 --wsgi-file /usr/local/bin/placement-api \\"},{"line_number":197,"context_line":"                --processes 2 --threads 10"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"   * In another terminal confirm the server is running using ``curl``:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_afec9f29","line":196,"in_reply_to":"5fc1f717_cf1a4b6e","updated":"2019-03-19 17:32:23.000000000","message":"Anyway, running with the fully qualified /usr/local/bin/uwsgi fixed it. The :80 is a bit misleading as well because keystone is already running on that in my setup I think. Following the \"Configure User and Endpoints\" docs I\u0027m using 8778 for placement so I\u0027d suggest you be consistent here and use --http :8778.","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24eaa37f12a88b31f791b5e3c958219cf3c65cd0","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"     .. code-block:: console"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        $ curl http://localhost/"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"     The output will look something like this:"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_e4196e22","line":203,"range":{"start_line":203,"start_character":15,"end_line":203,"end_character":32},"updated":"2019-03-19 17:01:20.000000000","message":"Would it be better to use \"http://controller:8778\" here to match the endpoint created above?","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c91609a16614250ac4eda93df5183c9ef94aa0a","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"     .. code-block:: console"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        $ curl http://localhost/"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"     The output will look something like this:"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_cf756b34","line":203,"range":{"start_line":203,"start_character":15,"end_line":203,"end_character":32},"in_reply_to":"5fc1f717_24545654","updated":"2019-03-19 17:45:51.000000000","message":"OK, that\u0027s fair, I had to use http://controller:8778 since that\u0027s what I setup in the service catalog, but whatever. Another option to have both is say something like:\n\n# The URL here should match the public endpoint setup in the \"Configure User and Endpoints\" section.\n$ curl http://localhost/","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"22bd161a4e8512fc84abdd88187b5bf90ec8d733","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"     .. code-block:: console"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        $ curl http://localhost/"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"     The output will look something like this:"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_24545654","line":203,"range":{"start_line":203,"start_character":15,"end_line":203,"end_character":32},"in_reply_to":"5fc1f717_e4196e22","updated":"2019-03-19 17:21:16.000000000","message":"I _hate_ and think completely wrong the use of the :8778 (or any non default port). It\u0027s a thing we\u0027ve been talking about fixing for all the years I\u0027ve been in the show, which is why I made that big warning above.\n\nI didn\u0027t, however, want to change the endpoints include document because that\u0027s based off whatever the packagers do, and they historically have continued with the bad way.\n\nOn the other hand, the packagers aren\u0027t reading my emails, so... dunno","commit_id":"5913f93abc957e96fff594fd094fd43b5ba2733e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d61350f30b755cce1cd41f5c6d43eac1facd01af","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"   Replace ``PLACEMENT_DBPASS`` with a suitable password."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Exit the database access client."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. _configure-endpoints-pypi:"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_5044bc74","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":1},"updated":"2019-03-19 20:18:05.000000000","message":"Either change to #. or drop the item format.","commit_id":"057dc23897631af2ecfea82537a47233371daec2"}]}
