)]}'
{"functions-common":[{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"9e9b02c5da5c59f2dbd39aaed6c37fad4b9c1d6d","unresolved":false,"context_lines":[{"line_number":831,"context_line":"    else"},{"line_number":832,"context_line":"        local domain\u003d\"\""},{"line_number":833,"context_line":"    fi"},{"line_number":834,"context_line":"    os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":835,"context_line":"    # Gets group id"},{"line_number":836,"context_line":"    local group_id\u003d$("},{"line_number":837,"context_line":"        # Creates new group with --or-show"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"3a961159_6821bcfb","line":834,"updated":"2014-12-18 10:51:03.000000000","message":"mb create $KEYSTONE_SERVICE_URI_V3 and use it here and in other functoins","commit_id":"f5ec33f6539b7143583c722ebf158f653444cf77"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a662c592e097f912b5a1a53af86e1d6ade13d9c8","unresolved":false,"context_lines":[{"line_number":831,"context_line":"    else"},{"line_number":832,"context_line":"        local domain\u003d\"\""},{"line_number":833,"context_line":"    fi"},{"line_number":834,"context_line":"    os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":835,"context_line":"    # Gets group id"},{"line_number":836,"context_line":"    local group_id\u003d$("},{"line_number":837,"context_line":"        # Creates new group with --or-show"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"3a961159_2f208f48","line":834,"in_reply_to":"3a961159_6821bcfb","updated":"2014-12-18 16:23:13.000000000","message":"Done","commit_id":"f5ec33f6539b7143583c722ebf158f653444cf77"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9d5686134ead542e7d6a4f73d3379db19e6abbec","unresolved":false,"context_lines":[{"line_number":821,"context_line":"# Usage: get_or_create_group \u003cgroupname\u003e [\u003cdomain\u003e \u003cdescription\u003e]"},{"line_number":822,"context_line":"function get_or_create_group {"},{"line_number":823,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":824,"context_line":"    if [[ ! -z \"$3\" ]]; then"},{"line_number":825,"context_line":"        local description\u003d\"--description\u003d$3\""},{"line_number":826,"context_line":"    else"},{"line_number":827,"context_line":"        local description\u003d\"\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3a961159_e7e800b5","line":824,"updated":"2014-12-23 19:15:09.000000000","message":"local description\u003d${3:+--description ${3}}\n\nsdague is working on enabling -o nounset so we should start thinking that way, which makes the above both simpler in terms of line of code and save with nounset enabled when $3 is not set.","commit_id":"c39fb11fe192ec1abeaf791400f330d10e76859d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7d41cab9e03be702f0d78216a6cb4c36808c7959","unresolved":false,"context_lines":[{"line_number":821,"context_line":"# Usage: get_or_create_group \u003cgroupname\u003e [\u003cdomain\u003e \u003cdescription\u003e]"},{"line_number":822,"context_line":"function get_or_create_group {"},{"line_number":823,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":824,"context_line":"    if [[ ! -z \"$3\" ]]; then"},{"line_number":825,"context_line":"        local description\u003d\"--description\u003d$3\""},{"line_number":826,"context_line":"    else"},{"line_number":827,"context_line":"        local description\u003d\"\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3a961159_25c48f40","line":824,"in_reply_to":"3a961159_e7e800b5","updated":"2015-01-11 08:42:22.000000000","message":"updated domain too","commit_id":"c39fb11fe192ec1abeaf791400f330d10e76859d"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9d5686134ead542e7d6a4f73d3379db19e6abbec","unresolved":false,"context_lines":[{"line_number":831,"context_line":"    else"},{"line_number":832,"context_line":"        local domain\u003d\"\""},{"line_number":833,"context_line":"    fi"},{"line_number":834,"context_line":"    os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI_V3 --os-identity-api-version\u003d3\""},{"line_number":835,"context_line":"    # Gets group id"},{"line_number":836,"context_line":"    local group_id\u003d$("},{"line_number":837,"context_line":"        # Creates new group with --or-show"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3a961159_a730b856","line":834,"updated":"2014-12-23 19:15:09.000000000","message":"get_or_create_domain() above explicitly uses OS_TOKEN, here it is absent, presumably because it is assumed to be set.  We should do the same thing in both, but also, both functions (all these really) need to state that OS_TOKEN is assumed to be set.  I think I\u0027d prefer to explicitly show it being used as a reminder to readers.","commit_id":"c39fb11fe192ec1abeaf791400f330d10e76859d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"7d41cab9e03be702f0d78216a6cb4c36808c7959","unresolved":false,"context_lines":[{"line_number":831,"context_line":"    else"},{"line_number":832,"context_line":"        local domain\u003d\"\""},{"line_number":833,"context_line":"    fi"},{"line_number":834,"context_line":"    os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI_V3 --os-identity-api-version\u003d3\""},{"line_number":835,"context_line":"    # Gets group id"},{"line_number":836,"context_line":"    local group_id\u003d$("},{"line_number":837,"context_line":"        # Creates new group with --or-show"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3a961159_45c19b2e","line":834,"in_reply_to":"3a961159_a730b856","updated":"2015-01-11 08:42:22.000000000","message":"i made it more similar to the domain function, i added OS_TOKEN explicitly.","commit_id":"c39fb11fe192ec1abeaf791400f330d10e76859d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"689e4e0d18adfd6f85109c205e7f431cacfd55cd","unresolved":false,"context_lines":[{"line_number":834,"context_line":"# Gets or creates group"},{"line_number":835,"context_line":"# Usage: get_or_create_group \u003cgroupname\u003e [\u003cdomain\u003e \u003cdescription\u003e]"},{"line_number":836,"context_line":"function get_or_create_group {"},{"line_number":837,"context_line":"    local description\u003d${3:+--description ${3}}"},{"line_number":838,"context_line":"    local domain\u003d${2:+--domain ${2}}"},{"line_number":839,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI_V3\""},{"line_number":840,"context_line":"    # Gets group id"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"3a961159_0f908c95","line":837,"updated":"2015-01-12 02:36:28.000000000","message":"isn\u0027t this likely to have spaces?  I think this needs to ensure quotes are being used","commit_id":"64de9855a30d778db53b1df3dbb526c4cdfcf915"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"fd3f20218d0a248ea7f0d242f0694fedfb740472","unresolved":false,"context_lines":[{"line_number":834,"context_line":"# Gets or creates group"},{"line_number":835,"context_line":"# Usage: get_or_create_group \u003cgroupname\u003e [\u003cdomain\u003e \u003cdescription\u003e]"},{"line_number":836,"context_line":"function get_or_create_group {"},{"line_number":837,"context_line":"    local description\u003d${3:+--description ${3}}"},{"line_number":838,"context_line":"    local domain\u003d${2:+--domain ${2}}"},{"line_number":839,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI_V3\""},{"line_number":840,"context_line":"    # Gets group id"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"3a961159_7348165d","line":837,"in_reply_to":"3a961159_0f908c95","updated":"2015-01-12 07:21:06.000000000","message":"nice, thanks ian","commit_id":"64de9855a30d778db53b1df3dbb526c4cdfcf915"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"09be25bbafb7afaa0387e49bba9a08ea0838382c","unresolved":false,"context_lines":[{"line_number":841,"context_line":"        # Creates new group with --or-show"},{"line_number":842,"context_line":"        openstack --os-token\u003d$OS_TOKEN --os-url\u003d$os_url \\"},{"line_number":843,"context_line":"            --os-identity-api-version\u003d3 group create $1 \\"},{"line_number":844,"context_line":"            $domain --description \"$3\" --or-show \\"},{"line_number":845,"context_line":"            -f value -c id"},{"line_number":846,"context_line":"    )"},{"line_number":847,"context_line":"    echo $group_id"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"3a961159_092f903f","line":844,"updated":"2015-01-12 19:09:50.000000000","message":"i couldn\u0027t think of a clever enough way to save description in it\u0027s own local variable without running into issues with quotes, i settled for this.","commit_id":"c80991833cb5749dc501bea0748b149f191c6ccb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"886f531298712f6a2b4ea55bf77d5d37647d7790","unresolved":false,"context_lines":[{"line_number":841,"context_line":"        # Creates new group with --or-show"},{"line_number":842,"context_line":"        openstack --os-token\u003d$OS_TOKEN --os-url\u003d$os_url \\"},{"line_number":843,"context_line":"            --os-identity-api-version\u003d3 group create $1 \\"},{"line_number":844,"context_line":"            $domain --description \"$3\" --or-show \\"},{"line_number":845,"context_line":"            -f value -c id"},{"line_number":846,"context_line":"    )"},{"line_number":847,"context_line":"    echo $group_id"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"3a961159_b92af8e4","line":844,"in_reply_to":"3a961159_092f903f","updated":"2015-01-14 18:20:21.000000000","message":"This is going to blow up when -o nounset is enabled and $3 is null.  This should work:\n\n    local domain\u003d${2:+--domain ${2}}\n    local desc\u003d\"${3:-}\"\n\n    openstack ... $domain --description \"$desc\" ...","commit_id":"c80991833cb5749dc501bea0748b149f191c6ccb"}],"lib/keystone":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"a225fdfe08aaf14fba44af06043667eed1e6a8db","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# V3 URIs"},{"line_number":110,"context_line":"KEYSTONE_AUTH_URI_V3\u003d$KEYSTONE_AUTH_URI/v3"},{"line_number":111,"context_line":"KEYSTONE_SERVICE_URI_V3\u003d$KEYSTONE_SERVICE_URI/v3"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Functions"},{"line_number":114,"context_line":"# ---------"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3a961159_942dccaa","line":111,"updated":"2014-12-22 14:36:36.000000000","message":"It\u0027s good you introduced this global variable.\n\nCould you change all files so that KEYSTONE_SERVICE_URI_V3 is used instead of \"$KEYSTONE_SERVICE_URI/v3\" ? (for instance in lib/heat) ? For consistency. Thanks.","commit_id":"9394f8d1c7659fb5fa97eac420d09e9ca8bf5142"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a8a8a957bdb96a40e6a027bb92843bda4abefcfa","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"# V3 URIs"},{"line_number":110,"context_line":"KEYSTONE_AUTH_URI_V3\u003d$KEYSTONE_AUTH_URI/v3"},{"line_number":111,"context_line":"KEYSTONE_SERVICE_URI_V3\u003d$KEYSTONE_SERVICE_URI/v3"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"# Functions"},{"line_number":114,"context_line":"# ---------"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3a961159_1d573fcb","line":111,"in_reply_to":"3a961159_942dccaa","updated":"2014-12-22 15:42:47.000000000","message":"oops, thanks Jordan, i missed that one.","commit_id":"9394f8d1c7659fb5fa97eac420d09e9ca8bf5142"}]}
