)]}'
{"lib/puppet/parser/functions/to_array_of_json_strings.rb":[{"author":{"_account_id":6908,"name":"Simon Leinen","email":"simon.leinen@gmail.com","username":"simon-leinen"},"change_message_id":"89da1309abbb760d169e856fa3179d47e3a889dc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027json\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"def array_of_hash?(list)"},{"line_number":4,"context_line":"  return false unless !list.empty? \u0026\u0026 list.class \u003d\u003d Array"},{"line_number":5,"context_line":"  list.each do |e|"},{"line_number":6,"context_line":"    return false unless e.class \u003d\u003d Hash"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_0b30fa55","line":4,"updated":"2017-08-09 20:56:45.000000000","message":"[Commenting on old code—feel free to ignore]\n\nFor readability, I\u0027d prefer to avoid the double negation:\n\n  return false if list.empty? || list.class !\u003d Array\n\nor\n\n  return false if list.empty?\n  return false unless list.class \u003d\u003d Array\n\nSemantically, I would argue that the empty array ([]) *is* an array of hash (or of any other element type), so I would actually just\n\n  return false unless list.class \u003d\u003d Array\n\n(and let true be returned for the empty array after the zero-round loop that can never return false)\n\nBut this may be academic/irrelevant in this context.","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"870cb7a89b3b9eed43362da0c4b19fb846ec0186","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027json\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"def array_of_hash?(list)"},{"line_number":4,"context_line":"  return false unless !list.empty? \u0026\u0026 list.class \u003d\u003d Array"},{"line_number":5,"context_line":"  list.each do |e|"},{"line_number":6,"context_line":"    return false unless e.class \u003d\u003d Hash"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_67221aa7","line":4,"in_reply_to":"9f436f4f_0b30fa55","updated":"2017-08-09 21:04:08.000000000","message":"Done","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"},{"author":{"_account_id":23811,"name":"Oliver Walsh","email":"owalsh@redhat.com","username":"owalsh"},"change_message_id":"1310d8ecd45d06cf9dae700d9003cd1715b206f9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027json\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"def array_of_hash?(list)"},{"line_number":4,"context_line":"  return false unless !list.empty? \u0026\u0026 list.class \u003d\u003d Array"},{"line_number":5,"context_line":"  list.each do |e|"},{"line_number":6,"context_line":"    return false unless e.class \u003d\u003d Hash"},{"line_number":7,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_9b1793a4","line":4,"in_reply_to":"9f436f4f_67221aa7","updated":"2017-08-10 14:22:26.000000000","message":"that\u0027s not not ugly","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"},{"author":{"_account_id":23811,"name":"Oliver Walsh","email":"owalsh@redhat.com","username":"owalsh"},"change_message_id":"1310d8ecd45d06cf9dae700d9003cd1715b206f9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    list \u003d arg[0]"},{"line_number":15,"context_line":"    if list.class \u003d\u003d String"},{"line_number":16,"context_line":"      begin"},{"line_number":17,"context_line":"        list \u003d JSON.load(arg[0].gsub(\"\u0027\",\"\\\"\"))"},{"line_number":18,"context_line":"      rescue JSON::ParserError"},{"line_number":19,"context_line":"        raise Puppet::ParseError, \"Syntax error: #{arg[0]} is not valid\""},{"line_number":20,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_1b7283e4","line":17,"range":{"start_line":17,"start_character":32,"end_line":17,"end_character":47},"updated":"2017-08-10 14:22:26.000000000","message":"sigh, single quotes are not valid for JSON strings.\nThis will corrupt (valid) JSON containing a single quote e.g {\"foo\": \"\\\u0027\"}","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"c54e88e68f672eed9fb83ea39c3fb20ef052c253","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    list \u003d arg[0]"},{"line_number":15,"context_line":"    if list.class \u003d\u003d String"},{"line_number":16,"context_line":"      begin"},{"line_number":17,"context_line":"        list \u003d JSON.load(arg[0].gsub(\"\u0027\",\"\\\"\"))"},{"line_number":18,"context_line":"      rescue JSON::ParserError"},{"line_number":19,"context_line":"        raise Puppet::ParseError, \"Syntax error: #{arg[0]} is not valid\""},{"line_number":20,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_686182d3","line":17,"updated":"2017-08-11 21:58:11.000000000","message":"so should we hold off mergnign this? or do we not need to worry about this?","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"},{"author":{"_account_id":23811,"name":"Oliver Walsh","email":"owalsh@redhat.com","username":"owalsh"},"change_message_id":"3a0537ed33b4aa5ec7b6998bdcc55d0efc3e33a0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    list \u003d arg[0]"},{"line_number":15,"context_line":"    if list.class \u003d\u003d String"},{"line_number":16,"context_line":"      begin"},{"line_number":17,"context_line":"        list \u003d JSON.load(arg[0].gsub(\"\u0027\",\"\\\"\"))"},{"line_number":18,"context_line":"      rescue JSON::ParserError"},{"line_number":19,"context_line":"        raise Puppet::ParseError, \"Syntax error: #{arg[0]} is not valid\""},{"line_number":20,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9f436f4f_7bd8137a","line":17,"in_reply_to":"9f436f4f_686182d3","updated":"2017-08-14 10:16:44.000000000","message":"I\u0027ll see what I can do. Can\u0027t remove it but maybe I can make it less bad","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"}],"manifests/api.pp":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"572526025a3acba518505e50461b9083ad97d70f","unresolved":false,"context_lines":[{"line_number":536,"context_line":"    \u0027filter:authtoken/auth_admin_prefix\u0027: ensure \u003d\u003e absent;"},{"line_number":537,"context_line":"  }"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"  if !is_service_default($pci_alias) and !empty($pci_alias) {"},{"line_number":540,"context_line":"    $pci_alias_real \u003d to_array_of_json_strings($pci_alias)"},{"line_number":541,"context_line":"  } else {"},{"line_number":542,"context_line":"    $pci_alias_real \u003d $::os_service_default"}],"source_content_type":"text/x-puppet","patch_set":4,"id":"9f436f4f_9334174c","line":539,"range":{"start_line":539,"start_character":41,"end_line":539,"end_character":59},"updated":"2017-08-21 08:33:18.000000000","message":"After this, RDO pike promotion packstack jobs are failing at: https://centos.logs.rdoproject.org/weirdo-pike-promote-packstack-scenario001/13/weirdo-project/logs/latest/openstack-setup.log.txt.gz#_2017-08-19_15_23_33","commit_id":"1cd349f893408803fec307f615ae3fe265d54fed"}],"releasenotes/notes/pci_params_format-bf62bf47585ad1cc.yaml":[{"author":{"_account_id":6908,"name":"Simon Leinen","email":"simon.leinen@gmail.com","username":"simon-leinen"},"change_message_id":"89da1309abbb760d169e856fa3179d47e3a889dc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The nova::api::pci_alias and nova::compute::pci_passthrough now accept"},{"line_number":5,"context_line":"    an array of hashes. The previous format of a JSON encoded string is still"},{"line_number":6,"context_line":"    support but may be deprecated in future."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9f436f4f_ab556e52","line":6,"updated":"2017-08-09 20:56:45.000000000","message":"support -\u003e supported","commit_id":"47c4a66c88f26892898683885411e74e2c1232d6"}]}
