)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"authentication options specified at:"},{"line_number":30,"context_line":"http://www.jamielennox.net/blog/2015/02/17/loading-authentication-plugins/"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"4) Cleans up domain support in admin.pp and uses the new helper method"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Implements: blueprint api-v3-support"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"fa32b979_705ae0f3","line":32,"updated":"2015-06-18 01:59:43.000000000","message":"These are all pretty distinct goals that don\u0027t depend on each other, they should really be in three or four separate patches.","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":29,"context_line":"authentication options specified at:"},{"line_number":30,"context_line":"http://www.jamielennox.net/blog/2015/02/17/loading-authentication-plugins/"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"4) Cleans up domain support in admin.pp and uses the new helper method"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Implements: blueprint api-v3-support"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"fa32b979_63b2e64d","line":32,"in_reply_to":"fa32b979_705ae0f3","updated":"2015-06-18 23:00:08.000000000","message":"Done","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"}],"lib/puppet/parser/functions/make_keystone_role_name.rb":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# helper to get the value at index n, if any, from"},{"line_number":2,"context_line":"# the args, converting undefined or empty values"},{"line_number":3,"context_line":"# to nil"},{"line_number":4,"context_line":"def __helper_getval(args, n)"},{"line_number":5,"context_line":"  if args.length \u003c n"},{"line_number":6,"context_line":"    return nil"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_2c7f2ce1","line":4,"updated":"2015-06-11 07:35:42.000000000","message":"Do you have a specific reason to use a function names starting with __?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# helper to get the value at index n, if any, from"},{"line_number":2,"context_line":"# the args, converting undefined or empty values"},{"line_number":3,"context_line":"# to nil"},{"line_number":4,"context_line":"def __helper_getval(args, n)"},{"line_number":5,"context_line":"  if args.length \u003c n"},{"line_number":6,"context_line":"    return nil"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_0c4a1684","line":4,"in_reply_to":"1af86dd1_326c0e9c","updated":"2015-06-12 02:43:59.000000000","message":"This method was removed with the new hash based implementation.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# helper to get the value at index n, if any, from"},{"line_number":2,"context_line":"# the args, converting undefined or empty values"},{"line_number":3,"context_line":"# to nil"},{"line_number":4,"context_line":"def __helper_getval(args, n)"},{"line_number":5,"context_line":"  if args.length \u003c n"},{"line_number":6,"context_line":"    return nil"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_326c0e9c","line":4,"in_reply_to":"3afb71cf_2c7f2ce1","updated":"2015-06-12 00:13:47.000000000","message":"Well, I wanted to make this function local to the make_keystone_role_name function, but ruby did not like that for some reason.  I wanted to make sure this helper function is \"private\". If using __ is not ok then perhaps some other way?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":15,"context_line":"module Puppet::Parser::Functions"},{"line_number":16,"context_line":"  newfunction(:make_keystone_role_name,"},{"line_number":17,"context_line":"              :type \u003d\u003e :rvalue,"},{"line_number":18,"context_line":"              :doc \u003d\u003e \"Given username, project, user_domain, project_domain, default_domain, construct a valid keystone_user_role name/title\""},{"line_number":19,"context_line":"             ) do |args|"},{"line_number":20,"context_line":"    # NOTE: puppet undef is passed in here as \u0027\u0027 - the empty string"},{"line_number":21,"context_line":"    if args.length \u003d\u003d 0"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_9252b665","line":18,"updated":"2015-06-11 07:35:42.000000000","message":"I believe passing an hash instead would be much easier to use.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"module Puppet::Parser::Functions"},{"line_number":16,"context_line":"  newfunction(:make_keystone_role_name,"},{"line_number":17,"context_line":"              :type \u003d\u003e :rvalue,"},{"line_number":18,"context_line":"              :doc \u003d\u003e \"Given username, project, user_domain, project_domain, default_domain, construct a valid keystone_user_role name/title\""},{"line_number":19,"context_line":"             ) do |args|"},{"line_number":20,"context_line":"    # NOTE: puppet undef is passed in here as \u0027\u0027 - the empty string"},{"line_number":21,"context_line":"    if args.length \u003d\u003d 0"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_ec4e9a95","line":18,"in_reply_to":"3afb71cf_9252b665","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":19,"context_line":"             ) do |args|"},{"line_number":20,"context_line":"    # NOTE: puppet undef is passed in here as \u0027\u0027 - the empty string"},{"line_number":21,"context_line":"    if args.length \u003d\u003d 0"},{"line_number":22,"context_line":"      raise ArgumentError, \"username must be specified as the first argument\""},{"line_number":23,"context_line":"    end"},{"line_number":24,"context_line":"    if args.length \u003d\u003d 1"},{"line_number":25,"context_line":"      raise ArgumentError, \"project must be specified as the first argument - use undef if domain role\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_f297aa37","line":22,"updated":"2015-06-11 07:35:42.000000000","message":"This is confusing, what are the optional parameters if any?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"             ) do |args|"},{"line_number":20,"context_line":"    # NOTE: puppet undef is passed in here as \u0027\u0027 - the empty string"},{"line_number":21,"context_line":"    if args.length \u003d\u003d 0"},{"line_number":22,"context_line":"      raise ArgumentError, \"username must be specified as the first argument\""},{"line_number":23,"context_line":"    end"},{"line_number":24,"context_line":"    if args.length \u003d\u003d 1"},{"line_number":25,"context_line":"      raise ArgumentError, \"project must be specified as the first argument - use undef if domain role\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_ac48a288","line":22,"in_reply_to":"3afb71cf_f297aa37","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":22,"context_line":"      raise ArgumentError, \"username must be specified as the first argument\""},{"line_number":23,"context_line":"    end"},{"line_number":24,"context_line":"    if args.length \u003d\u003d 1"},{"line_number":25,"context_line":"      raise ArgumentError, \"project must be specified as the first argument - use undef if domain role\""},{"line_number":26,"context_line":"    end"},{"line_number":27,"context_line":"    if args.length \u003e 5"},{"line_number":28,"context_line":"      raise ArgumentError, \"too many arguments - Usage: username, project, user_domain, project_domain, default_domain\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_b2e0122a","line":25,"updated":"2015-06-11 07:35:42.000000000","message":"This is confusing too,  if this an option?\n\nThe second part of the message doesn\u0027t make sense. Can you please clarify it?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"      raise ArgumentError, \"username must be specified as the first argument\""},{"line_number":23,"context_line":"    end"},{"line_number":24,"context_line":"    if args.length \u003d\u003d 1"},{"line_number":25,"context_line":"      raise ArgumentError, \"project must be specified as the first argument - use undef if domain role\""},{"line_number":26,"context_line":"    end"},{"line_number":27,"context_line":"    if args.length \u003e 5"},{"line_number":28,"context_line":"      raise ArgumentError, \"too many arguments - Usage: username, project, user_domain, project_domain, default_domain\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_6c5bca55","line":25,"in_reply_to":"3afb71cf_b2e0122a","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    if args.length \u003e 5"},{"line_number":28,"context_line":"      raise ArgumentError, \"too many arguments - Usage: username, project, user_domain, project_domain, default_domain\""},{"line_number":29,"context_line":"    end"},{"line_number":30,"context_line":"    username \u003d args[0]"},{"line_number":31,"context_line":"    project \u003d __helper_getval(args, 1)"},{"line_number":32,"context_line":"    if !project \u0026\u0026 args.length \u003c 3"},{"line_number":33,"context_line":"      raise ArgumentError, \"must specify a project domain or default domain if no project specified\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_2c504c31","line":30,"updated":"2015-06-11 07:35:42.000000000","message":"Adding empty line to separate the different logics block would help make the code easier to read.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    if args.length \u003e 5"},{"line_number":28,"context_line":"      raise ArgumentError, \"too many arguments - Usage: username, project, user_domain, project_domain, default_domain\""},{"line_number":29,"context_line":"    end"},{"line_number":30,"context_line":"    username \u003d args[0]"},{"line_number":31,"context_line":"    project \u003d __helper_getval(args, 1)"},{"line_number":32,"context_line":"    if !project \u0026\u0026 args.length \u003c 3"},{"line_number":33,"context_line":"      raise ArgumentError, \"must specify a project domain or default domain if no project specified\""}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_4c580e57","line":30,"in_reply_to":"3afb71cf_2c504c31","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"}],"manifests/resource/authconfig.pp":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"1c6ea32f5f0d53f4d42f89436f326888ded184f5","unresolved":false,"context_lines":[{"line_number":148,"context_line":"  $auth_host           \u003d \u0027127.0.0.1\u0027,"},{"line_number":149,"context_line":"  $auth_port           \u003d \u002735357\u0027,"},{"line_number":150,"context_line":"  $auth_protocol       \u003d \u0027http\u0027,"},{"line_number":151,"context_line":"  $auth_version_url    \u003d undef,"},{"line_number":152,"context_line":"  $user_id             \u003d undef,"},{"line_number":153,"context_line":"  $user_domain_name    \u003d undef,"},{"line_number":154,"context_line":"  $user_domain_id      \u003d undef,"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"1aca2d91_2cdc83e3","line":151,"updated":"2015-05-06 18:51:09.000000000","message":"I thought auth_* were deprecated in favor of identity_url","commit_id":"26a6e022d9a3acd24e10de7c2138943a41c75eaf"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"63ee4f8518f1e2751b2af5aa7d9dc78f0c4fb321","unresolved":false,"context_lines":[{"line_number":148,"context_line":"  $auth_host           \u003d \u0027127.0.0.1\u0027,"},{"line_number":149,"context_line":"  $auth_port           \u003d \u002735357\u0027,"},{"line_number":150,"context_line":"  $auth_protocol       \u003d \u0027http\u0027,"},{"line_number":151,"context_line":"  $auth_version_url    \u003d undef,"},{"line_number":152,"context_line":"  $user_id             \u003d undef,"},{"line_number":153,"context_line":"  $user_domain_name    \u003d undef,"},{"line_number":154,"context_line":"  $user_domain_id      \u003d undef,"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"1aca2d91_00e86be1","line":151,"in_reply_to":"1aca2d91_2cdc83e3","updated":"2015-05-06 19:01:32.000000000","message":"Note that keystone_authtoken uses \"auth_url\" as the name of the parameter.  I\u0027m trying to make all of the `keystone::resource::authconfig` parameter names exactly match what is used by keystone_authtoken and by OSC.\n\nThe auth* parameters are deprecated, but having them here will make it easier for the other puppet modules to transition, unless you want to have logic like this in every puppet module::\n\n    if $identity_url {\n      $real_identity_url \u003d $identity_url\n    } else {\n       $real_identity_url \u003d \"${auth_protocol}://${auth_host}:${auth_port}/$auth_version_url\n    }\n    keystone::resource::authconfig { \u0027foo_config_file\u0027:\n      auth_url \u003d\u003e $real_identity_url,\n      ....,\n    }\n\nI can do it either way.","commit_id":"26a6e022d9a3acd24e10de7c2138943a41c75eaf"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"1c6ea32f5f0d53f4d42f89436f326888ded184f5","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    } else {"},{"line_number":198,"context_line":"      # omit the version suffix in the url - the client will use most appropriate version"},{"line_number":199,"context_line":"      $real_auth_url \u003d \"${auth_protocol}://${auth_host}:${auth_port}/\""},{"line_number":200,"context_line":"    } "},{"line_number":201,"context_line":"  } else {"},{"line_number":202,"context_line":"    $real_auth_url \u003d $auth_url"},{"line_number":203,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"1aca2d91_4c033f74","line":200,"updated":"2015-05-06 18:51:09.000000000","message":"trailing space","commit_id":"26a6e022d9a3acd24e10de7c2138943a41c75eaf"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0d10dc45944d7f9acb5f5eb886a4a06e45577bba","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    } else {"},{"line_number":198,"context_line":"      # omit the version suffix in the url - the client will use most appropriate version"},{"line_number":199,"context_line":"      $real_auth_url \u003d \"${auth_protocol}://${auth_host}:${auth_port}/\""},{"line_number":200,"context_line":"    } "},{"line_number":201,"context_line":"  } else {"},{"line_number":202,"context_line":"    $real_auth_url \u003d $auth_url"},{"line_number":203,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":2,"id":"1aca2d91_00406ba4","line":200,"in_reply_to":"1aca2d91_4c033f74","updated":"2015-05-06 19:06:46.000000000","message":"Done","commit_id":"26a6e022d9a3acd24e10de7c2138943a41c75eaf"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_f239eaf2","line":2,"updated":"2015-06-11 07:35:42.000000000","message":"I wonder what\u0027s the standard practice here.\nIs this not a community driven project?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_f20436c7","line":2,"in_reply_to":"3afb71cf_f239eaf2","updated":"2015-06-12 00:13:47.000000000","message":"I am also curious about the standard practice, as there seems to be several ways of doing this.\n\nYes, this is a community driven project.  That does not necessarily mean we can\u0027t put Red Hat copyrights into open source files, depending on the details of the license.\n\nNote that I copied this file from https://github.com/stackforge/puppet-keystone/blob/master/manifests/resource/service_identity.pp which has all of this copyright, author, and license text in the header.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_552e688c","line":4,"updated":"2015-06-11 07:35:42.000000000","message":"Standard practice question again.\n\nThis is not directed to you specifically, but I would like to know in order to be consistent across all files.\n\nI understand the creator of the file deserves it\u0027s name to be mentioned but what about any person changing it? The list might be long at the end, which again might be fine.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_b2dc7e47","line":4,"in_reply_to":"3afb71cf_552e688c","updated":"2015-06-12 00:13:47.000000000","message":"I am also curious about the standard practice, as there seems to be several ways of doing this.  See above.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":8,"context_line":"# a copy of the License at"},{"line_number":9,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_55454840","line":6,"updated":"2015-06-11 07:35:42.000000000","message":"Same sort of question.\n\nI would assume the OpenStack project, as a whole, as it\u0027s proper license definition.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":7,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":8,"context_line":"# a copy of the License at"},{"line_number":9,"context_line":"#"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_92e18201","line":6,"in_reply_to":"3afb71cf_55454840","updated":"2015-06-12 00:13:47.000000000","message":"Same answer as above.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":142,"context_line":"  $insecure            \u003d false,"},{"line_number":143,"context_line":") {"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  # Must get either a project or a domain scoped token, so must either specify"},{"line_number":146,"context_line":"  # a project or a domain"},{"line_number":147,"context_line":"  if !$project_name and !$project_id and !$domain_name and !$domain_id {"},{"line_number":148,"context_line":"    fail(\u0027Must specify either a project (project_name or project_id) or a domain (domain_name or domain_id)\u0027)"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_15a110f8","line":145,"updated":"2015-06-11 07:35:42.000000000","message":"I think this is unnecessary comment, the fail message is pretty clear.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":142,"context_line":"  $insecure            \u003d false,"},{"line_number":143,"context_line":") {"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  # Must get either a project or a domain scoped token, so must either specify"},{"line_number":146,"context_line":"  # a project or a domain"},{"line_number":147,"context_line":"  if !$project_name and !$project_id and !$domain_name and !$domain_id {"},{"line_number":148,"context_line":"    fail(\u0027Must specify either a project (project_name or project_id) or a domain (domain_name or domain_id)\u0027)"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_0c31f60b","line":145,"in_reply_to":"3afb71cf_15a110f8","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    fail(\u0027Must specify either a project (project_name or project_id) or a domain (domain_name or domain_id)\u0027)"},{"line_number":149,"context_line":"  }"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  # Cannot specify both a project and a domain"},{"line_number":152,"context_line":"  if ($project_name or $project_id) and ($domain_name or $domain_id) {"},{"line_number":153,"context_line":"    fail(\u0027Cannot specify both a project (project_name or project_id) and a domain (domain_name or domain_id)\u0027)"},{"line_number":154,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_157a3088","line":151,"updated":"2015-06-11 07:35:42.000000000","message":"I think this is unnecessary comment, the fail message is pretty clear.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    fail(\u0027Must specify either a project (project_name or project_id) or a domain (domain_name or domain_id)\u0027)"},{"line_number":149,"context_line":"  }"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  # Cannot specify both a project and a domain"},{"line_number":152,"context_line":"  if ($project_name or $project_id) and ($domain_name or $domain_id) {"},{"line_number":153,"context_line":"    fail(\u0027Cannot specify both a project (project_name or project_id) and a domain (domain_name or domain_id)\u0027)"},{"line_number":154,"context_line":"  }"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_cc3abee7","line":151,"in_reply_to":"3afb71cf_157a3088","updated":"2015-06-12 02:43:59.000000000","message":"Done","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    fail(\u0027Cannot specify both a project (project_name or project_id) and a domain (domain_name or domain_id)\u0027)"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/auth_plugin\u0027, {\u0027value\u0027 \u003d\u003e $auth_plugin})"},{"line_number":136,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/auth_url\u0027, {\u0027value\u0027 \u003d\u003e $auth_url})"},{"line_number":137,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/username\u0027, {\u0027value\u0027 \u003d\u003e $username})"},{"line_number":138,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/password\u0027, {\u0027value\u0027 \u003d\u003e $password, \u0027secret\u0027 \u003d\u003e true})"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_507b1c7b","line":135,"updated":"2015-06-18 01:59:43.000000000","message":"Why use ensure_resource instead of create_resource?\n\nThe problem with ensure_resource is it doesn\u0027t actually do a good job of protecting against duplicate definitions, and even if it did, I would much prefer to be explicit about where these configs are being defined.","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    fail(\u0027Cannot specify both a project (project_name or project_id) and a domain (domain_name or domain_id)\u0027)"},{"line_number":133,"context_line":"  }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/auth_plugin\u0027, {\u0027value\u0027 \u003d\u003e $auth_plugin})"},{"line_number":136,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/auth_url\u0027, {\u0027value\u0027 \u003d\u003e $auth_url})"},{"line_number":137,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/username\u0027, {\u0027value\u0027 \u003d\u003e $username})"},{"line_number":138,"context_line":"  ensure_resource($name, \u0027keystone_authtoken/password\u0027, {\u0027value\u0027 \u003d\u003e $password, \u0027secret\u0027 \u003d\u003e true})"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_23b85e29","line":135,"in_reply_to":"fa32b979_507b1c7b","updated":"2015-06-18 23:00:08.000000000","message":"Done","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"}],"manifests/resource/service_identity.pp":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  if $configure_user_role {"},{"line_number":159,"context_line":"    $role_name \u003d make_keystone_role_name($auth_name, $tenant, $default_domain, $user_domain, $project_domain)"},{"line_number":160,"context_line":"    ensure_resource(\u0027keystone_user_role\u0027, $role_name, {"},{"line_number":161,"context_line":"      \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"},{"line_number":162,"context_line":"      \u0027roles\u0027  \u003d\u003e $roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_55b3084d","line":159,"updated":"2015-06-11 07:35:42.000000000","message":"What about get_role_name instead?\n\nAlso, passing a hash would be easier and clearer than positioned parameters.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  if $configure_user_role {"},{"line_number":159,"context_line":"    $role_name \u003d make_keystone_role_name($auth_name, $tenant, $default_domain, $user_domain, $project_domain)"},{"line_number":160,"context_line":"    ensure_resource(\u0027keystone_user_role\u0027, $role_name, {"},{"line_number":161,"context_line":"      \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"},{"line_number":162,"context_line":"      \u0027roles\u0027  \u003d\u003e $roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_8c25e6c3","line":159,"in_reply_to":"3afb71cf_55b3084d","updated":"2015-06-12 02:43:59.000000000","message":"\u003e Also, passing a hash would be easier and clearer than positioned parameters.\n\nDone.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  if $configure_user_role {"},{"line_number":159,"context_line":"    $role_name \u003d make_keystone_role_name($auth_name, $tenant, $default_domain, $user_domain, $project_domain)"},{"line_number":160,"context_line":"    ensure_resource(\u0027keystone_user_role\u0027, $role_name, {"},{"line_number":161,"context_line":"      \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"},{"line_number":162,"context_line":"      \u0027roles\u0027  \u003d\u003e $roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_72f8467d","line":159,"in_reply_to":"3afb71cf_55b3084d","updated":"2015-06-12 00:13:47.000000000","message":"\u003e What about get_role_name instead?\n\nThe problem is that these functions are in a global name space.  I think `get_role_name` is too generic.  There needs to be some sort of indication that this is for keystone roles.  With custom puppet functions, there is no way to put the function in some sort of namespace, like a module, which would disambiguate the name.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    if $user_domain_real {"},{"line_number":142,"context_line":"      ensure_resource(\u0027keystone_domain\u0027, $user_domain_real, {"},{"line_number":143,"context_line":"        \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"},{"line_number":144,"context_line":"        \u0027enabled\u0027 \u003d\u003e true,"},{"line_number":145,"context_line":"      })"},{"line_number":146,"context_line":"    }"},{"line_number":147,"context_line":"    ensure_resource(\u0027keystone_user\u0027, $auth_name, {"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_70f500eb","line":144,"updated":"2015-06-18 01:59:43.000000000","message":"Please fix the arrow alignment","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    if $user_domain_real {"},{"line_number":142,"context_line":"      ensure_resource(\u0027keystone_domain\u0027, $user_domain_real, {"},{"line_number":143,"context_line":"        \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"},{"line_number":144,"context_line":"        \u0027enabled\u0027 \u003d\u003e true,"},{"line_number":145,"context_line":"      })"},{"line_number":146,"context_line":"    }"},{"line_number":147,"context_line":"    ensure_resource(\u0027keystone_user\u0027, $auth_name, {"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_43b3224d","line":144,"in_reply_to":"fa32b979_70f500eb","updated":"2015-06-18 23:00:08.000000000","message":"Done","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"      \u0027project_name\u0027 \u003d\u003e $tenant,"},{"line_number":162,"context_line":"      \u0027default_domain_name\u0027 \u003d\u003e $default_domain,"},{"line_number":163,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $user_domain,"},{"line_number":164,"context_line":"      \u0027project_domain_name\u0027 \u003d\u003e $project_domain"},{"line_number":165,"context_line":"    })"},{"line_number":166,"context_line":"    ensure_resource(\u0027keystone_user_role\u0027, $role_name, {"},{"line_number":167,"context_line":"      \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_d0e64c43","line":164,"updated":"2015-06-18 01:59:43.000000000","message":"Please fix the arrow alignment","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":161,"context_line":"      \u0027project_name\u0027 \u003d\u003e $tenant,"},{"line_number":162,"context_line":"      \u0027default_domain_name\u0027 \u003d\u003e $default_domain,"},{"line_number":163,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $user_domain,"},{"line_number":164,"context_line":"      \u0027project_domain_name\u0027 \u003d\u003e $project_domain"},{"line_number":165,"context_line":"    })"},{"line_number":166,"context_line":"    ensure_resource(\u0027keystone_user_role\u0027, $role_name, {"},{"line_number":167,"context_line":"      \u0027ensure\u0027 \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_0388ba6f","line":164,"in_reply_to":"fa32b979_d0e64c43","updated":"2015-06-18 23:00:08.000000000","message":"Done","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"}],"manifests/roles/admin.pp":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  }"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"  if $configure_user_role {"},{"line_number":150,"context_line":"    $role_name \u003d make_keystone_role_name($admin, $admin_tenant, undef, $admin_user_domain, $admin_tenant_domain)"},{"line_number":151,"context_line":"    keystone_user_role { $role_name:"},{"line_number":152,"context_line":"      ensure \u003d\u003e present,"},{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_d5f498f1","line":150,"updated":"2015-06-11 07:35:42.000000000","message":"What about using get_role_name instead and passing a hash instead of positioned parameters?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  }"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"  if $configure_user_role {"},{"line_number":150,"context_line":"    $role_name \u003d make_keystone_role_name($admin, $admin_tenant, undef, $admin_user_domain, $admin_tenant_domain)"},{"line_number":151,"context_line":"    keystone_user_role { $role_name:"},{"line_number":152,"context_line":"      ensure \u003d\u003e present,"},{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_6c22aabb","line":150,"in_reply_to":"3afb71cf_d5f498f1","updated":"2015-06-12 02:43:59.000000000","message":"\u003e Also, passing a hash would be easier and clearer than positioned parameters.\n\nDone.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  }"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"  if $configure_user_role {"},{"line_number":150,"context_line":"    $role_name \u003d make_keystone_role_name($admin, $admin_tenant, undef, $admin_user_domain, $admin_tenant_domain)"},{"line_number":151,"context_line":"    keystone_user_role { $role_name:"},{"line_number":152,"context_line":"      ensure \u003d\u003e present,"},{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_32f2ce9b","line":150,"in_reply_to":"3afb71cf_d5f498f1","updated":"2015-06-12 00:13:47.000000000","message":"\u003e What about get_role_name instead?\n\nThe problem is that these functions are in a global name space.  I think `get_role_name` is too generic.  There needs to be some sort of indication that this is for keystone roles.  With custom puppet functions, there is no way to put the function in some sort of namespace, like a module, which would disambiguate the name.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"},{"line_number":154,"context_line":"    }"},{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_95dbc07b","line":156,"updated":"2015-06-11 07:35:42.000000000","message":"What about using get_role_name instead and passing a hash instead of positioned parameters?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"},{"line_number":154,"context_line":"    }"},{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_4c2feea1","line":156,"in_reply_to":"3afb71cf_95dbc07b","updated":"2015-06-12 02:43:59.000000000","message":"\u003e Also, passing a hash would be easier and clearer than positioned parameters.\n\nDone.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"      roles  \u003d\u003e $admin_roles,"},{"line_number":154,"context_line":"    }"},{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_12efd2b1","line":156,"in_reply_to":"3afb71cf_95dbc07b","updated":"2015-06-12 00:13:47.000000000","message":"\u003e What about get_role_name instead?\n\nThe problem is that these functions are in a global name space.  I think `get_role_name` is too generic.  There needs to be some sort of indication that this is for keystone roles.  With custom puppet functions, there is no way to put the function in some sort of namespace, like a module, which would disambiguate the name.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"},{"line_number":160,"context_line":"    keystone_user_role { $cloud_role_name:"},{"line_number":161,"context_line":"      ensure \u003d\u003e present,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"3afb71cf_75e60445","line":158,"updated":"2015-06-11 07:35:42.000000000","message":"What about using get_role_name instead and passing a hash instead of positioned parameters?","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"efa2c7b2b0a8bd7428c10311872ced7649e080e3","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"},{"line_number":160,"context_line":"    keystone_user_role { $cloud_role_name:"},{"line_number":161,"context_line":"      ensure \u003d\u003e present,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_2c2cb2aa","line":158,"in_reply_to":"3afb71cf_75e60445","updated":"2015-06-12 02:43:59.000000000","message":"\u003e Also, passing a hash would be easier and clearer than positioned parameters.\n\nDone.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    if $cloud_admin_user {"},{"line_number":156,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($cloud_admin_user, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":157,"context_line":"    } else { # make $admin the cloud admin"},{"line_number":158,"context_line":"      $cloud_role_name \u003d make_keystone_role_name($admin, undef, undef, $admin_user_domain, $cloud_admin_domain)"},{"line_number":159,"context_line":"    }"},{"line_number":160,"context_line":"    keystone_user_role { $cloud_role_name:"},{"line_number":161,"context_line":"      ensure \u003d\u003e present,"}],"source_content_type":"text/x-puppet","patch_set":11,"id":"1af86dd1_d22ffaf4","line":158,"in_reply_to":"3afb71cf_75e60445","updated":"2015-06-12 00:13:47.000000000","message":"\u003e What about get_role_name instead?\n\nThe problem is that these functions are in a global name space.  I think `get_role_name` is too generic.  There needs to be some sort of indication that this is for keystone roles.  With custom puppet functions, there is no way to put the function in some sort of namespace, like a module, which would disambiguate the name.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  if $configure_user_role {"},{"line_number":130,"context_line":"    $role_name \u003d make_keystone_role_name({"},{"line_number":131,"context_line":"      \u0027username\u0027 \u003d\u003e $admin,"},{"line_number":132,"context_line":"      \u0027project_name\u0027 \u003d\u003e $admin_tenant,"},{"line_number":133,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $admin_user_domain,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_d0bdec02","line":130,"updated":"2015-06-18 01:59:43.000000000","message":"Seems like it\u0027s not really the role_name but the user_role_name","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  if $configure_user_role {"},{"line_number":130,"context_line":"    $role_name \u003d make_keystone_role_name({"},{"line_number":131,"context_line":"      \u0027username\u0027 \u003d\u003e $admin,"},{"line_number":132,"context_line":"      \u0027project_name\u0027 \u003d\u003e $admin_tenant,"},{"line_number":133,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $admin_user_domain,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_438a4265","line":130,"in_reply_to":"fa32b979_d0bdec02","updated":"2015-06-18 23:00:08.000000000","message":"renamed function to make_keystone_user_role_name","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f46571e4c965c2c9c6342d563238f6610bd4848c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"      \u0027username\u0027 \u003d\u003e $admin,"},{"line_number":132,"context_line":"      \u0027project_name\u0027 \u003d\u003e $admin_tenant,"},{"line_number":133,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $admin_user_domain,"},{"line_number":134,"context_line":"      \u0027project_domain_name\u0027 \u003d\u003e $admin_tenant_domain"},{"line_number":135,"context_line":"    })"},{"line_number":136,"context_line":"    keystone_user_role { $role_name:"},{"line_number":137,"context_line":"      ensure \u003d\u003e present,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_50c9dcaa","line":134,"updated":"2015-06-18 01:59:43.000000000","message":"Please fix the arrow alignment","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"722acf8b6bea6dd429cecb5743358dfe45807080","unresolved":false,"context_lines":[{"line_number":131,"context_line":"      \u0027username\u0027 \u003d\u003e $admin,"},{"line_number":132,"context_line":"      \u0027project_name\u0027 \u003d\u003e $admin_tenant,"},{"line_number":133,"context_line":"      \u0027user_domain_name\u0027 \u003d\u003e $admin_user_domain,"},{"line_number":134,"context_line":"      \u0027project_domain_name\u0027 \u003d\u003e $admin_tenant_domain"},{"line_number":135,"context_line":"    })"},{"line_number":136,"context_line":"    keystone_user_role { $role_name:"},{"line_number":137,"context_line":"      ensure \u003d\u003e present,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"fa32b979_03ef5a1e","line":134,"in_reply_to":"fa32b979_50c9dcaa","updated":"2015-06-18 23:00:08.000000000","message":"Done","commit_id":"3e1746124a67658a0821ec0f890baf36c5128188"}],"spec/defines/keystone_resource_authconfig_spec.rb":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0e7a17dfe667375d3459844b5f1f44b571faeb50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3afb71cf_95c2a083","line":1,"updated":"2015-06-11 07:35:42.000000000","message":"As previously mentioned I would like to know what\u0027s the convention with such header file.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"fe8ddb2a926396210951e7af6442d50df69fce8a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (C) 2015 Red Hat"},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Author: Rich Megginson \u003crmeggins@redhat.com\u003e"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"1af86dd1_523c2a2f","line":1,"in_reply_to":"3afb71cf_95c2a083","updated":"2015-06-12 00:13:47.000000000","message":"I would also like to know.","commit_id":"20afb3a5e2f2c5dba47736f61be34a4160060e50"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f6c881e70362cd85190c8e50ff6df7195e84c402","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"# under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"require \u0027spec_helper\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":14,"id":"fa32b979_b76c9a09","line":16,"updated":"2015-06-13 04:51:22.000000000","message":"This header is not necessary, there is a top level LICENCE file for ASF.\n\nhttps://wiki.openstack.org/wiki/LegalIssuesFAQ","commit_id":"bfb2ba8e276170687fceb1d20a8c0213a704d722"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"4ec42aa107826289b0d379ba1ec847f6efc159eb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"# under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"require \u0027spec_helper\u0027"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":14,"id":"fa32b979_4366c2bb","line":16,"in_reply_to":"fa32b979_b76c9a09","updated":"2015-06-18 23:03:43.000000000","message":"Done","commit_id":"bfb2ba8e276170687fceb1d20a8c0213a704d722"}],"spec/defines/keystone_resource_service_identity_spec.rb":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f6c881e70362cd85190c8e50ff6df7195e84c402","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":13,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"# under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"require \u0027spec_helper\u0027"}],"source_content_type":"text/x-ruby","patch_set":14,"id":"fa32b979_577e6eaf","line":15,"updated":"2015-06-13 04:51:22.000000000","message":"Just for the sake of my other comment about headers, this legacy header could be actually be removed too, although not really the role of this patch.","commit_id":"bfb2ba8e276170687fceb1d20a8c0213a704d722"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"4ec42aa107826289b0d379ba1ec847f6efc159eb","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":13,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":14,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":15,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":16,"context_line":"# under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"require \u0027spec_helper\u0027"}],"source_content_type":"text/x-ruby","patch_set":14,"id":"fa32b979_030bdad6","line":15,"in_reply_to":"fa32b979_577e6eaf","updated":"2015-06-18 23:03:43.000000000","message":"Done","commit_id":"bfb2ba8e276170687fceb1d20a8c0213a704d722"}]}
