)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cf1821b01d91f359f89b53666e21ccf09b9eca1b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  retries, and response parsing in the provider."},{"line_number":18,"context_line":"- Presumed reduction in sudden API changes that require quick fixes in"},{"line_number":19,"context_line":"  this module, such as f377c0229c006b02f43a14be4979553e983cb98e."},{"line_number":20,"context_line":"- Ability to set project-based access control for images"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Additional reasoning for this change is in the blueprint."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3acd31a7_ce9c6b10","line":20,"updated":"2015-05-05 17:33:20.000000000","message":"- Ability to run the provider from any node that can reach Keystone \u0026 Glance nodes","commit_id":"9d8a5b2358948016eed58da3970794d466f60cb3"},{"author":{"_account_id":10540,"name":"Clayton O\u0027Neill","email":"clayton.oneill@charter.com","username":"coneill"},"change_message_id":"ced261d369ecf97463a066f1c3411dcc9bbb98a8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"a change from how this was implemented before. The --long formatted"},{"line_number":31,"context_line":"list, either from the glance client or openstackclient, does not"},{"line_number":32,"context_line":"provide all information needed to query an instance and populate"},{"line_number":33,"context_line":"setters. Future patches could possibly improve on this."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Other details of this change:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3a50d1a3_dcbaa26e","line":33,"updated":"2015-07-19 17:49:58.000000000","message":"If I understand correctly, this could be a performance regression for people managing large number of instances?","commit_id":"39b58df7a8bde6fa3645e77965ce1380def32c99"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a99b5b89dfae8aa1ae77b97b486a65e9de90a140","unresolved":false,"context_lines":[{"line_number":30,"context_line":"a change from how this was implemented before. The --long formatted"},{"line_number":31,"context_line":"list, either from the glance client or openstackclient, does not"},{"line_number":32,"context_line":"provide all information needed to query an instance and populate"},{"line_number":33,"context_line":"setters. Future patches could possibly improve on this."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Other details of this change:"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"1a4dcd0f_1b333bf8","line":33,"in_reply_to":"3a50d1a3_dcbaa26e","updated":"2015-08-07 17:22:48.000000000","message":"Not a regression, this is just a note that this was a problem previously and doesn\u0027t do anything to address it.","commit_id":"39b58df7a8bde6fa3645e77965ce1380def32c99"}],"lib/puppet/provider/glance.rb":[{"author":{"_account_id":7462,"name":"Ivan Chavero","email":"ichavero@redhat.com","username":"ichavero"},"change_message_id":"61a77fb70e2b34eaeef9df48de29a6e1b404a9a4","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  def request(service, action, object, credentials, *properties)"},{"line_number":9,"context_line":"    begin"},{"line_number":10,"context_line":"      super"},{"line_number":11,"context_line":"    rescue Puppet::Error::OpenstackAuthInputError \u003d\u003e error"},{"line_number":12,"context_line":"      glance_request(service, action, object, credentials, error, *properties)"},{"line_number":13,"context_line":"    end"},{"line_number":14,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"bab921fb_c41b4d1a","line":11,"updated":"2015-04-24 19:52:56.000000000","message":"the authenticate_request method raises Puppet::Error::OpenstackUnauthorizedError, should it also be catched?\nmaybe just catch Puppet::Error?","commit_id":"7bdb9b8062e1868ed44cc172a7402bab1c63036e"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fd08a77c63b48580e0444a0060d625862387c097","unresolved":false,"context_lines":[{"line_number":8,"context_line":"  def request(service, action, object, credentials, *properties)"},{"line_number":9,"context_line":"    begin"},{"line_number":10,"context_line":"      super"},{"line_number":11,"context_line":"    rescue Puppet::Error::OpenstackAuthInputError \u003d\u003e error"},{"line_number":12,"context_line":"      glance_request(service, action, object, credentials, error, *properties)"},{"line_number":13,"context_line":"    end"},{"line_number":14,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"7ad32947_5ed8971d","line":11,"in_reply_to":"bab921fb_c41b4d1a","updated":"2015-04-27 23:29:43.000000000","message":"It specifically catches Puppet::Error::OpenstackAuthInputError because that indicates that no credentials were passed in the auth parameter and that we should try the glance_request method to authenticate. If Puppet::Error::OpenstackUnauthorizedError is raised then the user tried to pass invalid credentials in, so we should fail on that instead of trying to authenticate a different way. If any other Puppet::Error is raised then that is not something we can predict and handle, and running glance_request will not help, so we should leave it alone.","commit_id":"7bdb9b8062e1868ed44cc172a7402bab1c63036e"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"6e8d8a65fab80d3ae0c87eabc8d48917d40f73af","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    begin"},{"line_number":14,"context_line":"      super"},{"line_number":15,"context_line":"    rescue Puppet::Error::OpenstackAuthInputError \u003d\u003e error"},{"line_number":16,"context_line":"      glance_request(service, action, error, properties\u003dnil)"},{"line_number":17,"context_line":"    end"},{"line_number":18,"context_line":"  end"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":14,"id":"3afb71cf_f50f9e34","line":16,"updated":"2015-06-11 00:55:34.000000000","message":"this should just be \"properties\" instead of \"properties\u003dnil\"","commit_id":"f53bb6985c906239daf17487001169cfc57d6540"},{"author":{"_account_id":7423,"name":"Cody Herriges","email":"cody@herriges.org","username":"ody"},"change_message_id":"74881b940e19baa52ae86008e3e502241ff1557a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  end"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  def bool_to_sym(bool)"},{"line_number":101,"context_line":"    bool \u003d\u003d true ? :true : :false"},{"line_number":102,"context_line":"  end"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_3632d9a7","line":101,"updated":"2015-06-11 04:36:33.000000000","message":"I know that I\u0027ve also had to do this in one of my other providers but now I wonder how it works in the Puppet 4 parser...pretty sure we are relying on real booleans in puppetlabs-chronos.  Inconsequential here though since this needs to work before the new parser.","commit_id":"88b9b0194b536fed813a5a32a6b4751401e3f49d"}],"lib/puppet/provider/glance_image/openstack.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"6e8d8a65fab80d3ae0c87eabc8d48917d40f73af","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      (properties \u003c\u003c \u0027--private\u0027) if @property_flush[:is_public] \u003d\u003d :false"},{"line_number":117,"context_line":"      (properties \u003c\u003c \"--container-format\u003d#{@property_flush[:container_format]}\") if @property_flush[:container_format]"},{"line_number":118,"context_line":"      (properties \u003c\u003c \"--disk-format\u003d#{@property_flush[:disk_format]}\") if @property_flush[:disk_format]"},{"line_number":119,"context_line":"      self.class.request(\u0027image\u0027, \u0027set\u0027, properties) unless properties.empty?"},{"line_number":120,"context_line":"      @property_flush.clear"},{"line_number":121,"context_line":"    end"},{"line_number":122,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":14,"id":"3afb71cf_c716394b","line":119,"updated":"2015-06-11 00:55:34.000000000","message":"properties will never be empty here","commit_id":"f53bb6985c906239daf17487001169cfc57d6540"},{"author":{"_account_id":7423,"name":"Cody Herriges","email":"cody@herriges.org","username":"ody"},"change_message_id":"74881b940e19baa52ae86008e3e502241ff1557a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  :parent \u003d\u003e Puppet::Provider::Glance"},{"line_number":6,"context_line":") do"},{"line_number":7,"context_line":"  desc \u003c\u003c-EOT"},{"line_number":8,"context_line":"    Glance provider to manage glance_image type."},{"line_number":9,"context_line":"  EOT"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  @credentials \u003d Puppet::Provider::Openstack::CredentialsV2_0.new"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_f6de813c","line":8,"updated":"2015-06-11 04:36:33.000000000","message":"It is not really the \"glance\" provider anymore.","commit_id":"88b9b0194b536fed813a5a32a6b4751401e3f49d"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0c55715c378e3531f4d715e3504a6c46b1ee1015","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      (properties \u003c\u003c \u0027--private\u0027) if @property_flush[:is_public] \u003d\u003d :false"},{"line_number":117,"context_line":"      (properties \u003c\u003c \"--container-format\u003d#{@property_flush[:container_format]}\") if @property_flush[:container_format]"},{"line_number":118,"context_line":"      (properties \u003c\u003c \"--disk-format\u003d#{@property_flush[:disk_format]}\") if @property_flush[:disk_format]"},{"line_number":119,"context_line":"      self.class.request(\u0027image\u0027, \u0027set\u0027, properties) unless properties.empty?"},{"line_number":120,"context_line":"      @property_flush.clear"},{"line_number":121,"context_line":"    end"},{"line_number":122,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_0a6d78cb","line":119,"updated":"2015-06-11 01:38:55.000000000","message":"properties will never be empty here","commit_id":"88b9b0194b536fed813a5a32a6b4751401e3f49d"},{"author":{"_account_id":7423,"name":"Cody Herriges","email":"cody@herriges.org","username":"ody"},"change_message_id":"74881b940e19baa52ae86008e3e502241ff1557a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      (properties \u003c\u003c \u0027--private\u0027) if @property_flush[:is_public] \u003d\u003d :false"},{"line_number":117,"context_line":"      (properties \u003c\u003c \"--container-format\u003d#{@property_flush[:container_format]}\") if @property_flush[:container_format]"},{"line_number":118,"context_line":"      (properties \u003c\u003c \"--disk-format\u003d#{@property_flush[:disk_format]}\") if @property_flush[:disk_format]"},{"line_number":119,"context_line":"      self.class.request(\u0027image\u0027, \u0027set\u0027, properties) unless properties.empty?"},{"line_number":120,"context_line":"      @property_flush.clear"},{"line_number":121,"context_line":"    end"},{"line_number":122,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_b6f6c98c","line":119,"in_reply_to":"3afb71cf_0a6d78cb","updated":"2015-06-11 04:36:33.000000000","message":"maybe \"properties.size \u003e 1\"? But really @property_flush should probably be empty and the block never even evaluated if the size of properties is one.","commit_id":"88b9b0194b536fed813a5a32a6b4751401e3f49d"}],"manifests/init.pp":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"cf1821b01d91f359f89b53666e21ccf09b9eca1b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    }"},{"line_number":31,"context_line":"  }"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  include ::openstacklib::openstackclient"},{"line_number":34,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":9,"id":"3acd31a7_0e1a637d","line":33,"updated":"2015-05-05 17:33:20.000000000","message":"a unit test is missing for that.","commit_id":"9d8a5b2358948016eed58da3970794d466f60cb3"}],"spec/unit/provider/glance_image_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0c55715c378e3531f4d715e3504a6c46b1ee1015","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":38,"context_line":"      describe \u0027#create\u0027 do"},{"line_number":39,"context_line":"        it \u0027creates an image\u0027 do"},{"line_number":40,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":41,"context_line":"                        .with(\u0027image\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, \u0027--long\u0027)"},{"line_number":42,"context_line":"                        .returns(\u0027\"ID\",\"Name\",\"Disk Format\",\"Container Format\",\"Size\",\"Status\""},{"line_number":43,"context_line":"\"534  5b502-efe4-4852-a45d-edaba3a3acc6\",\"image1\",\"raw\",\"bare\",1270,\"active\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_2aa154f8","line":40,"updated":"2015-06-11 01:38:55.000000000","message":"would prefer \"expects\" instead of \"stubs\" here and elsewhere","commit_id":"88b9b0194b536fed813a5a32a6b4751401e3f49d"}]}
