)]}'
{".fixtures.yml":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      \u0027ref\u0027: \u00271.2.1\u0027"},{"line_number":7,"context_line":"    \u0027apt\u0027: \u0027git://github.com/puppetlabs/puppetlabs-apt.git\u0027"},{"line_number":8,"context_line":"    \u0027mysql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-mysql.git\u0027"},{"line_number":9,"context_line":"#    \u0027openstacklib\u0027: \u0027git://github.com/stackforge/puppet-openstacklib.git\u0027"},{"line_number":10,"context_line":"    \u0027stdlib\u0027: \u0027git://github.com/puppetlabs/puppetlabs-stdlib.git\u0027"},{"line_number":11,"context_line":"    \u0027inifile\u0027: \u0027git://github.com/puppetlabs/puppetlabs-inifile\u0027"},{"line_number":12,"context_line":"    \u0027postgresql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-postgresql.git\u0027"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3afb71cf_8cb43d82","line":9,"updated":"2015-06-09 13:44:11.000000000","message":"nack","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      \u0027ref\u0027: \u00271.2.1\u0027"},{"line_number":7,"context_line":"    \u0027apt\u0027: \u0027git://github.com/puppetlabs/puppetlabs-apt.git\u0027"},{"line_number":8,"context_line":"    \u0027mysql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-mysql.git\u0027"},{"line_number":9,"context_line":"#    \u0027openstacklib\u0027: \u0027git://github.com/stackforge/puppet-openstacklib.git\u0027"},{"line_number":10,"context_line":"    \u0027stdlib\u0027: \u0027git://github.com/puppetlabs/puppetlabs-stdlib.git\u0027"},{"line_number":11,"context_line":"    \u0027inifile\u0027: \u0027git://github.com/puppetlabs/puppetlabs-inifile\u0027"},{"line_number":12,"context_line":"    \u0027postgresql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-postgresql.git\u0027"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3afb71cf_959c3c10","line":9,"in_reply_to":"3afb71cf_8cb43d82","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    \u0027postgresql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-postgresql.git\u0027"},{"line_number":13,"context_line":"  symlinks:"},{"line_number":14,"context_line":"    \u0027keystone\u0027: \"#{source_dir}\""},{"line_number":15,"context_line":"    \u0027openstacklib\u0027: \u0027/home/gil/rh/openstack/projects/stackforge/puppet-openstacklib\u0027"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3afb71cf_cc65951e","line":15,"updated":"2015-06-09 13:44:11.000000000","message":"nack","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    \u0027postgresql\u0027: \u0027git://github.com/puppetlabs/puppetlabs-postgresql.git\u0027"},{"line_number":13,"context_line":"  symlinks:"},{"line_number":14,"context_line":"    \u0027keystone\u0027: \"#{source_dir}\""},{"line_number":15,"context_line":"    \u0027openstacklib\u0027: \u0027/home/gil/rh/openstack/projects/stackforge/puppet-openstacklib\u0027"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3afb71cf_759d4009","line":15,"in_reply_to":"3afb71cf_cc65951e","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"}],"lib/puppet/provider/keystone.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"3892d545a2c56cabf4421bf4cb5f5f61825b2575","unresolved":false,"context_lines":[{"line_number":4,"context_line":"class Puppet::Provider::Keystone \u003c Puppet::Provider::Openstack"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  def self.api_v3?"},{"line_number":7,"context_line":"    if @@default_api_version \u003d\u003d [\u0027--os-identity-api-version\u0027, \u00273\u0027]"},{"line_number":8,"context_line":"      return true"},{"line_number":9,"context_line":"    else"},{"line_number":10,"context_line":"      return false"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"3acd31a7_cda018a2","line":7,"updated":"2015-05-04 17:58:45.000000000","message":"This should use get_api_version_for_cmd instead.  The class variable @@default_api_version is really just intended to be the default value.  The only reason it\u0027s there is because I need to override it in one of my patches.","commit_id":"240f51d7641962ed71b84b08c55c701908f4ff5d"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c90cd06cf8dbafe7bf8625019c8c0a7df31ff99d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"class Puppet::Provider::Keystone \u003c Puppet::Provider::Openstack"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  def self.api_v3?"},{"line_number":7,"context_line":"    if @@default_api_version \u003d\u003d [\u0027--os-identity-api-version\u0027, \u00273\u0027]"},{"line_number":8,"context_line":"      return true"},{"line_number":9,"context_line":"    else"},{"line_number":10,"context_line":"      return false"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"3acd31a7_fec6d198","line":7,"in_reply_to":"3acd31a7_93c35657","updated":"2015-05-04 22:58:21.000000000","message":"I need the class variables here https://review.openstack.org/#/c/178385/3/lib/puppet/provider/keystone.rb\n\nI need them for self.default_domain and default_domain.  I need to override and save whatever the subclass provider has set for the url and api version and force the use of v3.  I didn\u0027t think I could replace the class methods, so I introduced class variables.\n\nOtherwise, it is easier/better for the subclasses to override the methods rather than replace the class variables.\n\nIf there is a better way to do this, please let me know.","commit_id":"240f51d7641962ed71b84b08c55c701908f4ff5d"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"a996bfe5502343dc56f88ebd52c26308d6b84103","unresolved":false,"context_lines":[{"line_number":4,"context_line":"class Puppet::Provider::Keystone \u003c Puppet::Provider::Openstack"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  def self.api_v3?"},{"line_number":7,"context_line":"    if @@default_api_version \u003d\u003d [\u0027--os-identity-api-version\u0027, \u00273\u0027]"},{"line_number":8,"context_line":"      return true"},{"line_number":9,"context_line":"    else"},{"line_number":10,"context_line":"      return false"}],"source_content_type":"text/x-ruby","patch_set":6,"id":"3acd31a7_93c35657","line":7,"in_reply_to":"3acd31a7_cda018a2","updated":"2015-05-04 22:25:23.000000000","message":"Well bottom line, the class variable is not needed, the value to be setup in the class method and your patch should overridde the method.\nBecause it\u0027s confusing otherwise, if there are variables is to be able to change them!","commit_id":"240f51d7641962ed71b84b08c55c701908f4ff5d"}],"lib/puppet/provider/keystone_endpoint/openstack.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  end"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"  def destroy"},{"line_number":16,"context_line":"    ids \u003d @property_hash[:id].split(\u0027,\u0027)"},{"line_number":17,"context_line":"    ids.each do |id|"},{"line_number":18,"context_line":"      request(\u0027endpoint\u0027, \u0027delete\u0027, id, resource[:auth])"},{"line_number":19,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_047510f8","line":16,"updated":"2015-04-30 17:56:16.000000000","message":"This should be stored in the instance, not the property_hash which is only used for modifies","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"dbc418d939a06e066c5d4ef3ec4707ab13513b9d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  end"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"  def destroy"},{"line_number":16,"context_line":"    ids \u003d @property_hash[:id].split(\u0027,\u0027)"},{"line_number":17,"context_line":"    ids.each do |id|"},{"line_number":18,"context_line":"      request(\u0027endpoint\u0027, \u0027delete\u0027, id, resource[:auth])"},{"line_number":19,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_b1920a9e","line":16,"in_reply_to":"3acd31a7_047510f8","updated":"2015-05-01 05:44:42.000000000","message":"This whole instance/auth is breaking the way we should do providers, we\u0027re going to pay the price on the long run.\nBut I don\u0027t have an answer for implementing the self.instance/instance properly, this is part of the puppet way of doing things, so I\u0027m not going to challenge that any further, especially when it was offered by puppetlabs itself!!!\nI\u0027ll change it to use the Instance","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    if resource[:public_url]"},{"line_number":32,"context_line":"      public_id \u003d endpoint_create(name, region, \u0027public\u0027, resource[:public_url])[:id]"},{"line_number":33,"context_line":"    end"},{"line_number":34,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  def exists?"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_64dcc4e4","line":34,"updated":"2015-04-30 17:56:16.000000000","message":"should set @instance with all 3 ids and other properties, not @property_hash","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"dbc418d939a06e066c5d4ef3ec4707ab13513b9d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    if resource[:public_url]"},{"line_number":32,"context_line":"      public_id \u003d endpoint_create(name, region, \u0027public\u0027, resource[:public_url])[:id]"},{"line_number":33,"context_line":"    end"},{"line_number":34,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  def exists?"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_117d3e6e","line":34,"in_reply_to":"3acd31a7_64dcc4e4","updated":"2015-05-01 05:44:42.000000000","message":"Ok and all below too.","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  end"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  def region"},{"line_number":42,"context_line":"    @property_hash[:region]"},{"line_number":43,"context_line":"  end"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  def region\u003d(value)"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_44d9c8f2","line":42,"updated":"2015-04-30 17:56:16.000000000","message":"use instance()","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  end"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  def public_url"},{"line_number":50,"context_line":"    @property_hash[:public_url]"},{"line_number":51,"context_line":"  end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  def public_url\u003d(value)"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_04e3d0a4","line":50,"updated":"2015-04-30 17:56:16.000000000","message":"use instance()","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    @property_flush[:public_url] \u003d value"},{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def internal_url"},{"line_number":58,"context_line":"    @property_hash[:internal_url]"},{"line_number":59,"context_line":"  end"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_c4f39872","line":57,"updated":"2015-04-30 17:56:16.000000000","message":"use instance()","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @property_flush[:internal_url] \u003d value"},{"line_number":63,"context_line":"  end"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  def admin_url"},{"line_number":66,"context_line":"    @property_hash[:admin_url]"},{"line_number":67,"context_line":"  end"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_a4e89c7d","line":65,"updated":"2015-04-30 17:56:16.000000000","message":"use instance()","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"  end"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  def id"},{"line_number":78,"context_line":"    @property_hash[:id]"},{"line_number":79,"context_line":"  end"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"  def self.instances"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_04fab042","line":78,"updated":"2015-04-30 17:56:16.000000000","message":"use instance()","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":7462,"name":"Ivan Chavero","email":"ichavero@redhat.com","username":"ichavero"},"change_message_id":"abdadddd5342a17bed200e54ec98e1071e95e392","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        :public_url   \u003d\u003e endpoint[:public][:url]"},{"line_number":136,"context_line":"      }"},{"line_number":137,"context_line":"    end"},{"line_number":138,"context_line":"  end"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  def instance(name)"},{"line_number":141,"context_line":"    @instance ||\u003d instances.select { |instance| instance[:name] \u003d\u003d name }.first || {}"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_bce8a9e3","line":138,"updated":"2015-04-30 22:06:03.000000000","message":"there is some duplicate code between self.instances and instances. i think it would be good to put the common code in a method that both methods use","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"dbc418d939a06e066c5d4ef3ec4707ab13513b9d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        :public_url   \u003d\u003e endpoint[:public][:url]"},{"line_number":136,"context_line":"      }"},{"line_number":137,"context_line":"    end"},{"line_number":138,"context_line":"  end"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  def instance(name)"},{"line_number":141,"context_line":"    @instance ||\u003d instances.select { |instance| instance[:name] \u003d\u003d name }.first || {}"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_3186fa65","line":138,"in_reply_to":"3acd31a7_bce8a9e3","updated":"2015-05-01 05:44:42.000000000","message":"Ivan, I couldn\u0027t agree more with you!\nMeanwhile with openstacklib this is the new trend. \nSee https://groups.google.com/a/puppetlabs.com/forum/#!topic/puppet-openstack/cBZxZ3GJqDw","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c04090da9b969bc9f3acf4ad6ab3f9e216d97ed2","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    properties \u003c\u003c region"},{"line_number":178,"context_line":"    properties \u003c\u003c interface"},{"line_number":179,"context_line":"    properties \u003c\u003c url"},{"line_number":180,"context_line":"    @instance \u003d request(\u0027endpoint\u0027, \u0027create\u0027, name, resource[:auth], properties)"},{"line_number":181,"context_line":"  end"},{"line_number":182,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_34ccb788","line":180,"updated":"2015-04-30 17:56:16.000000000","message":"You need to have only 1 @instance, which will contain the ids and information for all 3 endpoints.  Setting @instance here will just overwrite each time.  You should instance set @instance once in the create method after creating all 3 endpoints.","commit_id":"36b847c9495a16d68144212552119e9313152f52"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1d6a6b3e75ff35ffb6000640554bc204f1d2281f","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    @instance ||\u003d instances.select { |instance| instance[:name] \u003d\u003d name }.first || {}"},{"line_number":215,"context_line":"  end"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"  def self.prefetch(resources)"},{"line_number":218,"context_line":"    endpoints \u003d instances"},{"line_number":219,"context_line":"      resources.keys.each do |name|"},{"line_number":220,"context_line":"      if provider \u003d endpoints.find{ |endpoint| endpoint.name \u003d\u003d name }"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_2d58da31","line":217,"updated":"2015-05-01 14:47:57.000000000","message":"None of the new code uses prefetch.  You\u0027ll have to ask the puppet guys why.  But this will most likely get a -2 in review.","commit_id":"4bdfb983f55b66d26e1d389007fe21cb521fd084"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1d6a6b3e75ff35ffb6000640554bc204f1d2281f","unresolved":false,"context_lines":[{"line_number":246,"context_line":"  private"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"  def api_v3?"},{"line_number":249,"context_line":"    return true if resource[:auth].has_key?(\u0027--os-identity-api-version\u0027) \u0026\u0026 resource[:auth][\u0027--os-identity-api-version\u0027] \u003d\u003d \u00273\u0027"},{"line_number":250,"context_line":"  end"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"  def endpoint_create(name, region, interface, url)"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_8d5ece10","line":249,"updated":"2015-05-01 14:47:57.000000000","message":"I think we need to separate the auth version from the api version.  Also, in openstacklib openstack.rb, the parameter is \u0027version\u0027, not \u0027--os-identity-api-version\u0027.","commit_id":"4bdfb983f55b66d26e1d389007fe21cb521fd084"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1d6a6b3e75ff35ffb6000640554bc204f1d2281f","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    properties \u003c\u003c region"},{"line_number":255,"context_line":"    properties \u003c\u003c interface"},{"line_number":256,"context_line":"    properties \u003c\u003c url"},{"line_number":257,"context_line":"    @instance \u003d request(\u0027endpoint\u0027, \u0027create\u0027, name, resource[:auth], properties)"},{"line_number":258,"context_line":"  end"},{"line_number":259,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3acd31a7_edb0a245","line":257,"updated":"2015-05-01 14:47:57.000000000","message":"This overwrites @instance each time it is called.","commit_id":"4bdfb983f55b66d26e1d389007fe21cb521fd084"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"17bc59a15198585fdc869794e6d9d254796c1fce","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  end"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  def destroy"},{"line_number":33,"context_line":"    p @property_hash"},{"line_number":34,"context_line":"    ids \u003d @property_hash[:id].split(\u0027,\u0027)"},{"line_number":35,"context_line":"    ids.each do |id|"},{"line_number":36,"context_line":"      self.class.request(\u0027endpoint\u0027, \u0027delete\u0027, id)"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"3afb71cf_0878abc3","line":33,"updated":"2015-06-05 14:18:29.000000000","message":"remove this","commit_id":"9d979f68432d18869e5dd548723afb8fc1bf7648"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  end"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  def self.instances"},{"line_number":81,"context_line":"    p \u0027here\u0027"},{"line_number":82,"context_line":"    names\u003d[]"},{"line_number":83,"context_line":"    list\u003d[]"},{"line_number":84,"context_line":"    endpoints \u003d request(\u0027endpoint\u0027, \u0027list\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_2c7789d4","line":81,"updated":"2015-06-09 13:44:11.000000000","message":"nack","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  end"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  def self.instances"},{"line_number":81,"context_line":"    p \u0027here\u0027"},{"line_number":82,"context_line":"    names\u003d[]"},{"line_number":83,"context_line":"    list\u003d[]"},{"line_number":84,"context_line":"    endpoints \u003d request(\u0027endpoint\u0027, \u0027list\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_d58e34cf","line":81,"in_reply_to":"3afb71cf_2c7789d4","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"8f1932ac7ca6fc2627038cd580173ca9010cae02","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  def public_url\u003d(value)"},{"line_number":54,"context_line":"    @property_flush[:public_url] \u003d value"},{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def public_url"},{"line_number":58,"context_line":"    @property_hash[:public_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_e1cecdb3","side":"PARENT","line":55,"updated":"2015-10-27 15:33:00.000000000","message":"You mustn\u0027t remove it, as mk_resource_methods doesn\u0027t fill the @property_flush but the @property_hash, so midifying a resource won\u0027t work anymore.","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b5e8c5b67b9cb3239a894d1d33e61c8fc243c6b2","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  def public_url\u003d(value)"},{"line_number":54,"context_line":"    @property_flush[:public_url] \u003d value"},{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def public_url"},{"line_number":58,"context_line":"    @property_hash[:public_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_f768bcbc","side":"PARENT","line":55,"in_reply_to":"1a26ad4f_e1cecdb3","updated":"2015-10-28 04:58:44.000000000","message":"You\u0027re right, I missed that. Thanks","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"8f1932ac7ca6fc2627038cd580173ca9010cae02","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  def internal_url\u003d(value)"},{"line_number":62,"context_line":"    @property_flush[:internal_url] \u003d value"},{"line_number":63,"context_line":"  end"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  def internal_url"},{"line_number":66,"context_line":"    @property_hash[:internal_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_81c4b992","side":"PARENT","line":63,"updated":"2015-10-27 15:33:00.000000000","message":"Idem","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b5e8c5b67b9cb3239a894d1d33e61c8fc243c6b2","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  def internal_url\u003d(value)"},{"line_number":62,"context_line":"    @property_flush[:internal_url] \u003d value"},{"line_number":63,"context_line":"  end"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  def internal_url"},{"line_number":66,"context_line":"    @property_hash[:internal_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_d75fc00c","side":"PARENT","line":63,"in_reply_to":"1a26ad4f_81c4b992","updated":"2015-10-28 04:58:44.000000000","message":"Done","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"8f1932ac7ca6fc2627038cd580173ca9010cae02","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  def admin_url\u003d(value)"},{"line_number":70,"context_line":"    @property_flush[:admin_url] \u003d value"},{"line_number":71,"context_line":"  end"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  def admin_url"},{"line_number":74,"context_line":"    @property_hash[:admin_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_a1c1b582","side":"PARENT","line":71,"updated":"2015-10-27 15:33:00.000000000","message":"Idem","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b5e8c5b67b9cb3239a894d1d33e61c8fc243c6b2","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  def admin_url\u003d(value)"},{"line_number":70,"context_line":"    @property_flush[:admin_url] \u003d value"},{"line_number":71,"context_line":"  end"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"  def admin_url"},{"line_number":74,"context_line":"    @property_hash[:admin_url]"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_97a068f6","side":"PARENT","line":71,"in_reply_to":"1a26ad4f_a1c1b582","updated":"2015-10-28 04:58:44.000000000","message":"Done","commit_id":"580582530be9bf12697a69378ff74677dc64ef6c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"8f1932ac7ca6fc2627038cd580173ca9010cae02","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"    if resource[:public_url]"},{"line_number":26,"context_line":"      public_id \u003d endpoint_create(name, region, \u0027public\u0027, resource[:public_url])[:id]"},{"line_number":27,"context_line":"    end"},{"line_number":28,"context_line":"    @property_hash[:id] \u003d \"#{admin_id},#{internal_id},#{public_id}\""},{"line_number":29,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":30,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_c1c951ae","line":27,"updated":"2015-10-27 15:33:00.000000000","message":"You can refactor this part like this for instance:\n\n  ids \u003d []\n  [:admin_url, :internal_url, :public_url].each do |scope|\n    if resource[scope]\n      ids \u003c\u003c endpoint_create(name, \n                             region,\n                             scope.to_s.sub(/_url$/,\u0027\u0027),\n                             resource[scope])[:id]\n    end\n  end\n  @property_hash[:id] \u003d ids.join(\u0027,\u0027)\n\nless repetition.","commit_id":"d4bdc72c99f60ab8da2729639b7997025f6fd875"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b5e8c5b67b9cb3239a894d1d33e61c8fc243c6b2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    end"},{"line_number":25,"context_line":"    if resource[:public_url]"},{"line_number":26,"context_line":"      public_id \u003d endpoint_create(name, region, \u0027public\u0027, resource[:public_url])[:id]"},{"line_number":27,"context_line":"    end"},{"line_number":28,"context_line":"    @property_hash[:id] \u003d \"#{admin_id},#{internal_id},#{public_id}\""},{"line_number":29,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":30,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"1a26ad4f_370f14e3","line":27,"in_reply_to":"1a26ad4f_c1c951ae","updated":"2015-10-28 04:58:44.000000000","message":"That\u0027s slick. I take it!","commit_id":"d4bdc72c99f60ab8da2729639b7997025f6fd875"}],"spec/acceptance/keystone_federation_identity_provider_spec.rb":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"eb82136bf8948ef192ecd0d3eea3aec4936f6f62","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      class { \u0027::keystone::endpoint\u0027:"},{"line_number":77,"context_line":"        public_url     \u003d\u003e \"http://127.0.0.1:5000/\","},{"line_number":78,"context_line":"        admin_url      \u003d\u003e \"http://127.0.0.1:35357/\","},{"line_number":79,"context_line":"        default_domain \u003d\u003e \u0027admin\u0027,"},{"line_number":80,"context_line":"      }"},{"line_number":81,"context_line":"      ::keystone::resource::service_identity { \u0027beaker-ci\u0027:"}],"source_content_type":"text/x-ruby","patch_set":31,"id":"1a26ad4f_70048ebf","side":"PARENT","line":78,"updated":"2015-10-29 07:39:21.000000000","message":"why don\u0027t you delete that in other beaker tests?","commit_id":"d79020d163c22e1bf4bb5a583befa86be4371048"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"2f110ce1acb632ad1b5adc5a84b0815dcef6f974","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      class { \u0027::keystone::endpoint\u0027:"},{"line_number":77,"context_line":"        public_url     \u003d\u003e \"http://127.0.0.1:5000/\","},{"line_number":78,"context_line":"        admin_url      \u003d\u003e \"http://127.0.0.1:35357/\","},{"line_number":79,"context_line":"        default_domain \u003d\u003e \u0027admin\u0027,"},{"line_number":80,"context_line":"      }"},{"line_number":81,"context_line":"      ::keystone::resource::service_identity { \u0027beaker-ci\u0027:"}],"source_content_type":"text/x-ruby","patch_set":31,"id":"1a26ad4f_c0e7bde2","side":"PARENT","line":78,"in_reply_to":"1a26ad4f_70048ebf","updated":"2015-10-29 21:53:13.000000000","message":"Did you check the other files? Those lines were only in this file.","commit_id":"d79020d163c22e1bf4bb5a583befa86be4371048"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"72c2c9adea37544ce4faea3ca64d77b3e3c766a3","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      }"},{"line_number":76,"context_line":"      class { \u0027::keystone::endpoint\u0027:"},{"line_number":77,"context_line":"        public_url     \u003d\u003e \"http://127.0.0.1:5000/\","},{"line_number":78,"context_line":"        admin_url      \u003d\u003e \"http://127.0.0.1:35357/\","},{"line_number":79,"context_line":"        default_domain \u003d\u003e \u0027admin\u0027,"},{"line_number":80,"context_line":"      }"},{"line_number":81,"context_line":"      ::keystone::resource::service_identity { \u0027beaker-ci\u0027:"}],"source_content_type":"text/x-ruby","patch_set":31,"id":"fa80f949_d1731be6","side":"PARENT","line":78,"in_reply_to":"1a26ad4f_c0e7bde2","updated":"2015-11-04 19:09:47.000000000","message":"ok, fair enough.\n\nAbout the -1 again that\u0027s because sometimes people do not see comments if +0 vote.\nAbout stats: seriously? I personally don\u0027t care about stats and you can give me as many -1 you want if a patch needs attention before merging. What we\u0027re doing in puppet-keystone is really critical.\n\n\nThanks for this work.","commit_id":"d79020d163c22e1bf4bb5a583befa86be4371048"}],"spec/unit/provider/keystone_endpoint/openstack_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"17bc59a15198585fdc869794e6d9d254796c1fce","unresolved":false,"context_lines":[{"line_number":77,"context_line":"      describe \u0027#exists\u0027 do"},{"line_number":78,"context_line":"        context \u0027when tenant does not exist\u0027 do"},{"line_number":79,"context_line":"          subject(:response) do"},{"line_number":80,"context_line":"            provider.class.stubs(:openstack)"},{"line_number":81,"context_line":"                          .with(\u0027endpoint\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"},{"line_number":82,"context_line":"                          .returns(\u0027\"ID\",\"Region\",\"Service Name\",\"Service Type\",\"PublicURL\",\"AdminURL\",\"InternalURL\"\u0027)"},{"line_number":83,"context_line":"            response \u003d provider.exists?"}],"source_content_type":"text/x-ruby","patch_set":12,"id":"3afb71cf_8b4db574","line":80,"updated":"2015-06-05 14:18:29.000000000","message":"use expects instead of stubs","commit_id":"9d979f68432d18869e5dd548723afb8fc1bf7648"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c2c8afb4ae03c37e3b16d762f66eb9548f0fdaa9","unresolved":false,"context_lines":[{"line_number":77,"context_line":"      describe \u0027#exists\u0027 do"},{"line_number":78,"context_line":"        context \u0027when tenant does not exist\u0027 do"},{"line_number":79,"context_line":"          subject(:response) do"},{"line_number":80,"context_line":"            response \u003d provider.exists?"},{"line_number":81,"context_line":"          end"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"          it { is_expected.to be_falsey }"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"3afb71cf_ab1751ec","line":80,"updated":"2015-06-05 14:24:14.000000000","message":"provider.exists? does not call endpoint list, so the provider.class.stubs(:openstack) for endpoint list was removed.","commit_id":"66546c7cfedd4b1e8c602c49406ee29bd4e61573"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":37,"context_line":"      describe \u0027#create\u0027 do"},{"line_number":38,"context_line":"        it \u0027creates an endpoint\u0027 do"},{"line_number":39,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":40,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027admin\u0027, \u0027http://127.0.0.1:5002/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":41,"context_line":"                        .returns(\u0027admin_url\u003d\"http://127.0.0.1:5002/v3\""},{"line_number":42,"context_line":"id\u003d\"17ec9cff228143a980f891aebd937698\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_4c61a504","line":39,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":37,"context_line":"      describe \u0027#create\u0027 do"},{"line_number":38,"context_line":"        it \u0027creates an endpoint\u0027 do"},{"line_number":39,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":40,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027admin\u0027, \u0027http://127.0.0.1:5002/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":41,"context_line":"                        .returns(\u0027admin_url\u003d\"http://127.0.0.1:5002/v3\""},{"line_number":42,"context_line":"id\u003d\"17ec9cff228143a980f891aebd937698\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_95c31ced","line":39,"in_reply_to":"3afb71cf_4c61a504","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"id\u003d\"17ec9cff228143a980f891aebd937698\""},{"line_number":43,"context_line":"region\u003d\"foo\""},{"line_number":44,"context_line":"\u0027)"},{"line_number":45,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":46,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027internal\u0027, \u0027http://127.0.0.1:5001/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":47,"context_line":"                        .returns(\u0027internal_url\u003d\"http://127.0.0.1:5001/v3\""},{"line_number":48,"context_line":"id\u003d\"82025cbf250d43179b0c02eeef0a9589\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_8c39ddf4","line":45,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":42,"context_line":"id\u003d\"17ec9cff228143a980f891aebd937698\""},{"line_number":43,"context_line":"region\u003d\"foo\""},{"line_number":44,"context_line":"\u0027)"},{"line_number":45,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":46,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027internal\u0027, \u0027http://127.0.0.1:5001/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":47,"context_line":"                        .returns(\u0027internal_url\u003d\"http://127.0.0.1:5001/v3\""},{"line_number":48,"context_line":"id\u003d\"82025cbf250d43179b0c02eeef0a9589\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_75b42081","line":45,"in_reply_to":"3afb71cf_8c39ddf4","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"id\u003d\"82025cbf250d43179b0c02eeef0a9589\""},{"line_number":49,"context_line":"region\u003d\"foo\""},{"line_number":50,"context_line":"\u0027)"},{"line_number":51,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":52,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027public\u0027, \u0027http://127.0.0.1:5000/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":53,"context_line":"                        .returns(\u0027public_url\u003d\"http://127.0.0.1:5000/v3\""},{"line_number":54,"context_line":"id\u003d\"53c92fdc0acc4b1b9c79bf541129a6d3\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_2c2549c0","line":51,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":48,"context_line":"id\u003d\"82025cbf250d43179b0c02eeef0a9589\""},{"line_number":49,"context_line":"region\u003d\"foo\""},{"line_number":50,"context_line":"\u0027)"},{"line_number":51,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":52,"context_line":"                        .with(\u0027endpoint\u0027, \u0027create\u0027, \u0027--format\u0027, \u0027shell\u0027, [\u0027bar\u0027, \u0027public\u0027, \u0027http://127.0.0.1:5000/v3\u0027, \u0027--region\u0027, \u0027foo\u0027])"},{"line_number":53,"context_line":"                        .returns(\u0027public_url\u003d\"http://127.0.0.1:5000/v3\""},{"line_number":54,"context_line":"id\u003d\"53c92fdc0acc4b1b9c79bf541129a6d3\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_35b3489a","line":51,"in_reply_to":"3afb71cf_2c2549c0","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      describe \u0027#destroy\u0027 do"},{"line_number":64,"context_line":"        it \u0027destroys an endpoint\u0027 do"},{"line_number":65,"context_line":"          provider.instance_variable_get(\u0027@property_hash\u0027)[:id] \u003d \u002717ec9cff228143a980f891aebd937698,82025cbf250d43179b0c02eeef0a9589,53c92fdc0acc4b1b9c79bf541129a6d3\u0027"},{"line_number":66,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_ec2a918f","line":66,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      describe \u0027#destroy\u0027 do"},{"line_number":64,"context_line":"        it \u0027destroys an endpoint\u0027 do"},{"line_number":65,"context_line":"          provider.instance_variable_get(\u0027@property_hash\u0027)[:id] \u003d \u002717ec9cff228143a980f891aebd937698,82025cbf250d43179b0c02eeef0a9589,53c92fdc0acc4b1b9c79bf541129a6d3\u0027"},{"line_number":66,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_15b04c89","line":66,"in_reply_to":"3afb71cf_ec2a918f","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"          provider.instance_variable_get(\u0027@property_hash\u0027)[:id] \u003d \u002717ec9cff228143a980f891aebd937698,82025cbf250d43179b0c02eeef0a9589,53c92fdc0acc4b1b9c79bf541129a6d3\u0027"},{"line_number":66,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"},{"line_number":70,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":71,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002753c92fdc0acc4b1b9c79bf541129a6d3\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_ac1ff96a","line":68,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":65,"context_line":"          provider.instance_variable_get(\u0027@property_hash\u0027)[:id] \u003d \u002717ec9cff228143a980f891aebd937698,82025cbf250d43179b0c02eeef0a9589,53c92fdc0acc4b1b9c79bf541129a6d3\u0027"},{"line_number":66,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"},{"line_number":70,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":71,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002753c92fdc0acc4b1b9c79bf541129a6d3\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_f5a81022","line":68,"in_reply_to":"3afb71cf_ac1ff96a","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"},{"line_number":70,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":71,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002753c92fdc0acc4b1b9c79bf541129a6d3\u0027)"},{"line_number":72,"context_line":"          provider.destroy"},{"line_number":73,"context_line":"          expect(provider.exists?).to be_falsey"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_4c0f6537","line":70,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002717ec9cff228143a980f891aebd937698\u0027)"},{"line_number":68,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":69,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002782025cbf250d43179b0c02eeef0a9589\u0027)"},{"line_number":70,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":71,"context_line":"                        .with(\u0027endpoint\u0027, \u0027delete\u0027, \u002753c92fdc0acc4b1b9c79bf541129a6d3\u0027)"},{"line_number":72,"context_line":"          provider.destroy"},{"line_number":73,"context_line":"          expect(provider.exists?).to be_falsey"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_d5a51447","line":70,"in_reply_to":"3afb71cf_4c0f6537","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"      describe \u0027#exists\u0027 do"},{"line_number":78,"context_line":"        context \u0027when tenant does not exist\u0027 do"},{"line_number":79,"context_line":"          subject(:response) do"},{"line_number":80,"context_line":"            provider.class.stubs(:openstack)"},{"line_number":81,"context_line":"                          .with(\u0027endpoint\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"},{"line_number":82,"context_line":"                          .returns(\u0027\"ID\",\"Region\",\"Service Name\",\"Service Type\",\"Enabled\",\"Interface\",\"URL\"\u0027)"},{"line_number":83,"context_line":"            response \u003d provider.exists?"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_2f13fb5c","line":80,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":77,"context_line":"      describe \u0027#exists\u0027 do"},{"line_number":78,"context_line":"        context \u0027when tenant does not exist\u0027 do"},{"line_number":79,"context_line":"          subject(:response) do"},{"line_number":80,"context_line":"            provider.class.stubs(:openstack)"},{"line_number":81,"context_line":"                          .with(\u0027endpoint\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"},{"line_number":82,"context_line":"                          .returns(\u0027\"ID\",\"Region\",\"Service Name\",\"Service Type\",\"Enabled\",\"Interface\",\"URL\"\u0027)"},{"line_number":83,"context_line":"            response \u003d provider.exists?"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_15772cd4","line":80,"in_reply_to":"3afb71cf_2f13fb5c","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78ed35c6e908922e68d04255c4af8c0be829f56b","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"      describe \u0027#instances\u0027 do"},{"line_number":91,"context_line":"        it \u0027finds every tenant\u0027 do"},{"line_number":92,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":93,"context_line":"                        .with(\u0027endpoint\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"},{"line_number":94,"context_line":"                        .returns(\u0027\"ID\",\"Region\",\"Service Name\",\"Service Type\",\"Enabled\",\"Interface\",\"URL\""},{"line_number":95,"context_line":"\"17ec9cff228143a980f891aebd937698\",\"RegionOne\",\"keystone\",\"identity\",True,\"admin\",\"http://127.0.0.1:5002/v3/\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_2f3adbcc","line":92,"updated":"2015-06-09 13:44:11.000000000","message":"please use \"expects\" instead of \"stubs\"","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"c3db4c07ab4603ae836edbf9d897623d9b215630","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"      describe \u0027#instances\u0027 do"},{"line_number":91,"context_line":"        it \u0027finds every tenant\u0027 do"},{"line_number":92,"context_line":"          provider.class.stubs(:openstack)"},{"line_number":93,"context_line":"                        .with(\u0027endpoint\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"},{"line_number":94,"context_line":"                        .returns(\u0027\"ID\",\"Region\",\"Service Name\",\"Service Type\",\"Enabled\",\"Interface\",\"URL\""},{"line_number":95,"context_line":"\"17ec9cff228143a980f891aebd937698\",\"RegionOne\",\"keystone\",\"identity\",True,\"admin\",\"http://127.0.0.1:5002/v3/\""}],"source_content_type":"text/x-ruby","patch_set":15,"id":"3afb71cf_f57ff0a8","line":92,"in_reply_to":"3afb71cf_2f3adbcc","updated":"2015-06-09 14:25:37.000000000","message":"Done","commit_id":"dc67567380d381c70dc7d8b6397fef7cc04ed5f5"}]}
