)]}'
{"functions-common":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"59d6c2a02401f4665a7d2fcf80abd36df1c6dcdc","unresolved":false,"context_lines":[{"line_number":859,"context_line":"}"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"# Gets or creates user"},{"line_number":862,"context_line":"# Usage: "},{"line_number":863,"context_line":"# get_or_create_user \u003cusername\u003e \u003cpassword\u003e [\u003cemail\u003e] [\u003cdomain\u003e] [\u003cproject\u003e]"},{"line_number":864,"context_line":"function get_or_create_user {"},{"line_number":865,"context_line":"    if [[ ! -z \"$3\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"ba7be1f8_3f5f06e7","line":862,"updated":"2015-02-23 16:20:37.000000000","message":"Please remove the red space.\n\nThere is no 80 char limit in devstack, you do not need to split this.","commit_id":"784ee4781122e526298968ab759439efdfe381f3"},{"author":{"_account_id":13071,"name":"Pasquale Porreca","email":"pasquale.porreca@dektech.com.au","username":"pasquale-porreca"},"change_message_id":"ed10e395cd5b714b531406246fe3c04172afc299","unresolved":false,"context_lines":[{"line_number":859,"context_line":"}"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"# Gets or creates user"},{"line_number":862,"context_line":"# Usage: "},{"line_number":863,"context_line":"# get_or_create_user \u003cusername\u003e \u003cpassword\u003e [\u003cemail\u003e] [\u003cdomain\u003e] [\u003cproject\u003e]"},{"line_number":864,"context_line":"function get_or_create_user {"},{"line_number":865,"context_line":"    if [[ ! -z \"$3\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"ba7be1f8_69243ac5","line":862,"in_reply_to":"ba7be1f8_3f5f06e7","updated":"2015-02-24 16:54:33.000000000","message":"oh ok, lol. I thought I should respect the same limit of other openstack python modules","commit_id":"784ee4781122e526298968ab759439efdfe381f3"}],"lib/keystone":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"2bd0a127c3f51c5d5674e5472337d6e692189906","unresolved":false,"context_lines":[{"line_number":380,"context_line":"    get_or_create_role ResellerAdmin"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    # Default _member_ role, necessary even if not used"},{"line_number":383,"context_line":"    local default_role\u003d$(get_or_create_role \"_member_\")"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    # The Member role is used by Horizon and Swift so we need to keep it:"},{"line_number":386,"context_line":"    local member_role\u003d$(get_or_create_role \"Member\")"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"da86d52c_f109f395","line":383,"updated":"2015-02-18 00:17:11.000000000","message":"why assign this to a variable that\u0027s never used?","commit_id":"699c06fc918d6a281f0e41952425752d95fab4f6"},{"author":{"_account_id":13071,"name":"Pasquale Porreca","email":"pasquale.porreca@dektech.com.au","username":"pasquale-porreca"},"change_message_id":"e5b3a28ce13365ceebfd5f2f0042abbb01917ea1","unresolved":false,"context_lines":[{"line_number":380,"context_line":"    get_or_create_role ResellerAdmin"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    # Default _member_ role, necessary even if not used"},{"line_number":383,"context_line":"    local default_role\u003d$(get_or_create_role \"_member_\")"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    # The Member role is used by Horizon and Swift so we need to keep it:"},{"line_number":386,"context_line":"    local member_role\u003d$(get_or_create_role \"Member\")"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"da86d52c_a6dad175","line":383,"in_reply_to":"da86d52c_f109f395","updated":"2015-02-18 09:25:03.000000000","message":"In horizon code openstack_dashboard/dashboards/identity/domains/workflow.py there is this code:\n   \n    default_role \u003d api.keystone.get_default_role(self.request)\n            # Default role is necessary to add members to a domain\n            if default_role is None:\n                default \u003d getattr(settings,\n                                  \"OPENSTACK_KEYSTONE_DEFAULT_ROLE\", None)\n                msg \u003d (_(\u0027Could not find default role \"%s\" in Keystone\u0027) %\n                       default)\n                raise exceptions.NotFound(msg)\n\nboth in UpdateDomainUsersAction and UpdateDomainGroupsAction classes.\nSo the existence of the _member_ role is actually required.","commit_id":"699c06fc918d6a281f0e41952425752d95fab4f6"}]}
