)]}'
{"functions-common":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6a8d9aab45e8095c693fe369b86edcd85b3efab6","unresolved":false,"context_lines":[{"line_number":812,"context_line":""},{"line_number":813,"context_line":"# Gets or creates user in a specified domain"},{"line_number":814,"context_line":"# Usage: get_or_create_domain_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e \u003cemail\u003e \u003cdomain\u003e"},{"line_number":815,"context_line":"function get_or_create_domain_user {"},{"line_number":816,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":817,"context_line":"    # Gets user id"},{"line_number":818,"context_line":"    local user_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":1,"id":"baa201ad_18e66de8","line":815,"updated":"2014-10-16 16:48:08.000000000","message":"You should change the get_or_create_user function and then use it.","commit_id":"bff337deb88fb87ee31943ceae8e9e916b69588a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d65585f8c4a57e50cd2394c2d33ed9818ab16b89","unresolved":false,"context_lines":[{"line_number":812,"context_line":""},{"line_number":813,"context_line":"# Gets or creates user in a specified domain"},{"line_number":814,"context_line":"# Usage: get_or_create_domain_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e \u003cemail\u003e \u003cdomain\u003e"},{"line_number":815,"context_line":"function get_or_create_domain_user {"},{"line_number":816,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":817,"context_line":"    # Gets user id"},{"line_number":818,"context_line":"    local user_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":1,"id":"baa201ad_739dc865","line":815,"in_reply_to":"baa201ad_18e66de8","updated":"2014-10-17 10:05:55.000000000","message":"Done","commit_id":"bff337deb88fb87ee31943ceae8e9e916b69588a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6a8d9aab45e8095c693fe369b86edcd85b3efab6","unresolved":false,"context_lines":[{"line_number":835,"context_line":""},{"line_number":836,"context_line":"# Gets or creates project in a specified domain"},{"line_number":837,"context_line":"# Usage: get_or_create_domain_project \u003cname\u003e \u003cdomain\u003e"},{"line_number":838,"context_line":"function get_or_create_domain_project {"},{"line_number":839,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":840,"context_line":"    # Gets project id"},{"line_number":841,"context_line":"    local project_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":1,"id":"baa201ad_18af4d7e","line":838,"updated":"2014-10-16 16:48:08.000000000","message":"You should change the get_or_create_project() function and then use it.","commit_id":"bff337deb88fb87ee31943ceae8e9e916b69588a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d65585f8c4a57e50cd2394c2d33ed9818ab16b89","unresolved":false,"context_lines":[{"line_number":835,"context_line":""},{"line_number":836,"context_line":"# Gets or creates project in a specified domain"},{"line_number":837,"context_line":"# Usage: get_or_create_domain_project \u003cname\u003e \u003cdomain\u003e"},{"line_number":838,"context_line":"function get_or_create_domain_project {"},{"line_number":839,"context_line":"    local os_url\u003d\"$KEYSTONE_SERVICE_URI/v3\""},{"line_number":840,"context_line":"    # Gets project id"},{"line_number":841,"context_line":"    local project_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":1,"id":"baa201ad_93986c76","line":838,"in_reply_to":"baa201ad_18af4d7e","updated":"2014-10-17 10:05:55.000000000","message":"Done","commit_id":"bff337deb88fb87ee31943ceae8e9e916b69588a"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"0f5d0cac7ffcf7f5b710366fb4d2861b28bb9525","unresolved":false,"context_lines":[{"line_number":810,"context_line":"}"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"# Gets or creates user"},{"line_number":813,"context_line":"# Usage: get_or_create_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e [\u003cemail\u003e [\u003cdomain\u003e]]"},{"line_number":814,"context_line":"function get_or_create_user {"},{"line_number":815,"context_line":"    if [[ ! -z \"$4\" ]]; then"},{"line_number":816,"context_line":"        local email\u003d\"--email\u003d$4\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_06893e26","line":813,"updated":"2014-10-21 04:54:48.000000000","message":"i think this should be [\u003cemail\u003e] [\u003cdomain\u003e] to show they\u0027re both separate, optional things","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2629d4b11b653f920021ff4c8204511406b416d1","unresolved":false,"context_lines":[{"line_number":810,"context_line":"}"},{"line_number":811,"context_line":""},{"line_number":812,"context_line":"# Gets or creates user"},{"line_number":813,"context_line":"# Usage: get_or_create_user \u003cusername\u003e \u003cpassword\u003e \u003cproject\u003e [\u003cemail\u003e [\u003cdomain\u003e]]"},{"line_number":814,"context_line":"function get_or_create_user {"},{"line_number":815,"context_line":"    if [[ ! -z \"$4\" ]]; then"},{"line_number":816,"context_line":"        local email\u003d\"--email\u003d$4\""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_8b760a3d","line":813,"in_reply_to":"9aa7fdbe_06893e26","updated":"2014-10-21 13:37:58.000000000","message":"My intention was to indicate that email is required first in position 4 if domain is to be set, since these are positional arguments. I considered introducing a keyed option for \u003cdomain\u003e (e.g. [-d \u003cdomain\u003e]) but felt the additional complexity was not justified vs. requiring \u003cemail\u003e when \u003cdomain\u003e is specified.","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"0f5d0cac7ffcf7f5b710366fb4d2861b28bb9525","unresolved":false,"context_lines":[{"line_number":820,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":821,"context_line":"    local domain\u003d\"\""},{"line_number":822,"context_line":"    if [[ ! -z \"$5\" ]]; then"},{"line_number":823,"context_line":"        local domain\u003d\"--domain\u003d$5\""},{"line_number":824,"context_line":"        local os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":825,"context_line":"    fi"},{"line_number":826,"context_line":"    # Gets user id"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_46834604","line":823,"updated":"2014-10-21 04:54:48.000000000","message":"already unconditionally defined above?","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2629d4b11b653f920021ff4c8204511406b416d1","unresolved":false,"context_lines":[{"line_number":820,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":821,"context_line":"    local domain\u003d\"\""},{"line_number":822,"context_line":"    if [[ ! -z \"$5\" ]]; then"},{"line_number":823,"context_line":"        local domain\u003d\"--domain\u003d$5\""},{"line_number":824,"context_line":"        local os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":825,"context_line":"    fi"},{"line_number":826,"context_line":"    # Gets user id"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_eb0a36d1","line":823,"in_reply_to":"9aa7fdbe_46834604","updated":"2014-10-21 13:37:58.000000000","message":"will remove \u0027local\u0027, same for os_cmd below. The unconditional assignment (line 821) is the default case and I followed the pattern used for email to explicitly set an empty string for the default.","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"0f5d0cac7ffcf7f5b710366fb4d2861b28bb9525","unresolved":false,"context_lines":[{"line_number":846,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":847,"context_line":"    local domain\u003d\"\""},{"line_number":848,"context_line":"    if [[ ! -z \"$2\" ]]; then"},{"line_number":849,"context_line":"        local domain\u003d\"--domain\u003d$2\""},{"line_number":850,"context_line":"        local os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":851,"context_line":"    fi"},{"line_number":852,"context_line":"    local project_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_a6795231","line":849,"updated":"2014-10-21 04:54:48.000000000","message":"as above","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2629d4b11b653f920021ff4c8204511406b416d1","unresolved":false,"context_lines":[{"line_number":846,"context_line":"    local os_cmd\u003d\"openstack\""},{"line_number":847,"context_line":"    local domain\u003d\"\""},{"line_number":848,"context_line":"    if [[ ! -z \"$2\" ]]; then"},{"line_number":849,"context_line":"        local domain\u003d\"--domain\u003d$2\""},{"line_number":850,"context_line":"        local os_cmd\u003d\"$os_cmd --os-url\u003d$KEYSTONE_SERVICE_URI/v3 --os-identity-api-version\u003d3\""},{"line_number":851,"context_line":"    fi"},{"line_number":852,"context_line":"    local project_id\u003d$("}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9aa7fdbe_2b151ef1","line":849,"in_reply_to":"9aa7fdbe_a6795231","updated":"2014-10-21 13:37:58.000000000","message":"will remove \u0027local\u0027","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"}],"lib/swift":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"e46e846968bdc711f4fa265eb5eb9044cb80a833","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        local auth_vers\u003d$(iniget ${testfile} func_test auth_version)"},{"line_number":479,"context_line":"        iniset ${testfile} func_test auth_host ${KEYSTONE_SERVICE_HOST}"},{"line_number":480,"context_line":"        iniset ${testfile} func_test auth_port ${KEYSTONE_AUTH_PORT}"},{"line_number":481,"context_line":"        if [[ $auth_vers \u003d\u003d \"3\" ]]; then"},{"line_number":482,"context_line":"            iniset ${testfile} func_test auth_prefix /v3/"},{"line_number":483,"context_line":"        else"},{"line_number":484,"context_line":"            iniset ${testfile} func_test auth_prefix /v2.0/"}],"source_content_type":"text/x-swift","patch_set":2,"id":"9aa7fdbe_79a1e0a8","line":481,"updated":"2014-10-20 14:37:38.000000000","message":"Why not making the v3 enabled by default ?","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"74e726a72dff84c1b01106c1ad0d9da5c29a0068","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        local auth_vers\u003d$(iniget ${testfile} func_test auth_version)"},{"line_number":479,"context_line":"        iniset ${testfile} func_test auth_host ${KEYSTONE_SERVICE_HOST}"},{"line_number":480,"context_line":"        iniset ${testfile} func_test auth_port ${KEYSTONE_AUTH_PORT}"},{"line_number":481,"context_line":"        if [[ $auth_vers \u003d\u003d \"3\" ]]; then"},{"line_number":482,"context_line":"            iniset ${testfile} func_test auth_prefix /v3/"},{"line_number":483,"context_line":"        else"},{"line_number":484,"context_line":"            iniset ${testfile} func_test auth_prefix /v2.0/"}],"source_content_type":"text/x-swift","patch_set":2,"id":"9aa7fdbe_5662ebad","line":481,"in_reply_to":"9aa7fdbe_473896a0","updated":"2014-10-22 08:19:20.000000000","message":"Thanks for the explanation.","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2629d4b11b653f920021ff4c8204511406b416d1","unresolved":false,"context_lines":[{"line_number":478,"context_line":"        local auth_vers\u003d$(iniget ${testfile} func_test auth_version)"},{"line_number":479,"context_line":"        iniset ${testfile} func_test auth_host ${KEYSTONE_SERVICE_HOST}"},{"line_number":480,"context_line":"        iniset ${testfile} func_test auth_port ${KEYSTONE_AUTH_PORT}"},{"line_number":481,"context_line":"        if [[ $auth_vers \u003d\u003d \"3\" ]]; then"},{"line_number":482,"context_line":"            iniset ${testfile} func_test auth_prefix /v3/"},{"line_number":483,"context_line":"        else"},{"line_number":484,"context_line":"            iniset ${testfile} func_test auth_prefix /v2.0/"}],"source_content_type":"text/x-swift","patch_set":2,"id":"9aa7fdbe_473896a0","line":481,"in_reply_to":"9aa7fdbe_79a1e0a8","updated":"2014-10-21 13:37:58.000000000","message":"I did consider that but noticed that the current behavior does not force v2.0, so I decided that I should leave line 477 as it is i.e. use whichever auth version is in test/sample.conf. \n\nI intend to make the change in the swift repo to auth_version \u003d v3 in test/sample.conf, once this has merged. That has the benefit of the change to v3 being more visible to swift developers than forcing it here. \n\n(I was also unsure which jenkins jobs would be tested for a devstack patch, and wary of breaking swift jobs, but I can now see that all the swift jobs are run on this patch).","commit_id":"4345289c82ebf359e9081f5587c0af108cc1fb1a"}]}
