)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f70299037aff8c2dc793758fcbd5b3ced7c80d61","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modify keystone content for Kilo as follows:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"1) Replace default eventlet front-end with Apache front-end"},{"line_number":12,"context_line":"   to provide a more production-style deployment."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"   * Disable keystone service from starting up automatically"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da9b358b_558f5e23","line":11,"updated":"2015-03-29 14:02:53.000000000","message":"this should be split up into separate commits so that it\u0027s easier to review.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modify keystone content for Kilo as follows:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"1) Replace default eventlet front-end with Apache front-end"},{"line_number":12,"context_line":"   to provide a more production-style deployment."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"   * Disable keystone service from starting up automatically"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da9b358b_691dd472","line":11,"in_reply_to":"da9b358b_558f5e23","updated":"2015-03-30 15:28:40.000000000","message":"I prefer one patch that results in an operational service.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"}],"doc/glossary/glossary-terms.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":2667,"context_line":"        \u003c/indexterm\u003e"},{"line_number":2668,"context_line":""},{"line_number":2669,"context_line":"      \u003cglossdef\u003e"},{"line_number":2670,"context_line":"        \u003cpara\u003eIn the Identity service, provides isolation between projects"},{"line_number":2671,"context_line":"          and tenants.\u003c/para\u003e"},{"line_number":2672,"context_line":"        \u003cpara\u003eOn the Internet, separates a website from other sites. Often,"},{"line_number":2673,"context_line":"          the domain name has two or more parts that are separated by dots."}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_a5049018","line":2670,"updated":"2015-03-25 17:12:23.000000000","message":"projects and tenants are the same thing.\n\ni would say: In the Identity service, provides isolation between projects, users and groups","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":2667,"context_line":"        \u003c/indexterm\u003e"},{"line_number":2668,"context_line":""},{"line_number":2669,"context_line":"      \u003cglossdef\u003e"},{"line_number":2670,"context_line":"        \u003cpara\u003eIn the Identity service, provides isolation between projects"},{"line_number":2671,"context_line":"          and tenants.\u003c/para\u003e"},{"line_number":2672,"context_line":"        \u003cpara\u003eOn the Internet, separates a website from other sites. Often,"},{"line_number":2673,"context_line":"          the domain name has two or more parts that are separated by dots."}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_2e595d8e","line":2670,"in_reply_to":"1a6ced46_a5049018","updated":"2015-03-25 17:56:13.000000000","message":"Whoops... fixed it.","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"51797145695bfde0c0d4f2d92b2b56f2d01b8ecd","unresolved":false,"context_lines":[{"line_number":2670,"context_line":"        \u003cpara\u003eIn the Identity service, provides isolation between projects"},{"line_number":2671,"context_line":"          and tenants.\u003c/para\u003e"},{"line_number":2672,"context_line":"        \u003cpara\u003eOn the Internet, separates a website from other sites. Often,"},{"line_number":2673,"context_line":"          the domain name has two or more parts that are separated by dots."},{"line_number":2674,"context_line":"          For example, yahoo.com, usa.gov, harvard.edu, or"},{"line_number":2675,"context_line":"          mail.yahoo.com.\u003c/para\u003e"},{"line_number":2676,"context_line":"        \u003cpara\u003eAlso, a domain is an entity or container of all DNS-related"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_480db136","line":2673,"updated":"2015-03-25 17:09:20.000000000","message":"\"dots\" or \"periods\"?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"}],"doc/install-guide/ch_keystone.xml":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"176625bba44e343e842f3618e4671759410cf1a1","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    \u003cxi:include href\u003d\"../common/section_keystone-concepts.xml\"/\u003e"},{"line_number":9,"context_line":"    \u003cxi:include href\u003d\"section_keystone-install.xml\"/\u003e"},{"line_number":10,"context_line":"    \u003cxi:include href\u003d\"section_keystone-services.xml\"/\u003e"},{"line_number":11,"context_line":"    \u003cxi:include href\u003d\"section_keystone-users.xml\"/\u003e"},{"line_number":12,"context_line":"    \u003cxi:include href\u003d\"section_keystone-verify.xml\"/\u003e"},{"line_number":13,"context_line":"    \u003cxi:include href\u003d\"section_keystone-openrc.xml\"/\u003e"},{"line_number":14,"context_line":"\u003c/chapter\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_2bf33ba0","line":11,"updated":"2015-03-30 16:58:09.000000000","message":"the first thing that you should do is create the admin user so that you can stop using the admin token.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"79d5ab9306855c68c57ddfcf222ac7589db2e05a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    \u003cxi:include href\u003d\"../common/section_keystone-concepts.xml\"/\u003e"},{"line_number":9,"context_line":"    \u003cxi:include href\u003d\"section_keystone-install.xml\"/\u003e"},{"line_number":10,"context_line":"    \u003cxi:include href\u003d\"section_keystone-services.xml\"/\u003e"},{"line_number":11,"context_line":"    \u003cxi:include href\u003d\"section_keystone-users.xml\"/\u003e"},{"line_number":12,"context_line":"    \u003cxi:include href\u003d\"section_keystone-verify.xml\"/\u003e"},{"line_number":13,"context_line":"    \u003cxi:include href\u003d\"section_keystone-openrc.xml\"/\u003e"},{"line_number":14,"context_line":"\u003c/chapter\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_ce63bdb0","line":11,"in_reply_to":"da9b358b_2bf33ba0","updated":"2015-03-30 17:11:43.000000000","message":"For consistency, I prefer to do all of the initialization tasks before disabling the admin token. I think adding the admin user, disabling the token, unsetting the OS_TOKEN variable, and resuming the process generates confusion.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"}],"doc/install-guide/section_keystone-install.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    \u003cstep\u003e"},{"line_number":275,"context_line":"      \u003cpara\u003eCreate the"},{"line_number":276,"context_line":"        \u003cfilename\u003e/etc/apache2/sites-available/wsgi-keystone.conf\u003c/filename\u003e"},{"line_number":277,"context_line":"        file with the following contents:\u003c/para\u003e"},{"line_number":278,"context_line":"      \u003cprogramlisting language\u003d\"apache\"\u003eListen 5000"},{"line_number":279,"context_line":"Listen 35357"},{"line_number":280,"context_line":""}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_e8601da7","line":277,"updated":"2015-03-25 17:12:23.000000000","message":"nit: content* singular?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    \u003cstep\u003e"},{"line_number":275,"context_line":"      \u003cpara\u003eCreate the"},{"line_number":276,"context_line":"        \u003cfilename\u003e/etc/apache2/sites-available/wsgi-keystone.conf\u003c/filename\u003e"},{"line_number":277,"context_line":"        file with the following contents:\u003c/para\u003e"},{"line_number":278,"context_line":"      \u003cprogramlisting language\u003d\"apache\"\u003eListen 5000"},{"line_number":279,"context_line":"Listen 35357"},{"line_number":280,"context_line":""}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_cef7e957","line":277,"in_reply_to":"1a6ced46_e8601da7","updated":"2015-03-25 17:56:13.000000000","message":"Done","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":278,"context_line":"      \u003cprogramlisting language\u003d\"apache\"\u003eListen 5000"},{"line_number":279,"context_line":"Listen 35357"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\u0026lt;VirtualHost *:5000\u003e"},{"line_number":282,"context_line":"    WSGIDaemonProcess keystone-public processes\u003d5 threads\u003d1 user\u003dkeystone display-name\u003d%{GROUP}"},{"line_number":283,"context_line":"    WSGIProcessGroup keystone-public"},{"line_number":284,"context_line":"    WSGIScriptAlias / /var/www/cgi-bin/keystone/main"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_88f889c4","line":281,"updated":"2015-03-25 17:12:23.000000000","message":"should you use \u0026gt; here?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":278,"context_line":"      \u003cprogramlisting language\u003d\"apache\"\u003eListen 5000"},{"line_number":279,"context_line":"Listen 35357"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"\u0026lt;VirtualHost *:5000\u003e"},{"line_number":282,"context_line":"    WSGIDaemonProcess keystone-public processes\u003d5 threads\u003d1 user\u003dkeystone display-name\u003d%{GROUP}"},{"line_number":283,"context_line":"    WSGIProcessGroup keystone-public"},{"line_number":284,"context_line":"    WSGIScriptAlias / /var/www/cgi-bin/keystone/main"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_ae91cdf2","line":281,"in_reply_to":"1a6ced46_88f889c4","updated":"2015-03-25 17:56:13.000000000","message":"Hmm, ok.","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    WSGIScriptAlias / /var/www/cgi-bin/keystone/main"},{"line_number":285,"context_line":"    WSGIApplicationGroup %{GLOBAL}"},{"line_number":286,"context_line":"    WSGIPassAuthorization On"},{"line_number":287,"context_line":"    \u0026lt;IfVersion \u003e\u003d 2.4\u003e"},{"line_number":288,"context_line":"      ErrorLogFormat \"%{cu}t %M\""},{"line_number":289,"context_line":"    \u0026lt;/IfVersion\u003e"},{"line_number":290,"context_line":"    LogLevel info"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_a801c5b0","line":287,"updated":"2015-03-25 17:12:23.000000000","message":"should you use \u0026gt; here?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    WSGIScriptAlias / /var/www/cgi-bin/keystone/main"},{"line_number":285,"context_line":"    WSGIApplicationGroup %{GLOBAL}"},{"line_number":286,"context_line":"    WSGIPassAuthorization On"},{"line_number":287,"context_line":"    \u0026lt;IfVersion \u003e\u003d 2.4\u003e"},{"line_number":288,"context_line":"      ErrorLogFormat \"%{cu}t %M\""},{"line_number":289,"context_line":"    \u0026lt;/IfVersion\u003e"},{"line_number":290,"context_line":"    LogLevel info"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_2eb5dd7d","line":287,"in_reply_to":"1a6ced46_a801c5b0","updated":"2015-03-25 17:56:13.000000000","message":"Done","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    WSGIPassAuthorization On"},{"line_number":287,"context_line":"    \u0026lt;IfVersion \u003e\u003d 2.4\u003e"},{"line_number":288,"context_line":"      ErrorLogFormat \"%{cu}t %M\""},{"line_number":289,"context_line":"    \u0026lt;/IfVersion\u003e"},{"line_number":290,"context_line":"    LogLevel info"},{"line_number":291,"context_line":"    ErrorLog /var/log/apache2/keystone-error.log"},{"line_number":292,"context_line":"    CustomLog /var/log/apache2/keystone-access.log combined"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_c8fe01ae","line":289,"updated":"2015-03-25 17:12:23.000000000","message":"should you use \u0026gt; here?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    WSGIPassAuthorization On"},{"line_number":287,"context_line":"    \u0026lt;IfVersion \u003e\u003d 2.4\u003e"},{"line_number":288,"context_line":"      ErrorLogFormat \"%{cu}t %M\""},{"line_number":289,"context_line":"    \u0026lt;/IfVersion\u003e"},{"line_number":290,"context_line":"    LogLevel info"},{"line_number":291,"context_line":"    ErrorLog /var/log/apache2/keystone-error.log"},{"line_number":292,"context_line":"    CustomLog /var/log/apache2/keystone-access.log combined"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_6eb27595","line":289,"in_reply_to":"1a6ced46_c8fe01ae","updated":"2015-03-25 17:56:13.000000000","message":"Done","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    LogLevel info"},{"line_number":291,"context_line":"    ErrorLog /var/log/apache2/keystone-error.log"},{"line_number":292,"context_line":"    CustomLog /var/log/apache2/keystone-access.log combined"},{"line_number":293,"context_line":"\u0026lt;/VirtualHost\u003e"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"\u0026lt;VirtualHost *:35357\u003e"},{"line_number":296,"context_line":"    WSGIDaemonProcess keystone-admin processes\u003d5 threads\u003d1 user\u003dkeystone display-name\u003d%{GROUP}"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_08349991","line":293,"updated":"2015-03-25 17:12:23.000000000","message":"should you use \u0026gt; here?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    LogLevel info"},{"line_number":291,"context_line":"    ErrorLog /var/log/apache2/keystone-error.log"},{"line_number":292,"context_line":"    CustomLog /var/log/apache2/keystone-access.log combined"},{"line_number":293,"context_line":"\u0026lt;/VirtualHost\u003e"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"\u0026lt;VirtualHost *:35357\u003e"},{"line_number":296,"context_line":"    WSGIDaemonProcess keystone-admin processes\u003d5 threads\u003d1 user\u003dkeystone display-name\u003d%{GROUP}"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_aea8ed20","line":293,"in_reply_to":"1a6ced46_08349991","updated":"2015-03-25 17:56:13.000000000","message":"Done","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        directory:\u003c/para\u003e"},{"line_number":324,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":325,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"},{"line_number":326,"context_line":"\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":327,"context_line":"  \u003e /var/www/cgi-bin/keystone/admin\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":328,"context_line":"    \u003c/step\u003e"},{"line_number":329,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_0897393c","line":326,"updated":"2015-03-25 17:12:23.000000000","message":"maybe reference stable/kilo when it\u0027s available, instead of master?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        directory:\u003c/para\u003e"},{"line_number":324,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":325,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"},{"line_number":326,"context_line":"\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":327,"context_line":"  \u003e /var/www/cgi-bin/keystone/admin\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":328,"context_line":"    \u003c/step\u003e"},{"line_number":329,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_ae7f0daa","line":326,"in_reply_to":"1a6ced46_0897393c","updated":"2015-03-25 17:56:13.000000000","message":"Whoops... forgot to note this in the commit message.","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        SQL database indefinitely. The accumulation of expired tokens"},{"line_number":363,"context_line":"        considerably increases the database size and degrades performance"},{"line_number":364,"context_line":"        over time, particularly in environments with limited resources.\u003c/para\u003e"},{"line_number":365,"context_line":"      \u003cpara os\u003d\"sles;opensuse;debian\"\u003eThe packages already contains a cron job"},{"line_number":366,"context_line":"        under \u003cfilename\u003e/etc/cron.hourly/keystone\u003c/filename\u003e, so it is not"},{"line_number":367,"context_line":"        necessary to manually configure a periodic task that purges expired"},{"line_number":368,"context_line":"        tokens.\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_c89a816d","line":365,"updated":"2015-03-25 17:12:23.000000000","message":"nit: contain, singular","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        SQL database indefinitely. The accumulation of expired tokens"},{"line_number":363,"context_line":"        considerably increases the database size and degrades performance"},{"line_number":364,"context_line":"        over time, particularly in environments with limited resources.\u003c/para\u003e"},{"line_number":365,"context_line":"      \u003cpara os\u003d\"sles;opensuse;debian\"\u003eThe packages already contains a cron job"},{"line_number":366,"context_line":"        under \u003cfilename\u003e/etc/cron.hourly/keystone\u003c/filename\u003e, so it is not"},{"line_number":367,"context_line":"        necessary to manually configure a periodic task that purges expired"},{"line_number":368,"context_line":"        tokens.\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_8e5df149","line":365,"in_reply_to":"1a6ced46_c89a816d","updated":"2015-03-25 17:56:13.000000000","message":"Done","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":3114,"name":"Karin Levenstein","email":"karin.levenstein@rackspace.com","username":"karin-levenstein"},"change_message_id":"b2a1925a81b13b85afa714fcb104a4070c337b3b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u003cstep os\u003d\"ubuntu\"\u003e"},{"line_number":56,"context_line":"      \u003cpara\u003eBy default, the \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e"},{"line_number":57,"context_line":"        service listens on ports 5000 and 35357. However, this guide"},{"line_number":58,"context_line":"        configures the Apache web server to listen on those ports. To avoid"},{"line_number":59,"context_line":"        port conflicts, disable the"},{"line_number":60,"context_line":"        \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e service from starting"},{"line_number":61,"context_line":"        automatically after installation:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_5f7e411a","line":58,"updated":"2015-03-25 19:04:43.000000000","message":"Would there be a benefit in explaining why we do this?","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"16790936e0bc8ab68a9a1870ca6c77dbbf676ede","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u003cstep os\u003d\"ubuntu\"\u003e"},{"line_number":56,"context_line":"      \u003cpara\u003eBy default, the \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e"},{"line_number":57,"context_line":"        service listens on ports 5000 and 35357. However, this guide"},{"line_number":58,"context_line":"        configures the Apache web server to listen on those ports. To avoid"},{"line_number":59,"context_line":"        port conflicts, disable the"},{"line_number":60,"context_line":"        \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e service from starting"},{"line_number":61,"context_line":"        automatically after installation:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_001e20bb","line":58,"in_reply_to":"1a6ced46_5f7e411a","updated":"2015-03-26 02:12:30.000000000","message":"Explaining why we put Apache in front of keystone or why the ports conflict if both services try to run?","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b07b7d038cb38cc6d24193d24214d3edb670bd53","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u003cstep os\u003d\"ubuntu\"\u003e"},{"line_number":56,"context_line":"      \u003cpara\u003eBy default, the \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e"},{"line_number":57,"context_line":"        service listens on ports 5000 and 35357. However, this guide"},{"line_number":58,"context_line":"        configures the Apache web server to listen on those ports. To avoid"},{"line_number":59,"context_line":"        port conflicts, disable the"},{"line_number":60,"context_line":"        \u003csystemitem class\u003d\"service\"\u003ekeystone\u003c/systemitem\u003e service from starting"},{"line_number":61,"context_line":"        automatically after installation:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_4e98546a","line":58,"in_reply_to":"1a6ced46_5f7e411a","updated":"2015-03-25 20:36:41.000000000","message":"I like the extra info because if feels like it closes the loop.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b07b7d038cb38cc6d24193d24214d3edb670bd53","unresolved":false,"context_lines":[{"line_number":319,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003emkdir -p /var/www/cgi-bin/keystone\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":320,"context_line":"    \u003c/step\u003e"},{"line_number":321,"context_line":"    \u003cstep\u003e"},{"line_number":322,"context_line":"      \u003cpara\u003eCopy the WSGI components from the upstream repository into this"},{"line_number":323,"context_line":"        directory:\u003c/para\u003e"},{"line_number":324,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":325,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_4ed054c9","line":322,"updated":"2015-03-25 20:36:41.000000000","message":"Are these not bundled in the packages?","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"16790936e0bc8ab68a9a1870ca6c77dbbf676ede","unresolved":false,"context_lines":[{"line_number":319,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003emkdir -p /var/www/cgi-bin/keystone\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":320,"context_line":"    \u003c/step\u003e"},{"line_number":321,"context_line":"    \u003cstep\u003e"},{"line_number":322,"context_line":"      \u003cpara\u003eCopy the WSGI components from the upstream repository into this"},{"line_number":323,"context_line":"        directory:\u003c/para\u003e"},{"line_number":324,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":325,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_c06ec82e","line":322,"in_reply_to":"1a6ced46_4ed054c9","updated":"2015-03-26 02:12:30.000000000","message":"Nope. The packages currently prefer eventlet... probably because it reduces post-install operations.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        \u003csystemitem class\u003d\"service\"\u003ecron\u003c/systemitem\u003e to configure a periodic"},{"line_number":275,"context_line":"        task that purges expired tokens hourly:\u003c/para\u003e"},{"line_number":276,"context_line":"      \u003cscreen os\u003d\"ubuntu\"\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003e(crontab -l -u keystone 2\u003e\u0026amp;1 | grep -q token_flush) || \\"},{"line_number":277,"context_line":"  echo \u0027@hourly /usr/bin/keystone-manage token_flush \u003e/var/log/keystone/keystone-tokenflush.log 2\u003e\u0026amp;1\u0027 \\"},{"line_number":278,"context_line":"  \u003e\u003e /var/spool/cron/crontabs/keystone\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":279,"context_line":"      \u003cscreen os\u003d\"rhel;centos;fedora\"\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003e(crontab -l -u keystone 2\u003e\u0026amp;1 | grep -q token_flush) || \\"},{"line_number":280,"context_line":"  echo \u0027@hourly /usr/bin/keystone-manage token_flush \u003e/var/log/keystone/keystone-tokenflush.log 2\u003e\u0026amp;1\u0027 \\"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_552cfe49","side":"PARENT","line":277,"updated":"2015-03-29 14:01:55.000000000","message":"I think we should leave the example cron job for those installations that want to use the SQL backend for token persistence.","commit_id":"7c990e28e0a790f6fd173e885a416e70d04aa53b"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  \u003cpara\u003eThis section describes how to install and configure the OpenStack"},{"line_number":13,"context_line":"    Identity service, code-named keystone, on the controller node. For"},{"line_number":14,"context_line":"    performance, this configuration deploys the Apache web server to handle"},{"line_number":15,"context_line":"    requests and Memcached to store tokens instead of a SQL database.\u003c/para\u003e"},{"line_number":16,"context_line":"  \u003cprocedure os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003e"},{"line_number":17,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":18,"context_line":"    \u003cpara\u003eBefore you configure the OpenStack Identity service, you must create"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_390efc34","line":15,"updated":"2015-03-27 13:35:22.000000000","message":"It should be noted that this is the preferred way to deploy Keystone today.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  \u003cpara\u003eThis section describes how to install and configure the OpenStack"},{"line_number":13,"context_line":"    Identity service, code-named keystone, on the controller node. For"},{"line_number":14,"context_line":"    performance, this configuration deploys the Apache web server to handle"},{"line_number":15,"context_line":"    requests and Memcached to store tokens instead of a SQL database.\u003c/para\u003e"},{"line_number":16,"context_line":"  \u003cprocedure os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003e"},{"line_number":17,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":18,"context_line":"    \u003cpara\u003eBefore you configure the OpenStack Identity service, you must create"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_1c5d68e9","line":15,"in_reply_to":"da9b358b_55051ec0","updated":"2015-03-30 15:28:40.000000000","message":"We chose to use Memcache for the following reasons:\n\n1) Many operators seem to implement it in production environments without issues.\n\n2) Our audience often forgets to perform periodic deletion of expired tokens, regardless of how often the guide mentions it, resulting in difficult to diagnose performance issues.\n\n3) Our audience often performs their first installation in VMs or older hardware that hinders SQL database performance.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4740605ec454c16cd90e57f2eb0ed8af719f43ae","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  \u003cpara\u003eThis section describes how to install and configure the OpenStack"},{"line_number":13,"context_line":"    Identity service, code-named keystone, on the controller node. For"},{"line_number":14,"context_line":"    performance, this configuration deploys the Apache web server to handle"},{"line_number":15,"context_line":"    requests and Memcached to store tokens instead of a SQL database.\u003c/para\u003e"},{"line_number":16,"context_line":"  \u003cprocedure os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003e"},{"line_number":17,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":18,"context_line":"    \u003cpara\u003eBefore you configure the OpenStack Identity service, you must create"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_f29b06c8","line":15,"in_reply_to":"fa963961_390efc34","updated":"2015-03-27 15:40:03.000000000","message":"I don\u0027t know that I agree here. I don\u0027t like the memcached backend because of its lack of predictable behavior. I would imagine that if you were using UUID tokens you\u0027d fill up that slab way before the rest of the memcached memory was utilized and start evicting tokens.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  \u003cpara\u003eThis section describes how to install and configure the OpenStack"},{"line_number":13,"context_line":"    Identity service, code-named keystone, on the controller node. For"},{"line_number":14,"context_line":"    performance, this configuration deploys the Apache web server to handle"},{"line_number":15,"context_line":"    requests and Memcached to store tokens instead of a SQL database.\u003c/para\u003e"},{"line_number":16,"context_line":"  \u003cprocedure os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003e"},{"line_number":17,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":18,"context_line":"    \u003cpara\u003eBefore you configure the OpenStack Identity service, you must create"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_55051ec0","line":15,"in_reply_to":"fa963961_f29b06c8","updated":"2015-03-29 14:01:55.000000000","message":"Changing from one token backend to another shouldn\u0027t be difficult -- they\u0027re ephemeral so you don\u0027t lose anything switching, so I\u0027d prefer to document whatever provides consistent behavior, and that\u0027s SQL at this point. Then provide some info on how to use memcache along with the trade-offs of picking one database over the other.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        \u003c/step\u003e"},{"line_number":97,"context_line":"        \u003cstep\u003e"},{"line_number":98,"context_line":"          \u003cpara\u003eIn the \u003cliteral\u003e[auth]\u003c/literal\u003e section, enable only"},{"line_number":99,"context_line":"            password and token authentication methods:\u003c/para\u003e"},{"line_number":100,"context_line":"          \u003cprogramlisting language\u003d\"ini\"\u003e[auth]"},{"line_number":101,"context_line":"..."},{"line_number":102,"context_line":"methods \u003d password,token\u003c/programlisting\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_350a9ad3","line":99,"updated":"2015-03-29 14:01:55.000000000","message":"why? This isn\u0027t the default, so we need to figure out if keystone is using the wrong defaults and fix it instead.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        \u003c/step\u003e"},{"line_number":97,"context_line":"        \u003cstep\u003e"},{"line_number":98,"context_line":"          \u003cpara\u003eIn the \u003cliteral\u003e[auth]\u003c/literal\u003e section, enable only"},{"line_number":99,"context_line":"            password and token authentication methods:\u003c/para\u003e"},{"line_number":100,"context_line":"          \u003cprogramlisting language\u003d\"ini\"\u003e[auth]"},{"line_number":101,"context_line":"..."},{"line_number":102,"context_line":"methods \u003d password,token\u003c/programlisting\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_9c9cd86a","line":99,"in_reply_to":"da9b358b_350a9ad3","updated":"2015-03-30 15:28:40.000000000","message":"Packages often include stale configuration files, change defaults or enable defunct options, etc... so we often find it easier to explicitly define certain options. I\u0027m halfway tempted to completely overwrite the configuration files to only include options that need explicit configuration and assume the remaining options will default to sane values.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    \u003c/step\u003e"},{"line_number":270,"context_line":"  \u003c/procedure\u003e"},{"line_number":271,"context_line":"  \u003cprocedure os\u003d\"ubuntu\"\u003e"},{"line_number":272,"context_line":"    \u003ctitle\u003eTo configure the Apache web server\u003c/title\u003e"},{"line_number":273,"context_line":"    \u003cstep\u003e"},{"line_number":274,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003e/etc/apache2/apache2.conf\u003c/filename\u003e file and"},{"line_number":275,"context_line":"        configure the \u003cliteral\u003eServerName\u003c/literal\u003e option to reference the"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_b5f6aad5","line":272,"updated":"2015-03-29 14:01:55.000000000","message":"The Apache project has several web servers, the reference here could be clarified by using \"Apache httpd web server\".","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    \u003c/step\u003e"},{"line_number":270,"context_line":"  \u003c/procedure\u003e"},{"line_number":271,"context_line":"  \u003cprocedure os\u003d\"ubuntu\"\u003e"},{"line_number":272,"context_line":"    \u003ctitle\u003eTo configure the Apache web server\u003c/title\u003e"},{"line_number":273,"context_line":"    \u003cstep\u003e"},{"line_number":274,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003e/etc/apache2/apache2.conf\u003c/filename\u003e file and"},{"line_number":275,"context_line":"        configure the \u003cliteral\u003eServerName\u003c/literal\u003e option to reference the"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_1cec48c6","line":272,"in_reply_to":"da9b358b_b5f6aad5","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":280,"context_line":"      \u003cpara\u003eCreate the"},{"line_number":281,"context_line":"        \u003cfilename\u003e/etc/apache2/sites-available/wsgi-keystone.conf\u003c/filename\u003e"},{"line_number":282,"context_line":"        file with the following content:\u003c/para\u003e"},{"line_number":283,"context_line":"      \u003cprogramlisting\u003eListen 5000"},{"line_number":284,"context_line":"Listen 35357"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"\u0026lt;VirtualHost *:5000\u0026gt;"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_d934b0df","line":283,"updated":"2015-03-27 13:35:22.000000000","message":"I think language\u003d\"apache\" should be added here, too.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":280,"context_line":"      \u003cpara\u003eCreate the"},{"line_number":281,"context_line":"        \u003cfilename\u003e/etc/apache2/sites-available/wsgi-keystone.conf\u003c/filename\u003e"},{"line_number":282,"context_line":"        file with the following content:\u003c/para\u003e"},{"line_number":283,"context_line":"      \u003cprogramlisting\u003eListen 5000"},{"line_number":284,"context_line":"Listen 35357"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"\u0026lt;VirtualHost *:5000\u0026gt;"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_bc779c01","line":283,"in_reply_to":"fa963961_d934b0df","updated":"2015-03-30 15:28:40.000000000","message":"Our tool chain doesn\u0027t actually support it.\n\nhttps://wiki.openstack.org/wiki/Documentation/Markup_conventions#Code_or_data_.28block.29","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":313,"context_line":"    \u003c/step\u003e"},{"line_number":314,"context_line":"    \u003cstep\u003e"},{"line_number":315,"context_line":"      \u003cpara\u003eDisable the default virtual host:\u003c/para\u003e"},{"line_number":316,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003erm /etc/apache2/sites-enabled/000-default.conf\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":317,"context_line":"    \u003c/step\u003e"},{"line_number":318,"context_line":"    \u003cstep\u003e"},{"line_number":319,"context_line":"      \u003cpara\u003eEnable the Identity service virtual hosts:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_79524415","line":316,"updated":"2015-03-27 13:35:22.000000000","message":"Is there no a2dissite command on Ubuntu?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":313,"context_line":"    \u003c/step\u003e"},{"line_number":314,"context_line":"    \u003cstep\u003e"},{"line_number":315,"context_line":"      \u003cpara\u003eDisable the default virtual host:\u003c/para\u003e"},{"line_number":316,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003erm /etc/apache2/sites-enabled/000-default.conf\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":317,"context_line":"    \u003c/step\u003e"},{"line_number":318,"context_line":"    \u003cstep\u003e"},{"line_number":319,"context_line":"      \u003cpara\u003eEnable the Identity service virtual hosts:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_1cd688c5","line":316,"in_reply_to":"fa963961_79524415","updated":"2015-03-30 15:28:40.000000000","message":"Not all distributions appear to include these scripts.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":317,"context_line":"    \u003c/step\u003e"},{"line_number":318,"context_line":"    \u003cstep\u003e"},{"line_number":319,"context_line":"      \u003cpara\u003eEnable the Identity service virtual hosts:\u003c/para\u003e"},{"line_number":320,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003eln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":321,"context_line":"    \u003c/step\u003e"},{"line_number":322,"context_line":"    \u003cstep\u003e"},{"line_number":323,"context_line":"      \u003cpara\u003eCreate the directory structure for the WSGI components:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_395cbc24","line":320,"updated":"2015-03-27 13:35:22.000000000","message":"Is there no a2ensite command on Ubuntu?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":326,"context_line":"    \u003cstep\u003e"},{"line_number":327,"context_line":"      \u003cpara\u003eCopy the WSGI components from the upstream repository into this"},{"line_number":328,"context_line":"        directory:\u003c/para\u003e"},{"line_number":329,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":330,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"},{"line_number":331,"context_line":"\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":332,"context_line":"  \u003e /var/www/cgi-bin/keystone/admin\u003c/userinput\u003e\u003c/screen\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_1969f8be","line":329,"updated":"2015-03-27 13:35:22.000000000","message":"The usage of \"master\" is intended here?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":326,"context_line":"    \u003cstep\u003e"},{"line_number":327,"context_line":"      \u003cpara\u003eCopy the WSGI components from the upstream repository into this"},{"line_number":328,"context_line":"        directory:\u003c/para\u003e"},{"line_number":329,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":330,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"},{"line_number":331,"context_line":"\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":332,"context_line":"  \u003e /var/www/cgi-bin/keystone/admin\u003c/userinput\u003e\u003c/screen\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_7ceeb48c","line":329,"in_reply_to":"fa963961_1969f8be","updated":"2015-03-30 15:28:40.000000000","message":"Yes, until a Kilo stable branch appears.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        directory:\u003c/para\u003e"},{"line_number":329,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":330,"context_line":"  \u003e /var/www/cgi-bin/keystone/main\u003c/userinput\u003e"},{"line_number":331,"context_line":"\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003ecurl https://raw.githubusercontent.com/openstack/keystone/master/httpd/keystone.py \\"},{"line_number":332,"context_line":"  \u003e /var/www/cgi-bin/keystone/admin\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":333,"context_line":"    \u003c/step\u003e"},{"line_number":334,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_b95fac0d","line":331,"updated":"2015-03-27 13:35:22.000000000","message":"The usage of \"master\" is intended here?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"176625bba44e343e842f3618e4671759410cf1a1","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \u003c/step\u003e"},{"line_number":100,"context_line":"        \u003cstep\u003e"},{"line_number":101,"context_line":"          \u003cpara\u003eIn the \u003cliteral\u003e[auth]\u003c/literal\u003e section, enable only"},{"line_number":102,"context_line":"            password and token authentication methods:\u003c/para\u003e"},{"line_number":103,"context_line":"          \u003cprogramlisting language\u003d\"ini\"\u003e[auth]"},{"line_number":104,"context_line":"..."},{"line_number":105,"context_line":"methods \u003d password,token\u003c/programlisting\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_eb79d3fd","line":102,"updated":"2015-03-30 16:58:09.000000000","message":"The default methods are http://git.openstack.org/cgit/openstack/keystone/tree/etc/keystone.conf.sample#n275\n\nRemoving \"external\" is going to break anybody that wants to use external authentication methods.\n\nThe oauth1 method is also enabled in the default config, although that\u0027s easier to figure out when it fails.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"79d5ab9306855c68c57ddfcf222ac7589db2e05a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \u003c/step\u003e"},{"line_number":100,"context_line":"        \u003cstep\u003e"},{"line_number":101,"context_line":"          \u003cpara\u003eIn the \u003cliteral\u003e[auth]\u003c/literal\u003e section, enable only"},{"line_number":102,"context_line":"            password and token authentication methods:\u003c/para\u003e"},{"line_number":103,"context_line":"          \u003cprogramlisting language\u003d\"ini\"\u003e[auth]"},{"line_number":104,"context_line":"..."},{"line_number":105,"context_line":"methods \u003d password,token\u003c/programlisting\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_0eef65e9","line":102,"in_reply_to":"da9b358b_eb79d3fd","updated":"2015-03-30 17:11:43.000000000","message":"Fine, I\u0027ll remove it.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"75e97c11270799b0462773b9057d2115f18f5524","unresolved":false,"context_lines":[{"line_number":258,"context_line":"    \u003cstep\u003e"},{"line_number":259,"context_line":"      \u003cpara os\u003d\"ubuntu;rhel;centos;fedora;opensuse;sles\"\u003eBy default, the Identity service stores expired tokens in the"},{"line_number":260,"context_line":"        database indefinitely. The accumulation of expired tokens considerably"},{"line_number":261,"context_line":"        increases the database size and might degrade service performance,"},{"line_number":262,"context_line":"        particularly in environments with limited resources.\u003c/para\u003e"},{"line_number":263,"context_line":"      \u003cpara os\u003d\"debian\"\u003eThe Keystone package already contains a cron job"},{"line_number":264,"context_line":"        under \u003cfilename\u003e/etc/cron.hourly/keystone\u003c/filename\u003e, so it is not"}],"source_content_type":"application/xml","patch_set":12,"id":"baa041b7_19ed4def","side":"PARENT","line":261,"updated":"2015-04-03 13:21:45.000000000","message":"Curious, what did ubuntu do that causes them not to require a cron job?","commit_id":"7c990e28e0a790f6fd173e885a416e70d04aa53b"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"dbd0b988b32b62b567e3f1832c14eb801c1558f0","unresolved":false,"context_lines":[{"line_number":258,"context_line":"    \u003cstep\u003e"},{"line_number":259,"context_line":"      \u003cpara os\u003d\"ubuntu;rhel;centos;fedora;opensuse;sles\"\u003eBy default, the Identity service stores expired tokens in the"},{"line_number":260,"context_line":"        database indefinitely. The accumulation of expired tokens considerably"},{"line_number":261,"context_line":"        increases the database size and might degrade service performance,"},{"line_number":262,"context_line":"        particularly in environments with limited resources.\u003c/para\u003e"},{"line_number":263,"context_line":"      \u003cpara os\u003d\"debian\"\u003eThe Keystone package already contains a cron job"},{"line_number":264,"context_line":"        under \u003cfilename\u003e/etc/cron.hourly/keystone\u003c/filename\u003e, so it is not"}],"source_content_type":"application/xml","patch_set":12,"id":"baa041b7_a4a2b849","side":"PARENT","line":261,"in_reply_to":"baa041b7_19ed4def","updated":"2015-04-03 14:03:31.000000000","message":"Storing tokens in memory rather than the SQL database... applies to any distribution.","commit_id":"7c990e28e0a790f6fd173e885a416e70d04aa53b"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"e4f53aa90ec141a789761164d8862cc0c1801b3c","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        remove the SQLite database file:\u003c/para\u003e"},{"line_number":359,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e#\u003c/prompt\u003e \u003cuserinput\u003erm -f /var/lib/keystone/keystone.db\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":360,"context_line":"    \u003c/step\u003e"},{"line_number":361,"context_line":"    \u003cstep os\u003d\"rhel;centos;fedora;sles;opensuse;debian\"\u003e"},{"line_number":362,"context_line":"      \u003cpara\u003eBy default, the Identity service stores expired tokens in the"},{"line_number":363,"context_line":"        SQL database indefinitely. The accumulation of expired tokens"},{"line_number":364,"context_line":"        considerably increases the database size and degrades performance"}],"source_content_type":"application/xml","patch_set":13,"id":"baa041b7_142f4ff7","line":361,"updated":"2015-04-03 15:01:43.000000000","message":"The way this conditional is revised, you\u0027re saying ubuntu does not have this storage problem. Yet there is no warning for ubuntu users. Are they somehow exempt from this problem?","commit_id":"cd89eca969786c3004367cad4f2d9ea8ae22ce55"}],"doc/install-guide/section_keystone-openrc.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1e2954baa40a993f4bb11b6439819f1233a3eb22","unresolved":false,"context_lines":[{"line_number":22,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003eadmin-openrc.sh\u003c/filename\u003e file and add the"},{"line_number":23,"context_line":"        following content:\u003c/para\u003e"},{"line_number":24,"context_line":"      \u003cprogramlisting language\u003d\"bash\"\u003eexport OS_PROJECT_DOMAIN_ID\u003ddefault"},{"line_number":25,"context_line":"export OS_USER_DOMAIN_ID\u003ddefault"},{"line_number":26,"context_line":"export OS_PROJECT_NAME\u003dadmin"},{"line_number":27,"context_line":"export OS_USERNAME\u003dadmin"},{"line_number":28,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eADMIN_PASS\u003c/replaceable\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_a891c5f2","line":25,"updated":"2015-03-25 17:12:23.000000000","message":"if you\u0027re not authenticating against v3, then OS_USER_DOMAIN_X and OS_PROJECT_DOMAIN_X are not needed.","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"aed41606c6a4bca26a548741955a7221bfa21cf3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003eadmin-openrc.sh\u003c/filename\u003e file and add the"},{"line_number":23,"context_line":"        following content:\u003c/para\u003e"},{"line_number":24,"context_line":"      \u003cprogramlisting language\u003d\"bash\"\u003eexport OS_PROJECT_DOMAIN_ID\u003ddefault"},{"line_number":25,"context_line":"export OS_USER_DOMAIN_ID\u003ddefault"},{"line_number":26,"context_line":"export OS_PROJECT_NAME\u003dadmin"},{"line_number":27,"context_line":"export OS_USERNAME\u003dadmin"},{"line_number":28,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eADMIN_PASS\u003c/replaceable\u003e"}],"source_content_type":"application/xml","patch_set":1,"id":"1a6ced46_6e27d5ca","line":25,"in_reply_to":"1a6ced46_a891c5f2","updated":"2015-03-25 17:56:13.000000000","message":"Would adding them to the openrc file break anything?","commit_id":"cb6688e6abcb244b3e725c8bb270609f713ca411"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"51f3ff4d3eebd7a4a72cfb15e73196a1b43fd270","unresolved":false,"context_lines":[{"line_number":38,"context_line":"export OS_PROJECT_NAME\u003ddemo"},{"line_number":39,"context_line":"export OS_USERNAME\u003ddemo"},{"line_number":40,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eDEMO_PASS\u003c/replaceable\u003e"},{"line_number":41,"context_line":"export OS_AUTH_URL\u003dhttp://\u003creplaceable\u003econtroller\u003c/replaceable\u003e:5000\u003c/programlisting\u003e"},{"line_number":42,"context_line":"      \u003cpara\u003eReplace \u003cliteral\u003eDEMO_PASS\u003c/literal\u003e with the password you chose"},{"line_number":43,"context_line":"        for the \u003cliteral\u003edemo\u003c/literal\u003e user in the Identity service.\u003c/para\u003e"},{"line_number":44,"context_line":"    \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_b4e03c97","line":41,"updated":"2015-03-25 18:38:34.000000000","message":"Perhaps a better question... how do the other clients handle an unversioned OS_AUTH_URL?","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"16790936e0bc8ab68a9a1870ca6c77dbbf676ede","unresolved":false,"context_lines":[{"line_number":38,"context_line":"export OS_PROJECT_NAME\u003ddemo"},{"line_number":39,"context_line":"export OS_USERNAME\u003ddemo"},{"line_number":40,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eDEMO_PASS\u003c/replaceable\u003e"},{"line_number":41,"context_line":"export OS_AUTH_URL\u003dhttp://\u003creplaceable\u003econtroller\u003c/replaceable\u003e:5000\u003c/programlisting\u003e"},{"line_number":42,"context_line":"      \u003cpara\u003eReplace \u003cliteral\u003eDEMO_PASS\u003c/literal\u003e with the password you chose"},{"line_number":43,"context_line":"        for the \u003cliteral\u003edemo\u003c/literal\u003e user in the Identity service.\u003c/para\u003e"},{"line_number":44,"context_line":"    \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_00a8e01e","line":41,"in_reply_to":"1a6ced46_71ba516f","updated":"2015-03-26 02:12:30.000000000","message":"I don\u0027t have any services except keystone in this environment, and python-keystoneclient (although deprecated) definitely breaks with these variables. I\u0027m thinking we should take the python-openstackclient route for now and revert to legacy variables if it breaks any other service in the installation guide.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b07b7d038cb38cc6d24193d24214d3edb670bd53","unresolved":false,"context_lines":[{"line_number":38,"context_line":"export OS_PROJECT_NAME\u003ddemo"},{"line_number":39,"context_line":"export OS_USERNAME\u003ddemo"},{"line_number":40,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eDEMO_PASS\u003c/replaceable\u003e"},{"line_number":41,"context_line":"export OS_AUTH_URL\u003dhttp://\u003creplaceable\u003econtroller\u003c/replaceable\u003e:5000\u003c/programlisting\u003e"},{"line_number":42,"context_line":"      \u003cpara\u003eReplace \u003cliteral\u003eDEMO_PASS\u003c/literal\u003e with the password you chose"},{"line_number":43,"context_line":"        for the \u003cliteral\u003edemo\u003c/literal\u003e user in the Identity service.\u003c/para\u003e"},{"line_number":44,"context_line":"    \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_71ba516f","line":41,"in_reply_to":"1a6ced46_b4e03c97","updated":"2015-03-25 20:36:41.000000000","message":"That\u0027s a good question. I would actually expect them not to work.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":3114,"name":"Karin Levenstein","email":"karin.levenstein@rackspace.com","username":"karin-levenstein"},"change_message_id":"b2a1925a81b13b85afa714fcb104a4070c337b3b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  \u003c/procedure\u003e"},{"line_number":46,"context_line":"  \u003cprocedure\u003e"},{"line_number":47,"context_line":"    \u003ctitle\u003eTo load client environment scripts\u003c/title\u003e"},{"line_number":48,"context_line":"    \u003cpara\u003eTo run clients as a certain project and user, you can simply load"},{"line_number":49,"context_line":"      the associated client environment script prior to running them. For"},{"line_number":50,"context_line":"      example:\u003c/para\u003e"},{"line_number":51,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_bfa81578","line":48,"updated":"2015-03-25 19:04:43.000000000","message":"\"To run clients as a specific project and user...\"","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"16790936e0bc8ab68a9a1870ca6c77dbbf676ede","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  \u003c/procedure\u003e"},{"line_number":46,"context_line":"  \u003cprocedure\u003e"},{"line_number":47,"context_line":"    \u003ctitle\u003eTo load client environment scripts\u003c/title\u003e"},{"line_number":48,"context_line":"    \u003cpara\u003eTo run clients as a certain project and user, you can simply load"},{"line_number":49,"context_line":"      the associated client environment script prior to running them. For"},{"line_number":50,"context_line":"      example:\u003c/para\u003e"},{"line_number":51,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_a05d4c7b","line":48,"in_reply_to":"1a6ced46_316b79f3","updated":"2015-03-26 02:12:30.000000000","message":"Done","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b07b7d038cb38cc6d24193d24214d3edb670bd53","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  \u003c/procedure\u003e"},{"line_number":46,"context_line":"  \u003cprocedure\u003e"},{"line_number":47,"context_line":"    \u003ctitle\u003eTo load client environment scripts\u003c/title\u003e"},{"line_number":48,"context_line":"    \u003cpara\u003eTo run clients as a certain project and user, you can simply load"},{"line_number":49,"context_line":"      the associated client environment script prior to running them. For"},{"line_number":50,"context_line":"      example:\u003c/para\u003e"},{"line_number":51,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_316b79f3","line":48,"in_reply_to":"1a6ced46_bfa81578","updated":"2015-03-25 20:36:41.000000000","message":"++","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":22,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003eadmin-openrc.sh\u003c/filename\u003e file and add the"},{"line_number":23,"context_line":"        following content:\u003c/para\u003e"},{"line_number":24,"context_line":"      \u003cprogramlisting language\u003d\"bash\"\u003eexport OS_PROJECT_DOMAIN_ID\u003ddefault"},{"line_number":25,"context_line":"export OS_USER_DOMAIN_ID\u003ddefault"},{"line_number":26,"context_line":"export OS_PROJECT_NAME\u003dadmin"},{"line_number":27,"context_line":"export OS_USERNAME\u003dadmin"},{"line_number":28,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eADMIN_PASS\u003c/replaceable\u003e"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_f1e55409","line":25,"updated":"2015-03-26 05:05:19.000000000","message":"to answer your earlier question, it won\u0027t hurt to have these around, so i guess you can keep them","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e99d3de6e90ebe5c03fd357293e2cb9d1eb99f90","unresolved":false,"context_lines":[{"line_number":40,"context_line":"export OS_USERNAME\u003ddemo"},{"line_number":41,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eDEMO_PASS\u003c/replaceable\u003e"},{"line_number":42,"context_line":"export OS_AUTH_URL\u003dhttp://\u003creplaceable\u003econtroller\u003c/replaceable\u003e:5000"},{"line_number":43,"context_line":"export OS_IMAGE_API_VERSION\u003d2\u003c/programlisting\u003e"},{"line_number":44,"context_line":"      \u003cpara\u003eReplace \u003cliteral\u003eDEMO_PASS\u003c/literal\u003e with the password you chose"},{"line_number":45,"context_line":"        for the \u003cliteral\u003edemo\u003c/literal\u003e user in the Identity service.\u003c/para\u003e"},{"line_number":46,"context_line":"    \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_7f4ebdc2","line":43,"updated":"2015-03-26 21:18:59.000000000","message":"IMAGE_API is not necessary, but it won\u0027t hurt","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"29d7554878f9eee954c21f5eb3cccf144bd3b3f6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"export OS_USERNAME\u003ddemo"},{"line_number":41,"context_line":"export OS_PASSWORD\u003d\u003creplaceable\u003eDEMO_PASS\u003c/replaceable\u003e"},{"line_number":42,"context_line":"export OS_AUTH_URL\u003dhttp://\u003creplaceable\u003econtroller\u003c/replaceable\u003e:5000"},{"line_number":43,"context_line":"export OS_IMAGE_API_VERSION\u003d2\u003c/programlisting\u003e"},{"line_number":44,"context_line":"      \u003cpara\u003eReplace \u003cliteral\u003eDEMO_PASS\u003c/literal\u003e with the password you chose"},{"line_number":45,"context_line":"        for the \u003cliteral\u003edemo\u003c/literal\u003e user in the Identity service.\u003c/para\u003e"},{"line_number":46,"context_line":"    \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_5b309856","line":43,"in_reply_to":"fa963961_7f4ebdc2","updated":"2015-03-27 12:48:32.000000000","message":"The glance client requires this variable to use the version 2 API. I suspect I might need to add a couple more variables for other services. I\u0027m not sure whether I should add them all at once here or via additional steps during the installation of those services.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"}],"doc/install-guide/section_keystone-services.xml":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b07b7d038cb38cc6d24193d24214d3edb670bd53","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  \u003ctitle\u003eCreate the service entity and API endpoints\u003c/title\u003e"},{"line_number":8,"context_line":"  \u003cpara\u003eThe Identity service provides a catalog of services and their"},{"line_number":9,"context_line":"     locations. Each service that you add to your OpenStack environment"},{"line_number":10,"context_line":"     requires one or more \u003cglossterm\u003eservice\u003c/glossterm\u003e entities and"},{"line_number":11,"context_line":"    \u003cglossterm baseform\u003d\"API endpoint\"\u003eAPI endpoints\u003c/glossterm\u003e in the"},{"line_number":12,"context_line":"    catalog.\u003c/para\u003e"},{"line_number":13,"context_line":"  \u003cprocedure\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_b124c9c5","line":10,"updated":"2015-03-25 20:36:41.000000000","message":"Do people actually use multiple entities to represent a service? Multiple endpoints for sure though.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"16790936e0bc8ab68a9a1870ca6c77dbbf676ede","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  \u003ctitle\u003eCreate the service entity and API endpoints\u003c/title\u003e"},{"line_number":8,"context_line":"  \u003cpara\u003eThe Identity service provides a catalog of services and their"},{"line_number":9,"context_line":"     locations. Each service that you add to your OpenStack environment"},{"line_number":10,"context_line":"     requires one or more \u003cglossterm\u003eservice\u003c/glossterm\u003e entities and"},{"line_number":11,"context_line":"    \u003cglossterm baseform\u003d\"API endpoint\"\u003eAPI endpoints\u003c/glossterm\u003e in the"},{"line_number":12,"context_line":"    catalog.\u003c/para\u003e"},{"line_number":13,"context_line":"  \u003cprocedure\u003e"}],"source_content_type":"application/xml","patch_set":2,"id":"1a6ced46_40c9f824","line":10,"in_reply_to":"1a6ced46_b124c9c5","updated":"2015-03-26 02:12:30.000000000","message":"Whoops... apparently didn\u0027t parse this entire sentence while modifying it.","commit_id":"6978b3b8f7c7f441a36b5dad4148542948aaa529"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":15,"context_line":"      \u003cpara\u003eBy default, the Identity service database contains no information"},{"line_number":16,"context_line":"        to support conventional authentication and catalog services. You must"},{"line_number":17,"context_line":"        use temporary authentication token that you created in"},{"line_number":18,"context_line":"        \u003cxref linkend\u003d\"keystone-install\"/\u003e to initialize the service entity"},{"line_number":19,"context_line":"        and API endpoints for the Identity service.\u003c/para\u003e"},{"line_number":20,"context_line":"      \u003cpara\u003eYou can pass the value of the authentication token to the"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_71a8848d","line":17,"updated":"2015-03-26 05:05:19.000000000","message":"use *a* temporary","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    \u003ctitle\u003eTo configure prerequisites\u003c/title\u003e"},{"line_number":15,"context_line":"      \u003cpara\u003eBy default, the Identity service database contains no information"},{"line_number":16,"context_line":"        to support conventional authentication and catalog services. You must"},{"line_number":17,"context_line":"        use temporary authentication token that you created in"},{"line_number":18,"context_line":"        \u003cxref linkend\u003d\"keystone-install\"/\u003e to initialize the service entity"},{"line_number":19,"context_line":"        and API endpoints for the Identity service.\u003c/para\u003e"},{"line_number":20,"context_line":"      \u003cpara\u003eYou can pass the value of the authentication token to the"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_e8f2276f","line":17,"in_reply_to":"1a6ced46_71a8848d","updated":"2015-03-26 14:51:02.000000000","message":"Done","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        can pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":26,"context_line":"        \u003cparameter\u003e--os-url\u003c/parameter\u003e parameter or set the"},{"line_number":27,"context_line":"        \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variable. This guide"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_f17ab422","line":24,"updated":"2015-03-26 05:05:19.000000000","message":"i would use \u0027must\u0027 instead of \u0027can\u0027, since it\u0027s required for bootstrapping keystone","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        can pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":26,"context_line":"        \u003cparameter\u003e--os-url\u003c/parameter\u003e parameter or set the"},{"line_number":27,"context_line":"        \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variable. This guide"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_c8e763ab","line":24,"in_reply_to":"1a6ced46_f17ab422","updated":"2015-03-26 14:51:02.000000000","message":"Done","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        and API endpoints for the Identity service.\u003c/para\u003e"},{"line_number":20,"context_line":"      \u003cpara\u003eYou must pass the value of the authentication token to the"},{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        must also  pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_d5200e4c","line":22,"updated":"2015-03-29 14:01:55.000000000","message":"there should be a warning about how putting the token on the command line or in an environment variable can expose it to other users on the system.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        and API endpoints for the Identity service.\u003c/para\u003e"},{"line_number":20,"context_line":"      \u003cpara\u003eYou must pass the value of the authentication token to the"},{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        must also  pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_ff41963a","line":22,"in_reply_to":"da9b358b_d5200e4c","updated":"2015-03-30 15:28:40.000000000","message":"Done. How about disabling the admin_token option after initializing the Identity service?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        must also  pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":26,"context_line":"        \u003cparameter\u003e--os-url\u003c/parameter\u003e parameter or set the"},{"line_number":27,"context_line":"        \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variable. This guide"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_b51d8a11","line":24,"updated":"2015-03-29 14:01:55.000000000","message":"extra space here","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":22,"context_line":"        \u003cparameter\u003e--os-token\u003c/parameter\u003e parameter or set the"},{"line_number":23,"context_line":"        \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e environment variable. Similarly, you"},{"line_number":24,"context_line":"        must also  pass the value of the Identity service URL to the"},{"line_number":25,"context_line":"        \u003ccommand\u003eopenstack\u003c/command\u003e command with the"},{"line_number":26,"context_line":"        \u003cparameter\u003e--os-url\u003c/parameter\u003e parameter or set the"},{"line_number":27,"context_line":"        \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variable. This guide"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_df3ed2b7","line":24,"in_reply_to":"da9b358b_b51d8a11","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"    \u003cstep\u003e"},{"line_number":33,"context_line":"      \u003cpara\u003eConfigure the authentication token:\u003c/para\u003e"},{"line_number":34,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eexport OS_TOKEN\u003d\u003creplaceable\u003eADMIN_TOKEN\u003c/replaceable\u003e\u003c/userinput\u003e\u003c/screen\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_951a8616","line":31,"updated":"2015-03-29 14:01:55.000000000","message":"I assume it\u0027s called \"Projects\" and not \"Project\"?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"3c8360e1e2c66ce9b1a6e56e2fbc23f806a375b9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"    \u003cstep\u003e"},{"line_number":33,"context_line":"      \u003cpara\u003eConfigure the authentication token:\u003c/para\u003e"},{"line_number":34,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eexport OS_TOKEN\u003d\u003creplaceable\u003eADMIN_TOKEN\u003c/replaceable\u003e\u003c/userinput\u003e\u003c/screen\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_59f3000b","line":31,"updated":"2015-03-27 13:35:22.000000000","message":"Not sure if we should link the operations guide here at the moment because the operations guide still uses python-keystoneclient and we are moving to python-openstackclient here.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"    \u003cstep\u003e"},{"line_number":33,"context_line":"      \u003cpara\u003eConfigure the authentication token:\u003c/para\u003e"},{"line_number":34,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eexport OS_TOKEN\u003d\u003creplaceable\u003eADMIN_TOKEN\u003c/replaceable\u003e\u003c/userinput\u003e\u003c/screen\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_ff963693","line":31,"in_reply_to":"fa963961_59f3000b","updated":"2015-03-30 15:28:40.000000000","message":"I suggest linking to the admin user guide.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\u003ccomputeroutput\u003e+--------------+----------------------------------+"},{"line_number":97,"context_line":"| Field        | Value                            |"},{"line_number":98,"context_line":"+--------------+----------------------------------+"},{"line_number":99,"context_line":"| adminurl     | http://controller:35357/v2.0     |"},{"line_number":100,"context_line":"| id           | 4a9ffc04b8eb4848a49625a3df0170e5 |"},{"line_number":101,"context_line":"| internalurl  | http://controller:5000/v2.0      |"},{"line_number":102,"context_line":"| publicurl    | http://controller:5000/v2.0      |"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_60f95c80","line":99,"updated":"2015-03-27 16:42:36.000000000","message":"Do we have to use \u003creplaceable\u003econtroller\u003c/replaceable\u003e here, too?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":96,"context_line":"\u003ccomputeroutput\u003e+--------------+----------------------------------+"},{"line_number":97,"context_line":"| Field        | Value                            |"},{"line_number":98,"context_line":"+--------------+----------------------------------+"},{"line_number":99,"context_line":"| adminurl     | http://controller:35357/v2.0     |"},{"line_number":100,"context_line":"| id           | 4a9ffc04b8eb4848a49625a3df0170e5 |"},{"line_number":101,"context_line":"| internalurl  | http://controller:5000/v2.0      |"},{"line_number":102,"context_line":"| publicurl    | http://controller:5000/v2.0      |"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_dfda5278","line":99,"in_reply_to":"fa963961_60f95c80","updated":"2015-03-30 15:28:40.000000000","message":"I think we only use it in configuration files, not command input or output. Also, the guide specifically calls the controller \"controller\" in the architecture, so I\u0027m leaning toward no longer putting it in \u003creplaceable\u003e tags.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"278a16e84c7593fde3d50f9413b91e402b9b6aaa","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"      \u003cwarning\u003e"},{"line_number":33,"context_line":"        \u003cpara\u003eFor security reasons, do not use the temporary authentication"},{"line_number":34,"context_line":"          token for longer than necessary to initialize the Identity"}],"source_content_type":"application/xml","patch_set":8,"id":"da9b358b_95182b86","line":31,"updated":"2015-03-30 16:02:07.000000000","message":"Projects* not Project","commit_id":"8ac8ec1a46b182ee47620d90be0a78e3be684200"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"176625bba44e343e842f3618e4671759410cf1a1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"      \u003cwarning\u003e"},{"line_number":33,"context_line":"        \u003cpara\u003eFor security reasons, do not use the temporary authentication"},{"line_number":34,"context_line":"          token for longer than necessary to initialize the Identity"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_ebd31337","line":31,"updated":"2015-03-30 16:58:09.000000000","message":"It\u0027s called \"Projects\" and not \"Project\".","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"79d5ab9306855c68c57ddfcf222ac7589db2e05a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        uses environment variables to reduce command length. For more"},{"line_number":29,"context_line":"        information, see the"},{"line_number":30,"context_line":"        \u003clink xlink:href\u003d\"http://docs.openstack.org/openstack-ops/content/projects_users.html\""},{"line_number":31,"context_line":"        \u003eOperations Guide - Managing Project and Users\u003c/link\u003e.\u003c/para\u003e"},{"line_number":32,"context_line":"      \u003cwarning\u003e"},{"line_number":33,"context_line":"        \u003cpara\u003eFor security reasons, do not use the temporary authentication"},{"line_number":34,"context_line":"          token for longer than necessary to initialize the Identity"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_eea1e1aa","line":31,"in_reply_to":"da9b358b_ebd31337","updated":"2015-03-30 17:11:43.000000000","message":"I\u0027m just removing this completely for now.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"052312d13a8b9d8ca0240be788ad2d136285ac3d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"      \u003cpara\u003eReplace \u003creplaceable\u003eADMIN_TOKEN\u003c/replaceable\u003e with the"},{"line_number":38,"context_line":"        authentication token that you generated in"},{"line_number":39,"context_line":"        \u003cxref linkend\u003d\"keystone-install\"/\u003e. For example:\u003c/para\u003e"},{"line_number":40,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eexport OS_TOKEN\u003d294a4c8a8a475f9b9836\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":41,"context_line":"    \u003c/step\u003e"},{"line_number":42,"context_line":"    \u003cstep\u003e"},{"line_number":43,"context_line":"      \u003cpara\u003eConfigure the endpoint URL:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":12,"id":"baa041b7_5503b542","line":40,"updated":"2015-04-02 17:42:44.000000000","message":"Good idea, hope this reduces some confusion!","commit_id":"c42ef395ca951a5f3d1fc03c7fb3c7bb9c4b6d84"}],"doc/install-guide/section_keystone-users.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":42,"context_line":"          \u003c/note\u003e"},{"line_number":43,"context_line":"        \u003c/step\u003e"},{"line_number":44,"context_line":"        \u003cstep\u003e"},{"line_number":45,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003eadmin\u003c/literal\u003e user in the"},{"line_number":46,"context_line":"            \u003cliteral\u003eadmin\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":47,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project admin --password-prompt admin\u003c/userinput\u003e"},{"line_number":48,"context_line":"\u003ccomputeroutput\u003eUser Password:"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_31bfecab","line":45,"updated":"2015-03-26 05:05:19.000000000","message":"the user isn\u0027t created \"in\" the project, they are at the same level.\nthis command basically assigns the user a \u0027default project\u0027 of \u0027admin\u0027.\n\nthis is a concept we are trying to move away from, since it\u0027s not supported in v3. \n\nIf you remove the --project argument from the call at line 47, and continue with the call on line 74, it has the same effect.","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"          \u003c/note\u003e"},{"line_number":43,"context_line":"        \u003c/step\u003e"},{"line_number":44,"context_line":"        \u003cstep\u003e"},{"line_number":45,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003eadmin\u003c/literal\u003e user in the"},{"line_number":46,"context_line":"            \u003cliteral\u003eadmin\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":47,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project admin --password-prompt admin\u003c/userinput\u003e"},{"line_number":48,"context_line":"\u003ccomputeroutput\u003eUser Password:"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_8bb0358d","line":45,"in_reply_to":"1a6ced46_31bfecab","updated":"2015-03-26 14:51:02.000000000","message":"Done","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        \u003cstep\u003e"},{"line_number":45,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003eadmin\u003c/literal\u003e user in the"},{"line_number":46,"context_line":"            \u003cliteral\u003eadmin\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":47,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project admin --password-prompt admin\u003c/userinput\u003e"},{"line_number":48,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":49,"context_line":"Repeat User Password:"},{"line_number":50,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_31d60cf2","line":47,"updated":"2015-03-26 05:05:19.000000000","message":"in this command you are calling the positional argument \u0027admin\u0027 (the user name) at the end. On line 30, the positional argument \u0027admin\u0027 (the project name) is called first.\n\nI think the positional args should always go at the end; but as long as it\u0027s consistent i\u0027m okay (either last always or first always)","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        \u003cstep\u003e"},{"line_number":45,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003eadmin\u003c/literal\u003e user in the"},{"line_number":46,"context_line":"            \u003cliteral\u003eadmin\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":47,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project admin --password-prompt admin\u003c/userinput\u003e"},{"line_number":48,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":49,"context_line":"Repeat User Password:"},{"line_number":50,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_2ba7e950","line":47,"in_reply_to":"1a6ced46_31d60cf2","updated":"2015-03-26 14:51:02.000000000","message":"Done","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    \u003cstep\u003e"},{"line_number":112,"context_line":"      \u003cpara\u003eRegular (non-admin) tasks should use an unprivileged project"},{"line_number":113,"context_line":"        and user. As an example, this guide creates the"},{"line_number":114,"context_line":"        \u003cliteral\u003edemo\u003c/literal\u003e project and user.\u003c/para\u003e"},{"line_number":115,"context_line":"      \u003csubsteps\u003e"},{"line_number":116,"context_line":"        \u003cstep\u003e"},{"line_number":117,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_f13d542c","line":114,"updated":"2015-03-26 05:05:19.000000000","message":"at the end of this guide the demo user has no role on the demo project.\n\ncall \u0027openstack role add\u0027 to assign a role","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    \u003cstep\u003e"},{"line_number":112,"context_line":"      \u003cpara\u003eRegular (non-admin) tasks should use an unprivileged project"},{"line_number":113,"context_line":"        and user. As an example, this guide creates the"},{"line_number":114,"context_line":"        \u003cliteral\u003edemo\u003c/literal\u003e project and user.\u003c/para\u003e"},{"line_number":115,"context_line":"      \u003csubsteps\u003e"},{"line_number":116,"context_line":"        \u003cstep\u003e"},{"line_number":117,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_482fd3a1","line":114,"in_reply_to":"1a6ced46_f13d542c","updated":"2015-03-26 14:51:02.000000000","message":"Oops... for some reason I thought users obtain the default _member_ role.","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"975644aa418e1cd63e9e0cfbac9ed82ee8c71cb1","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \u003cstep\u003e"},{"line_number":133,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e in the"},{"line_number":134,"context_line":"            \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":135,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project demo --password-prompt demo\u003c/userinput\u003e"},{"line_number":136,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":137,"context_line":"Repeat User Password:"},{"line_number":138,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":3,"id":"1a6ced46_91334061","line":135,"updated":"2015-03-26 05:05:19.000000000","message":"same argument here as above, no need to use --project","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"99973214cc64a1bd3f9478e437d2313b656a2e5c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \u003cstep\u003e"},{"line_number":133,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e in the"},{"line_number":134,"context_line":"            \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":135,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --project demo --password-prompt demo\u003c/userinput\u003e"},{"line_number":136,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":137,"context_line":"Repeat User Password:"},{"line_number":138,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":3,"id":"fa963961_eb67c123","line":135,"in_reply_to":"1a6ced46_91334061","updated":"2015-03-26 14:51:02.000000000","message":"Done","commit_id":"b8a617d27274bd06e9aecd19178b497a9f6e3c33"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e99d3de6e90ebe5c03fd357293e2cb9d1eb99f90","unresolved":false,"context_lines":[{"line_number":46,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --password-prompt admin\u003c/userinput\u003e"},{"line_number":47,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":48,"context_line":"Repeat User Password:"},{"line_number":49,"context_line":"+------------+----------------------------------+"},{"line_number":50,"context_line":"| Field      | Value                            |"},{"line_number":51,"context_line":"+------------+----------------------------------+"},{"line_number":52,"context_line":"| email      | None                             |"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_df7149e2","line":49,"updated":"2015-03-26 21:18:59.000000000","message":"project_id was removed from the output here, but it should stay, and have output of None","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"29d7554878f9eee954c21f5eb3cccf144bd3b3f6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --password-prompt admin\u003c/userinput\u003e"},{"line_number":47,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":48,"context_line":"Repeat User Password:"},{"line_number":49,"context_line":"+------------+----------------------------------+"},{"line_number":50,"context_line":"| Field      | Value                            |"},{"line_number":51,"context_line":"+------------+----------------------------------+"},{"line_number":52,"context_line":"| email      | None                             |"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_9b74e0fd","line":49,"in_reply_to":"fa963961_df7149e2","updated":"2015-03-27 12:48:32.000000000","message":"The output lacks the project_id field in the client included with Ubuntu (1.0.1).","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      \u003c/note\u003e"},{"line_number":90,"context_line":"    \u003c/step\u003e"},{"line_number":91,"context_line":"    \u003cstep\u003e"},{"line_number":92,"context_line":"      \u003cpara\u003eOpenStack requires a service project that contains a unique"},{"line_number":93,"context_line":"        user for each service that you add to your environment.\u003c/para\u003e"},{"line_number":94,"context_line":"      \u003csubsteps\u003e"},{"line_number":95,"context_line":"        \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_75eee2ed","line":92,"updated":"2015-03-29 14:01:55.000000000","message":"This isn\u0027t required, you could use the admin user for everything. It\u0027s better to have a service project.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \u003cliteral\u003edemo\u003c/literal\u003e project and user.\u003c/para\u003e"},{"line_number":113,"context_line":"      \u003csubsteps\u003e"},{"line_number":114,"context_line":"        \u003cstep\u003e"},{"line_number":115,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":116,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack project create --description \"Demo Project\" demo\u003c/userinput\u003e"},{"line_number":117,"context_line":"\u003ccomputeroutput\u003e+-------------+----------------------------------+"},{"line_number":118,"context_line":"| Field       | Value                            |"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_55babee2","line":115,"updated":"2015-03-29 14:01:55.000000000","message":"why create the demo project? If deployments really need to do this we should figure out why so we can fix whatever is the reason for it, since deployments shouldn\u0027t need to do this.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        \u003c/step\u003e"},{"line_number":130,"context_line":"        \u003cstep\u003e"},{"line_number":131,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e user:\u003c/para\u003e"},{"line_number":132,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack user create --password-prompt demo\u003c/userinput\u003e"},{"line_number":133,"context_line":"\u003ccomputeroutput\u003eUser Password:"},{"line_number":134,"context_line":"Repeat User Password:"},{"line_number":135,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_15b436f0","line":132,"updated":"2015-03-29 14:01:55.000000000","message":"why creating a demo user?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e99d3de6e90ebe5c03fd357293e2cb9d1eb99f90","unresolved":false,"context_lines":[{"line_number":139,"context_line":"| enabled    | True                             |"},{"line_number":140,"context_line":"| id         | 3a81e6c8103b46709ef8d141308d4c72 |"},{"line_number":141,"context_line":"| name       | demo                             |"},{"line_number":142,"context_line":"| project_id | ab8ea576c0574b6092bb99150449b2d3 |"},{"line_number":143,"context_line":"| username   | demo                             |"},{"line_number":144,"context_line":"+------------+----------------------------------+\u003c/computeroutput\u003e\u003c/screen\u003e"},{"line_number":145,"context_line":"        \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_5ff9b94c","line":142,"updated":"2015-03-26 21:18:59.000000000","message":"project_id should be None here","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"29d7554878f9eee954c21f5eb3cccf144bd3b3f6","unresolved":false,"context_lines":[{"line_number":139,"context_line":"| enabled    | True                             |"},{"line_number":140,"context_line":"| id         | 3a81e6c8103b46709ef8d141308d4c72 |"},{"line_number":141,"context_line":"| name       | demo                             |"},{"line_number":142,"context_line":"| project_id | ab8ea576c0574b6092bb99150449b2d3 |"},{"line_number":143,"context_line":"| username   | demo                             |"},{"line_number":144,"context_line":"+------------+----------------------------------+\u003c/computeroutput\u003e\u003c/screen\u003e"},{"line_number":145,"context_line":"        \u003c/step\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_7b60fc35","line":142,"in_reply_to":"fa963961_5ff9b94c","updated":"2015-03-27 12:48:32.000000000","message":"Same here.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"176625bba44e343e842f3618e4671759410cf1a1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      \u003c/note\u003e"},{"line_number":90,"context_line":"    \u003c/step\u003e"},{"line_number":91,"context_line":"    \u003cstep\u003e"},{"line_number":92,"context_line":"      \u003cpara\u003eOpenStack requires a service project that contains a unique"},{"line_number":93,"context_line":"        user for each service that you add to your environment.\u003c/para\u003e"},{"line_number":94,"context_line":"      \u003csubsteps\u003e"},{"line_number":95,"context_line":"        \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_2bf21bd3","line":92,"updated":"2015-03-30 16:58:09.000000000","message":"A service project isn\u0027t required, you could use the admin project for everything.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"79d5ab9306855c68c57ddfcf222ac7589db2e05a","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      \u003c/note\u003e"},{"line_number":90,"context_line":"    \u003c/step\u003e"},{"line_number":91,"context_line":"    \u003cstep\u003e"},{"line_number":92,"context_line":"      \u003cpara\u003eOpenStack requires a service project that contains a unique"},{"line_number":93,"context_line":"        user for each service that you add to your environment.\u003c/para\u003e"},{"line_number":94,"context_line":"      \u003csubsteps\u003e"},{"line_number":95,"context_line":"        \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_2ea0e99e","line":92,"in_reply_to":"da9b358b_2bf21bd3","updated":"2015-03-30 17:11:43.000000000","message":"I think best practices use a service project.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"176625bba44e343e842f3618e4671759410cf1a1","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \u003cliteral\u003edemo\u003c/literal\u003e project and user.\u003c/para\u003e"},{"line_number":113,"context_line":"      \u003csubsteps\u003e"},{"line_number":114,"context_line":"        \u003cstep\u003e"},{"line_number":115,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":116,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack project create --description \"Demo Project\" demo\u003c/userinput\u003e"},{"line_number":117,"context_line":"\u003ccomputeroutput\u003e+-------------+----------------------------------+"},{"line_number":118,"context_line":"| Field       | Value                            |"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_0bef57e9","line":115,"updated":"2015-03-30 16:58:09.000000000","message":"(unrelated) No need to create a demo project.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"79d5ab9306855c68c57ddfcf222ac7589db2e05a","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        \u003cliteral\u003edemo\u003c/literal\u003e project and user.\u003c/para\u003e"},{"line_number":113,"context_line":"      \u003csubsteps\u003e"},{"line_number":114,"context_line":"        \u003cstep\u003e"},{"line_number":115,"context_line":"          \u003cpara\u003eCreate the \u003cliteral\u003edemo\u003c/literal\u003e project:\u003c/para\u003e"},{"line_number":116,"context_line":"          \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack project create --description \"Demo Project\" demo\u003c/userinput\u003e"},{"line_number":117,"context_line":"\u003ccomputeroutput\u003e+-------------+----------------------------------+"},{"line_number":118,"context_line":"| Field       | Value                            |"}],"source_content_type":"application/xml","patch_set":9,"id":"da9b358b_6e7dd11b","line":115,"in_reply_to":"da9b358b_0bef57e9","updated":"2015-03-30 17:11:43.000000000","message":"We do this for the same reason people shouldn\u0027t use root everywhere.","commit_id":"8a21391532d1bc7c6d40478ec36cc12cfe446c03"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"30076446aabc24ea1fb26139452eb083aaa56210","unresolved":false,"context_lines":[{"line_number":89,"context_line":"      \u003c/note\u003e"},{"line_number":90,"context_line":"    \u003c/step\u003e"},{"line_number":91,"context_line":"    \u003cstep\u003e"},{"line_number":92,"context_line":"      \u003cpara\u003eOpenStack requires a service project that contains a unique"},{"line_number":93,"context_line":"        user for each service that you add to your environment.\u003c/para\u003e"},{"line_number":94,"context_line":"      \u003csubsteps\u003e"},{"line_number":95,"context_line":"        \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"da9b358b_d95dbb7a","line":92,"updated":"2015-03-31 00:36:09.000000000","message":"Change \"requires\" to \"recommends\". OpenStack doesn\u0027t require a service project.","commit_id":"ef2216cc73a967c9780b6fb99e74578300bdf0dc"}],"doc/install-guide/section_keystone-verify.xml":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  \u003cprocedure\u003e"},{"line_number":11,"context_line":"    \u003cstep\u003e"},{"line_number":12,"context_line":"      \u003cpara\u003eUnset the temporary \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e and"},{"line_number":13,"context_line":"      \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variables:\u003c/para\u003e"},{"line_number":14,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eunset OS_TOKEN OS_URL\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":15,"context_line":"    \u003c/step\u003e"},{"line_number":16,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_d5cece82","line":13,"updated":"2015-03-29 14:01:55.000000000","message":"Is there a short section before this that tell the deployer how to disable admin token support?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  \u003cprocedure\u003e"},{"line_number":11,"context_line":"    \u003cstep\u003e"},{"line_number":12,"context_line":"      \u003cpara\u003eUnset the temporary \u003cenvar\u003eOS_TOKEN\u003c/envar\u003e and"},{"line_number":13,"context_line":"      \u003cenvar\u003eOS_URL\u003c/envar\u003e environment variables:\u003c/para\u003e"},{"line_number":14,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eunset OS_TOKEN OS_URL\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":15,"context_line":"    \u003c/step\u003e"},{"line_number":16,"context_line":"    \u003cstep\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_ff4bd629","line":13,"in_reply_to":"da9b358b_d5cece82","updated":"2015-03-30 15:28:40.000000000","message":"No. I mentioned this potential issue in an earlier comment.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eunset OS_TOKEN OS_URL\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":15,"context_line":"    \u003c/step\u003e"},{"line_number":16,"context_line":"    \u003cstep\u003e"},{"line_number":17,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, request an"},{"line_number":18,"context_line":"        authentication token from the Identity version 2 API:\u003c/para\u003e"},{"line_number":19,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":20,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_95c84676","line":17,"updated":"2015-03-29 14:01:55.000000000","message":"remove \"project and\"","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eunset OS_TOKEN OS_URL\u003c/userinput\u003e\u003c/screen\u003e"},{"line_number":15,"context_line":"    \u003c/step\u003e"},{"line_number":16,"context_line":"    \u003cstep\u003e"},{"line_number":17,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, request an"},{"line_number":18,"context_line":"        authentication token from the Identity version 2 API:\u003c/para\u003e"},{"line_number":19,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":20,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_9f696a8e","line":17,"in_reply_to":"da9b358b_95c84676","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    \u003cstep\u003e"},{"line_number":17,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, request an"},{"line_number":18,"context_line":"        authentication token from the Identity version 2 API:\u003c/para\u003e"},{"line_number":19,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":20,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":21,"context_line":"  token issue\u003c/userinput\u003e"},{"line_number":22,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_c0302859","line":19,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        projects and users. Projects and users can use the same names in"},{"line_number":39,"context_line":"        different domains. Therefore, in order to use the version 3 API,"},{"line_number":40,"context_line":"        requests must also explicitly contain at least the"},{"line_number":41,"context_line":"        \u003cliteral\u003edefault\u003c/literal\u003e domain.\u003c/para\u003e"},{"line_number":42,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":43,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":44,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_d595ae40","line":41,"updated":"2015-03-29 14:01:55.000000000","message":"this isn\u0027t totally accurate since if IDs are used the domain doesn\u0027t need to be specified. When the v3 API is used, the domain can also be implicit.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        projects and users. Projects and users can use the same names in"},{"line_number":39,"context_line":"        different domains. Therefore, in order to use the version 3 API,"},{"line_number":40,"context_line":"        requests must also explicitly contain at least the"},{"line_number":41,"context_line":"        \u003cliteral\u003edefault\u003c/literal\u003e domain.\u003c/para\u003e"},{"line_number":42,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":43,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":44,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_9ff96a50","line":41,"in_reply_to":"da9b358b_d595ae40","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        different domains. Therefore, in order to use the version 3 API,"},{"line_number":40,"context_line":"        requests must also explicitly contain at least the"},{"line_number":41,"context_line":"        \u003cliteral\u003edefault\u003c/literal\u003e domain.\u003c/para\u003e"},{"line_number":42,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":43,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":44,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":45,"context_line":"  token issue\u003c/userinput\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_a0352447","line":42,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u003cliteral\u003edefault\u003c/literal\u003e domain.\u003c/para\u003e"},{"line_number":42,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":43,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":44,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":45,"context_line":"  token issue\u003c/userinput\u003e"},{"line_number":46,"context_line":"\u003ccomputeroutput\u003ePassword:"},{"line_number":47,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_959f265f","line":44,"updated":"2015-03-29 14:01:55.000000000","message":"in previous sections environment variables were used to specify all these parameters, suggest continue using environment variables.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u003cliteral\u003edefault\u003c/literal\u003e domain.\u003c/para\u003e"},{"line_number":42,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":43,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":44,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":45,"context_line":"  token issue\u003c/userinput\u003e"},{"line_number":46,"context_line":"\u003ccomputeroutput\u003ePassword:"},{"line_number":47,"context_line":"+------------+----------------------------------+"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_3f449e72","line":44,"in_reply_to":"da9b358b_959f265f","updated":"2015-03-30 15:28:40.000000000","message":"The guide doesn\u0027t implement environment variables (openrc) until the next section. We could implement them before this section to simplify the command length, but I think the goal is demonstrating different ways to use the client.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    \u003c/step\u003e"},{"line_number":60,"context_line":"    \u003cstep\u003e"},{"line_number":61,"context_line":"      \u003cpara os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003eAs the"},{"line_number":62,"context_line":"        \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list projects to verify"},{"line_number":63,"context_line":"        that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user can execute"},{"line_number":64,"context_line":"        admin-only CLI commands and that the Identity service contains the"},{"line_number":65,"context_line":"        projects that you created in \u003cxref linkend\u003d\"keystone-users\"/\u003e:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_55887e22","line":62,"updated":"2015-03-29 14:01:55.000000000","message":"remove \"project and\"","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    \u003c/step\u003e"},{"line_number":60,"context_line":"    \u003cstep\u003e"},{"line_number":61,"context_line":"      \u003cpara os\u003d\"ubuntu;rhel;centos;fedora;sles;opensuse\"\u003eAs the"},{"line_number":62,"context_line":"        \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list projects to verify"},{"line_number":63,"context_line":"        that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user can execute"},{"line_number":64,"context_line":"        admin-only CLI commands and that the Identity service contains the"},{"line_number":65,"context_line":"        projects that you created in \u003cxref linkend\u003d\"keystone-users\"/\u003e:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_7ad59441","line":62,"in_reply_to":"da9b358b_55887e22","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user can execute"},{"line_number":64,"context_line":"        admin-only CLI commands and that the Identity service contains the"},{"line_number":65,"context_line":"        projects that you created in \u003cxref linkend\u003d\"keystone-users\"/\u003e:\u003c/para\u003e"},{"line_number":66,"context_line":"      \u003cpara os\u003d\"debian\"\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list"},{"line_number":67,"context_line":"        project to verify that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user"},{"line_number":68,"context_line":"        can execute admin-only CLI commands and that the Identity service"},{"line_number":69,"context_line":"        contains the projects created by the configuration tool:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_f5867212","line":66,"updated":"2015-03-29 14:01:55.000000000","message":"remove \"project and\"\n\nthis comment applies throughout this document.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user can execute"},{"line_number":64,"context_line":"        admin-only CLI commands and that the Identity service contains the"},{"line_number":65,"context_line":"        projects that you created in \u003cxref linkend\u003d\"keystone-users\"/\u003e:\u003c/para\u003e"},{"line_number":66,"context_line":"      \u003cpara os\u003d\"debian\"\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list"},{"line_number":67,"context_line":"        project to verify that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user"},{"line_number":68,"context_line":"        can execute admin-only CLI commands and that the Identity service"},{"line_number":69,"context_line":"        contains the projects created by the configuration tool:\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_5acad0a2","line":66,"in_reply_to":"da9b358b_f5867212","updated":"2015-03-30 15:28:40.000000000","message":"Done","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        project to verify that the \u003cliteral\u003eadmin\u003c/literal\u003e project and user"},{"line_number":68,"context_line":"        can execute admin-only CLI commands and that the Identity service"},{"line_number":69,"context_line":"        contains the projects created by the configuration tool:\u003c/para\u003e"},{"line_number":70,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":71,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":72,"context_line":"  project list\u003c/userinput\u003e"},{"line_number":73,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_803a2035","line":70,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":91,"context_line":"      \u003cpara os\u003d\"debian\"\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list"},{"line_number":92,"context_line":"        users to verify that the Identity service contains the users"},{"line_number":93,"context_line":"        created by the configuration tool:\u003c/para\u003e"},{"line_number":94,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":95,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":96,"context_line":"  user list\u003c/userinput\u003e"},{"line_number":97,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_204a34c6","line":94,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":114,"context_line":"      \u003cpara os\u003d\"debian\"\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e project and user, list"},{"line_number":115,"context_line":"        roles to verify that the Identity service contains the role"},{"line_number":116,"context_line":"        created by the configuration tool:\u003c/para\u003e"},{"line_number":117,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":118,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":119,"context_line":"  role list\u003c/userinput\u003e"},{"line_number":120,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_004730bc","line":117,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b364bca008523444d8c878f8e60a9d91c0f30df9","unresolved":false,"context_lines":[{"line_number":121,"context_line":"+----------------------------------+----------+"},{"line_number":122,"context_line":"| ID                               | Name     |"},{"line_number":123,"context_line":"+----------------------------------+----------+"},{"line_number":124,"context_line":"| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |"},{"line_number":125,"context_line":"| cd2cb9a39e874ea69e5d4b896eb16128 | admin    |"},{"line_number":126,"context_line":"+----------------------------------+----------+\u003c/computeroutput\u003e\u003c/screen\u003e"},{"line_number":127,"context_line":"      \u003cnote\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_9576063d","line":124,"updated":"2015-03-29 14:01:55.000000000","message":"No need to continue using the _member_ role in v3.","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"ff062a77d532279a1fae235a08ba134757761a13","unresolved":false,"context_lines":[{"line_number":121,"context_line":"+----------------------------------+----------+"},{"line_number":122,"context_line":"| ID                               | Name     |"},{"line_number":123,"context_line":"+----------------------------------+----------+"},{"line_number":124,"context_line":"| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |"},{"line_number":125,"context_line":"| cd2cb9a39e874ea69e5d4b896eb16128 | admin    |"},{"line_number":126,"context_line":"+----------------------------------+----------+\u003c/computeroutput\u003e\u003c/screen\u003e"},{"line_number":127,"context_line":"      \u003cnote\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"da9b358b_fa48842f","line":124,"in_reply_to":"da9b358b_9576063d","updated":"2015-03-30 15:28:40.000000000","message":"The Identity service still creates it... and I suspect the dashboard still expects users to contain it. Can you provide more explanation and a recommended configuration?","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    \u003cstep\u003e"},{"line_number":133,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003edemo\u003c/literal\u003e project and user, request an"},{"line_number":134,"context_line":"        authentication token from the Identity version 3 API:\u003c/para\u003e"},{"line_number":135,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:5000 \\"},{"line_number":136,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":137,"context_line":"  --os-project-name demo --os-username demo --os-auth-type password \\"},{"line_number":138,"context_line":"  token issue\u003c/userinput\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_a00c0495","line":135,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"43aa4953849dcdf05c176d6a58909d51e03c7023","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    \u003cstep\u003e"},{"line_number":155,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003edemo\u003c/literal\u003e project and user, attempt to list"},{"line_number":156,"context_line":"        users to verify that it cannot execute admin-only CLI commands:\u003c/para\u003e"},{"line_number":157,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:5000 \\"},{"line_number":158,"context_line":"  --os-project-domain-id default --os-user-domain-id default \\"},{"line_number":159,"context_line":"  --os-project-name demo --os-username demo --os-auth-type password \\"},{"line_number":160,"context_line":"  user list\u003c/userinput\u003e"}],"source_content_type":"application/xml","patch_set":7,"id":"fa963961_801100af","line":157,"updated":"2015-03-27 16:42:36.000000000","message":"\u003creplaceable\u003econtroller\u003c/replaceable\u003e","commit_id":"4de10f8b187f5688350578b0da964e9a4c49589f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dab8cdbd4b9417c226ce58ba208b66e9d6c7d335","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  \u003cprocedure\u003e"},{"line_number":11,"context_line":"    \u003cstep\u003e"},{"line_number":12,"context_line":"      \u003cpara\u003eFor security reasons, disable the temporary authentication"},{"line_number":13,"context_line":"        token:\u003c/para\u003e"},{"line_number":14,"context_line":"      \u003cpara\u003eEdit the \u003cfilename\u003e/etc/keystone/keystone.conf\u003c/filename\u003e file"},{"line_number":15,"context_line":"        and comment out the \u003cliteral\u003eadmin_token\u003c/literal\u003e option in the"},{"line_number":16,"context_line":"        \u003cliteral\u003e[DEFAULT]\u003c/literal\u003e section.\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":11,"id":"baa041b7_00363b03","line":13,"updated":"2015-04-01 17:53:09.000000000","message":"This DOES NOT disable the authentication token. It sets the admin token to the default value of \"ADMIN\".\n\nTo disable the admin token, you need to edit the keystone-paste.ini file to remove admin_token_auth from the pipelines.\n\nby the way - large chunks of this review could have been merged already if this new piece wasn\u0027t added to it. It\u0027s more efficient to split things up into separate reviews.","commit_id":"a925434bfce0f9faeac22aab62f465899b2f7c9a"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"75e97c11270799b0462773b9057d2115f18f5524","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \u003cstep\u003e"},{"line_number":26,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e user, request an authentication"},{"line_number":27,"context_line":"        token from the Identity version 2 API:\u003c/para\u003e"},{"line_number":28,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":29,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":30,"context_line":"  token issue\u003c/userinput\u003e"},{"line_number":31,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":12,"id":"baa041b7_3977f13b","line":28,"updated":"2015-04-03 13:21:45.000000000","message":"You really have to use the v2.0 API first?\n\nAlso it\u0027s v2.0 instead of 2.","commit_id":"c42ef395ca951a5f3d1fc03c7fb3c7bb9c4b6d84"},{"author":{"_account_id":9515,"name":"Matthew Kassawara","email":"mkassawara@gmail.com","username":"ionosphere80"},"change_message_id":"dbd0b988b32b62b567e3f1832c14eb801c1558f0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \u003cstep\u003e"},{"line_number":26,"context_line":"      \u003cpara\u003eAs the \u003cliteral\u003eadmin\u003c/literal\u003e user, request an authentication"},{"line_number":27,"context_line":"        token from the Identity version 2 API:\u003c/para\u003e"},{"line_number":28,"context_line":"      \u003cscreen\u003e\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003eopenstack --os-auth-url http://controller:35357 \\"},{"line_number":29,"context_line":"  --os-project-name admin --os-username admin --os-auth-type password \\"},{"line_number":30,"context_line":"  token issue\u003c/userinput\u003e"},{"line_number":31,"context_line":"\u003ccomputeroutput\u003ePassword:"}],"source_content_type":"application/xml","patch_set":12,"id":"baa041b7_c4125c62","line":28,"in_reply_to":"baa041b7_3977f13b","updated":"2015-04-03 14:03:31.000000000","message":"No other variants of version 2 exist, so I think just 2 reads better than 2.0. Anyway, this initial patch doesn\u0027t assume that everything can use version 3 yet and therefore tests version 2. If we determine that everything works with version 3, we can remove tests for version 2.","commit_id":"c42ef395ca951a5f3d1fc03c7fb3c7bb9c4b6d84"}]}
