)]}'
{"README.md":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fe35014f4b1f8502fe6382f3e0aa1332a4321fe5","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    disable_service horizon"},{"line_number":348,"context_line":"    KEYSTONE_SERVICE_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":349,"context_line":"    KEYSTONE_AUTH_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":350,"context_line":"    export OS_REGION_NAME\u003dRegionTwo"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"# Cells"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":16,"id":"1ae5cdf2_940c513b","line":350,"updated":"2014-06-25 13:40:45.000000000","message":"Would you mind documenting, in this readme.md, the difference between KEYSTONE_SERVICE_HOST and KEYSTONE_AUTH_HOST ?\n\nI mean why do you need to introduce a new variable ?","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e6e1f9e4ca8b3913fd2e48ac0a9def5602540d3c","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    disable_service horizon"},{"line_number":348,"context_line":"    KEYSTONE_SERVICE_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":349,"context_line":"    KEYSTONE_AUTH_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":350,"context_line":"    export OS_REGION_NAME\u003dRegionTwo"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"# Cells"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":16,"id":"1ae5cdf2_00a0daf2","line":350,"in_reply_to":"1ae5cdf2_1c94d68a","updated":"2014-06-26 08:59:55.000000000","message":"Ah thanks, Dean !","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    disable_service horizon"},{"line_number":348,"context_line":"    KEYSTONE_SERVICE_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":349,"context_line":"    KEYSTONE_AUTH_HOST\u003d\u003cKEYSTONE_IP_ADDRESS_FROM_REGION_ONE\u003e"},{"line_number":350,"context_line":"    export OS_REGION_NAME\u003dRegionTwo"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"# Cells"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":16,"id":"1ae5cdf2_1c94d68a","line":350,"in_reply_to":"1ae5cdf2_940c513b","updated":"2014-06-25 22:01:14.000000000","message":"They are not new vars, lib/keystone has defined both for a long time.  KEYSTONE_SERVICE_HOST is the public endpoint and KEYSTONE_AUTH_HOST is the admin endpoint.  They often have the same value, but not always.  In the region use case they will probably always be the same.","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"}],"functions-common":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":720,"context_line":"}"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"# Gets or creates user"},{"line_number":723,"context_line":"# Usage: get_or_create_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e \u003cemail\u003e"},{"line_number":724,"context_line":"function get_or_create_user {"},{"line_number":725,"context_line":"    # Gets user id"},{"line_number":726,"context_line":"    USER_ID\u003d$(openstack user list \\"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"1ae5cdf2_6bb6f126","line":723,"updated":"2014-06-25 22:01:14.000000000","message":"email could be made an optional arg, we have stopped adding it in new projects.  It was originally there only as a demonstration of using the option on the command line.","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"0490aa0d24660b4b9b87136aae502e4151aee19d","unresolved":false,"context_lines":[{"line_number":720,"context_line":"}"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"# Gets or creates user"},{"line_number":723,"context_line":"# Usage: get_or_create_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e \u003cemail\u003e"},{"line_number":724,"context_line":"function get_or_create_user {"},{"line_number":725,"context_line":"    # Gets user id"},{"line_number":726,"context_line":"    USER_ID\u003d$(openstack user list \\"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"1ae5cdf2_71f40e87","line":723,"in_reply_to":"1ae5cdf2_6bb6f126","updated":"2014-06-26 10:33:30.000000000","message":"Won\u0027t fix","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":724,"context_line":"function get_or_create_user {"},{"line_number":725,"context_line":"    # Gets user id"},{"line_number":726,"context_line":"    USER_ID\u003d$(openstack user list \\"},{"line_number":727,"context_line":"        | grep \" $1 \" | get_field 1)"},{"line_number":728,"context_line":"    if [[ -z \"$USER_ID\" ]]; then"},{"line_number":729,"context_line":"        # Creates new user"},{"line_number":730,"context_line":"        USER_ID\u003d$(openstack user create \\"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"1ae5cdf2_9cd1c631","line":727,"updated":"2014-06-25 22:01:14.000000000","message":"While this is probably fine for DevStack use cases, it isn\u0027t a good general model for checking for a user existence, especially with list-length limited backends.  Checking the return code of \u0027openstack user show -f value -c id $1\u0027 works, plus you get the ID without the grep and get_field:\n\n  USER_ID\u003d$(openstack user show -f value -c id $1)","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"0490aa0d24660b4b9b87136aae502e4151aee19d","unresolved":false,"context_lines":[{"line_number":724,"context_line":"function get_or_create_user {"},{"line_number":725,"context_line":"    # Gets user id"},{"line_number":726,"context_line":"    USER_ID\u003d$(openstack user list \\"},{"line_number":727,"context_line":"        | grep \" $1 \" | get_field 1)"},{"line_number":728,"context_line":"    if [[ -z \"$USER_ID\" ]]; then"},{"line_number":729,"context_line":"        # Creates new user"},{"line_number":730,"context_line":"        USER_ID\u003d$(openstack user create \\"}],"source_content_type":"application/octet-stream","patch_set":16,"id":"1ae5cdf2_91ed1abb","line":727,"in_reply_to":"1ae5cdf2_9cd1c631","updated":"2014-06-26 10:33:30.000000000","message":"Thank for information. I will use this approach wherever it is possible","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"}],"stack.sh":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":334,"context_line":"rm -f $SSL_BUNDLE_FILE"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"# Region"},{"line_number":337,"context_line":"OS_REGION_NAME\u003d${OS_REGION_NAME:-RegionOne}"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"# Configure Projects"}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_ab863963","line":337,"updated":"2014-06-25 22:01:14.000000000","message":"This is probably a good candidate to go in stackrc as it is a global and I\u0027ve slowly been migrating global conf vars out of stack.sh to stackrc.  Really slowly.\n\nAlso, OS_REGION_NAME is specific to the CLIs and is probably not a good configuration variable name; REGION_NAME would be fine I think since any given DevStack configuration will have exactly one.","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"0490aa0d24660b4b9b87136aae502e4151aee19d","unresolved":false,"context_lines":[{"line_number":334,"context_line":"rm -f $SSL_BUNDLE_FILE"},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"# Region"},{"line_number":337,"context_line":"OS_REGION_NAME\u003d${OS_REGION_NAME:-RegionOne}"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"# Configure Projects"}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_d11162b0","line":337,"in_reply_to":"1ae5cdf2_ab863963","updated":"2014-06-26 10:33:30.000000000","message":"Done","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":724,"context_line":"setup_develop $OPENSTACKCLIENT_DIR"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"if is_service_enabled key; then"},{"line_number":727,"context_line":"    if [ \"$KEYSTONE_AUTH_HOST\" \u003d\u003d \"$SERVICE_HOST\" ]; then"},{"line_number":728,"context_line":"        install_keystone"},{"line_number":729,"context_line":"        configure_keystone"},{"line_number":730,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_1c005634","line":727,"updated":"2014-06-25 22:01:14.000000000","message":"This is not a good way to detect a Keystone install.  Is \u0027key\u0027 in your ENABLED_SERVICES in a secondary region?","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"0490aa0d24660b4b9b87136aae502e4151aee19d","unresolved":false,"context_lines":[{"line_number":724,"context_line":"setup_develop $OPENSTACKCLIENT_DIR"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"if is_service_enabled key; then"},{"line_number":727,"context_line":"    if [ \"$KEYSTONE_AUTH_HOST\" \u003d\u003d \"$SERVICE_HOST\" ]; then"},{"line_number":728,"context_line":"        install_keystone"},{"line_number":729,"context_line":"        configure_keystone"},{"line_number":730,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_d1c6c215","line":727,"in_reply_to":"1ae5cdf2_1c005634","updated":"2014-06-26 10:33:30.000000000","message":"The problem is that I do not want to install, configure or init the keystone in second region but I want to add endpoints. To do that I need to execute create_\u003cproject_name\u003e_accounts (i.e. create_nova_accounts).","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5400c8166886790dcc7292c8be8f65182b0f72e3","unresolved":false,"context_lines":[{"line_number":971,"context_line":"    export OS_TENANT_NAME\u003dadmin"},{"line_number":972,"context_line":"    export OS_USERNAME\u003dadmin"},{"line_number":973,"context_line":"    export OS_PASSWORD\u003d$ADMIN_PASSWORD"},{"line_number":974,"context_line":"    export OS_REGION_NAME\u003d$OS_REGION_NAME"},{"line_number":975,"context_line":"fi"},{"line_number":976,"context_line":""},{"line_number":977,"context_line":""}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_cbee2521","line":974,"updated":"2014-06-25 22:01:14.000000000","message":"Just to be clear, this would become:\n\n  export OS_REGION_NAME\u003d$REGION_NAME\n\nusing the suggestion from above.","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"0490aa0d24660b4b9b87136aae502e4151aee19d","unresolved":false,"context_lines":[{"line_number":971,"context_line":"    export OS_TENANT_NAME\u003dadmin"},{"line_number":972,"context_line":"    export OS_USERNAME\u003dadmin"},{"line_number":973,"context_line":"    export OS_PASSWORD\u003d$ADMIN_PASSWORD"},{"line_number":974,"context_line":"    export OS_REGION_NAME\u003d$OS_REGION_NAME"},{"line_number":975,"context_line":"fi"},{"line_number":976,"context_line":""},{"line_number":977,"context_line":""}],"source_content_type":"text/x-sh","patch_set":16,"id":"1ae5cdf2_91443ab9","line":974,"in_reply_to":"1ae5cdf2_cbee2521","updated":"2014-06-26 10:33:30.000000000","message":"Done","commit_id":"d841167cd7d31522af4062e5786c759f45ada602"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"8b667ebf762a0a1f300ea92b54db087f57228a4b","unresolved":false,"context_lines":[{"line_number":726,"context_line":"setup_develop $OPENSTACKCLIENT_DIR"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"if is_service_enabled key; then"},{"line_number":729,"context_line":"    if [ \"$KEYSTONE_AUTH_HOST\" \u003d\u003d \"$SERVICE_HOST\" ]; then"},{"line_number":730,"context_line":"        install_keystone"},{"line_number":731,"context_line":"        configure_keystone"},{"line_number":732,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":19,"id":"1ae5cdf2_7144f772","line":729,"updated":"2014-06-26 21:35:54.000000000","message":"I still think this is fragile, but short of introducting a new service name/type for account creation I don\u0027t have a better idea yet.","commit_id":"0af2da7ddbf5a48fb00f981794e2c862575fab1c"}]}
