)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"adaad68d302c6c71792a88780c433abf0b08e976","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The remote-id parameter is not yet implemented as it was included in"},{"line_number":12,"context_line":"openstack/python-openstackclient@6a9d6af2 and is not yet available in"},{"line_number":13,"context_line":"all supported platforms (ubuntu14.04 for instance with"},{"line_number":14,"context_line":"1.0.3-0ubuntu1~cloud0)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-federation-ext.html#identity-provider-api"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_bccd585f","line":14,"updated":"2015-07-16 17:17:33.000000000","message":"Looks like this was added in version 1.0.4.  In the meantime, for testing, you\u0027ll have to build your own version from source from the 1.0.4 tag.","commit_id":"d2acb184640a5af6d30bef6fb1494d683ae2775e"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The remote-id parameter is not yet implemented as it was included in"},{"line_number":12,"context_line":"openstack/python-openstackclient@6a9d6af2 and is not yet available in"},{"line_number":13,"context_line":"all supported platforms (ubuntu14.04 for instance with"},{"line_number":14,"context_line":"1.0.3-0ubuntu1~cloud0)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-federation-ext.html#identity-provider-api"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_1356505c","line":14,"updated":"2015-07-21 17:20:09.000000000","message":"I think we should implement support for remote_ids anyway.","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The remote-id parameter is not yet implemented as it was included in"},{"line_number":12,"context_line":"openstack/python-openstackclient@6a9d6af2 and is not yet available in"},{"line_number":13,"context_line":"all supported platforms (ubuntu14.04 for instance with"},{"line_number":14,"context_line":"1.0.3-0ubuntu1~cloud0)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-federation-ext.html#identity-provider-api"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a50d1a3_a430749f","line":14,"in_reply_to":"3a50d1a3_1356505c","updated":"2015-07-21 18:01:34.000000000","message":"remote id is done.  But I was wondering about remote-id-file.  Should we support it as well ?","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":12,"context_line":"most distribution so this provider will work from liberty on."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-federation-ext.html#identity-provider-api"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I4003d1a16d8ac3694f350c82b7b990f374a4a7b6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"da20952f_69d843f0","line":15,"updated":"2015-09-02 10:19:25.000000000","message":"A suggestion for commit messages, is to give a little bit more details about the code you\u0027re writing.\n\nA good reading: https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":12,"context_line":"most distribution so this provider will work from liberty on."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-federation-ext.html#identity-provider-api"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I4003d1a16d8ac3694f350c82b7b990f374a4a7b6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":35,"id":"da20952f_c000dd03","line":15,"in_reply_to":"da20952f_69d843f0","updated":"2015-09-04 09:45:29.000000000","message":"Done","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"}],"lib/puppet/provider/keystone_identity_provider/openstack.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"  def create"},{"line_number":18,"context_line":"    properties \u003d [resource[:name]]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    self.class.request(\u0027identity provider\u0027, \u0027create\u0027, properties)"},{"line_number":21,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":22,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_d3c9c879","line":19,"updated":"2015-07-21 17:20:09.000000000","message":"What about the `--description` parameter?\n\nWhat about the `--remote-id` parameter?  Does the create command allow you to specify `--remote-id` multiple times?","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"  def create"},{"line_number":18,"context_line":"    properties \u003d [resource[:name]]"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    self.class.request(\u0027identity provider\u0027, \u0027create\u0027, properties)"},{"line_number":21,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":22,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_64802c47","line":19,"in_reply_to":"3a50d1a3_d3c9c879","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":22,"context_line":"  end"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  def destroy"},{"line_number":25,"context_line":"  end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"  def exists?"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_7313140e","line":24,"updated":"2015-07-21 17:20:09.000000000","message":"should call self.class.request(\u0027identity provider\u0027, \u0027delete\u0027, id)","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    @property_hash[:ensure] \u003d :present"},{"line_number":22,"context_line":"  end"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  def destroy"},{"line_number":25,"context_line":"  end"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"  def exists?"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_e468bc89","line":24,"in_reply_to":"3a50d1a3_7313140e","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    @property_hash[:ensure] \u003d\u003d :present"},{"line_number":29,"context_line":"  end"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  mk_resource_methods"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  def description\u003d(value)"},{"line_number":34,"context_line":"    @property_flush[:description] \u003d value"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_73e1d4fd","line":31,"updated":"2015-07-21 17:20:09.000000000","message":"Does this create all of the destroy, exists?, description\u003d, enable\u003d, etc. methods?  If so, do you still need to have them here?","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    @property_hash[:ensure] \u003d\u003d :present"},{"line_number":29,"context_line":"  end"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  mk_resource_methods"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  def description\u003d(value)"},{"line_number":34,"context_line":"    @property_flush[:description] \u003d value"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_a4863463","line":31,"in_reply_to":"3a50d1a3_73e1d4fd","updated":"2015-07-21 18:01:34.000000000","message":"It uses to only set the getter, but reading the latest documentation it looks like it does the setter as well.  Thanks for the insight, I will update this part of the code tomorrow.","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    list \u003d request(\u0027identity provider\u0027, \u0027list\u0027)"},{"line_number":43,"context_line":"    list.collect do |identity_provider|"},{"line_number":44,"context_line":"      new("},{"line_number":45,"context_line":"        :name \u003d\u003e identity_provider[:id],"},{"line_number":46,"context_line":"        :description \u003d\u003e identity_provider[:description],"},{"line_number":47,"context_line":"        :ensure \u003d\u003e :present"},{"line_number":48,"context_line":"      )"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_73b8f4e5","line":45,"updated":"2015-07-21 17:20:09.000000000","message":":name is not the :id.  :name and :id should be separate parameters\n\nsupport the :remote_id parameter\n\nDoes it return each :remote_id as a different line in the list?  Does it return them as a comma delimited list?","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    list \u003d request(\u0027identity provider\u0027, \u0027list\u0027)"},{"line_number":43,"context_line":"    list.collect do |identity_provider|"},{"line_number":44,"context_line":"      new("},{"line_number":45,"context_line":"        :name \u003d\u003e identity_provider[:id],"},{"line_number":46,"context_line":"        :description \u003d\u003e identity_provider[:description],"},{"line_number":47,"context_line":"        :ensure \u003d\u003e :present"},{"line_number":48,"context_line":"      )"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_a4edd426","line":45,"in_reply_to":"3a50d1a3_73b8f4e5","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  def flush"},{"line_number":62,"context_line":"    if ! @property_flush.empty?"},{"line_number":63,"context_line":"      destroy"},{"line_number":64,"context_line":"      create"},{"line_number":65,"context_line":"      @property_flush.clear"},{"line_number":66,"context_line":"    end"},{"line_number":67,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_d3f3089d","line":64,"updated":"2015-07-21 17:20:09.000000000","message":"do not use destroy/create\n\nuse request(\u0027identity provider\u0027, \u0027set\u0027, [id] + options) unless options.empty?\n\nSee https://github.com/openstack/puppet-keystone/blob/master/lib/puppet/provider/keystone_user/openstack.rb#L52 et. al. for examples","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":61,"context_line":"  def flush"},{"line_number":62,"context_line":"    if ! @property_flush.empty?"},{"line_number":63,"context_line":"      destroy"},{"line_number":64,"context_line":"      create"},{"line_number":65,"context_line":"      @property_flush.clear"},{"line_number":66,"context_line":"    end"},{"line_number":67,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_c4e82013","line":64,"in_reply_to":"3a50d1a3_d3f3089d","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    properties \u003d []"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    #TODO: if remote-id exists in the db the entry creation fail with"},{"line_number":21,"context_line":"    #a duplicate error.  Should we try to catch that ?"},{"line_number":22,"context_line":"    #TODO: add remote_id_file"},{"line_number":23,"context_line":"    properties +\u003d self.class.remote_ids_cli(resource[:remote_ids]) if"},{"line_number":24,"context_line":"      resource[:remote_ids]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_1fdad178","line":21,"updated":"2015-07-21 18:29:13.000000000","message":"Yes, and then reformat and re-raise the exception, if we need to clarify to the user what they did wrong.","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"244afa20f39e1f8738e033a362c256022f117332","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    properties \u003d []"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    #TODO: if remote-id exists in the db the entry creation fail with"},{"line_number":21,"context_line":"    #a duplicate error.  Should we try to catch that ?"},{"line_number":22,"context_line":"    #TODO: add remote_id_file"},{"line_number":23,"context_line":"    properties +\u003d self.class.remote_ids_cli(resource[:remote_ids]) if"},{"line_number":24,"context_line":"      resource[:remote_ids]"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_163e108c","line":21,"in_reply_to":"3a50d1a3_1fdad178","updated":"2015-07-22 12:32:30.000000000","message":"Done in patchset 7.","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    #TODO: if remote-id exists in the db the entry creation fail with"},{"line_number":21,"context_line":"    #a duplicate error.  Should we try to catch that ?"},{"line_number":22,"context_line":"    #TODO: add remote_id_file"},{"line_number":23,"context_line":"    properties +\u003d self.class.remote_ids_cli(resource[:remote_ids]) if"},{"line_number":24,"context_line":"      resource[:remote_ids]"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_dfe30932","line":22,"updated":"2015-07-21 18:29:13.000000000","message":"Yes, sorry, forgot about that one","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  end"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  def destroy"},{"line_number":41,"context_line":"    self.class.request(\u0027identity provider\u0027, \u0027delete\u0027, @property_hash[:id])"},{"line_number":42,"context_line":"    @property_hash.clear"},{"line_number":43,"context_line":"  end"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_bfc95d7a","line":41,"updated":"2015-07-21 18:29:13.000000000","message":"You should be able to use the `id` method created by `mk_resource_methods`","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"fd32c9cfcc1169b94be175be32a7d6ac07839e84","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  end"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"  def destroy"},{"line_number":41,"context_line":"    self.class.request(\u0027identity provider\u0027, \u0027delete\u0027, @property_hash[:id])"},{"line_number":42,"context_line":"    @property_hash.clear"},{"line_number":43,"context_line":"  end"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_e19635ef","line":41,"in_reply_to":"3a50d1a3_bfc95d7a","updated":"2015-07-22 15:37:07.000000000","message":"Done in patchset 11","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  mk_resource_methods"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  def description\u003d(value)"},{"line_number":52,"context_line":"    # can only be set at creation time"},{"line_number":53,"context_line":"    destroy"},{"line_number":54,"context_line":"    # property_flush should be unset now and flush would have no"},{"line_number":55,"context_line":"    # effect."}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_7f13d5b8","line":52,"updated":"2015-07-21 18:29:13.000000000","message":"The description cannot be changed?  If so, then this should be implemented like the domain parameter in keystone_tenant.rb and keystone_tenant/openstack.rb - used by create, then read-only afterwards:\n\nhttps://github.com/openstack/puppet-keystone/blob/master/lib/puppet/type/keystone_tenant.rb#L38\n\nand\n\nhttps://github.com/openstack/puppet-keystone/blob/master/spec/unit/type/keystone_tenant_spec.rb\n\nAnd then there is no domain\u003d method in the provider.","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"59227cb89bfad383f4d6d9e7e1d34ef43064dcde","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  mk_resource_methods"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  def description\u003d(value)"},{"line_number":52,"context_line":"    # can only be set at creation time"},{"line_number":53,"context_line":"    destroy"},{"line_number":54,"context_line":"    # property_flush should be unset now and flush would have no"},{"line_number":55,"context_line":"    # effect."}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_e64bab85","line":52,"in_reply_to":"3a50d1a3_7f13d5b8","updated":"2015-07-22 15:11:19.000000000","message":"Done in patchset 9","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    self.class.request(\u0027identity provider\u0027,"},{"line_number":104,"context_line":"                       \u0027set\u0027,"},{"line_number":105,"context_line":"                       [@property_hash[:name]] + options) unless options.empty?"},{"line_number":106,"context_line":"    @property_flush.clear"},{"line_number":107,"context_line":"  end"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_7fd4351f","line":105,"updated":"2015-07-21 18:29:13.000000000","message":"`[id] + options) unless options.empty?`\n\nWhere `id` is the method created by `mk_resource_methods`","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"fd32c9cfcc1169b94be175be32a7d6ac07839e84","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    self.class.request(\u0027identity provider\u0027,"},{"line_number":104,"context_line":"                       \u0027set\u0027,"},{"line_number":105,"context_line":"                       [@property_hash[:name]] + options) unless options.empty?"},{"line_number":106,"context_line":"    @property_flush.clear"},{"line_number":107,"context_line":"  end"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_21a89d1f","line":105,"in_reply_to":"3a50d1a3_7fd4351f","updated":"2015-07-22 15:37:07.000000000","message":"Done in patchset 11","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    remote_ids_clean \u003d []"},{"line_number":111,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":112,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u|\u0027/, \u0027\u0027)"},{"line_number":113,"context_line":"        .split(\u0027,\u0027).map { |e| Integer(e) }"},{"line_number":114,"context_line":"    end"},{"line_number":115,"context_line":"    remote_ids_clean"},{"line_number":116,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_1f097131","line":113,"updated":"2015-07-21 18:29:13.000000000","message":"The remote ID can be a string like this: https://idphost.idpdomain.com/idp/saml2/metadata\n\nIt is not always an integer","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"aa7c989b9379553aaea5e3b548d0b1732411e767","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    remote_ids_clean \u003d []"},{"line_number":111,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":112,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u|\u0027/, \u0027\u0027)"},{"line_number":113,"context_line":"        .split(\u0027,\u0027).map { |e| Integer(e) }"},{"line_number":114,"context_line":"    end"},{"line_number":115,"context_line":"    remote_ids_clean"},{"line_number":116,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_99d49abd","line":113,"in_reply_to":"3a50d1a3_1f097131","updated":"2015-07-22 10:45:18.000000000","message":"Done","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"aa7c989b9379553aaea5e3b548d0b1732411e767","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    remote_ids_clean \u003d []"},{"line_number":111,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":112,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u|\u0027/, \u0027\u0027)"},{"line_number":113,"context_line":"        .split(\u0027,\u0027).map { |e| Integer(e) }"},{"line_number":114,"context_line":"    end"},{"line_number":115,"context_line":"    remote_ids_clean"},{"line_number":116,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_9ecd60b9","line":113,"in_reply_to":"3a50d1a3_1f097131","updated":"2015-07-22 10:45:18.000000000","message":"Done","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"7c2259155ac57b642f313057b914da56aa4ddd8d","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"  def create"},{"line_number":22,"context_line":"    properties \u003d []"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    #TODO: if remote-id exists in the db the entry creation fail with"},{"line_number":25,"context_line":"    #a duplicate error.  Should we try to catch that ?"},{"line_number":26,"context_line":"    #TODO: add remote_id_file"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3a50d1a3_8218901f","line":23,"updated":"2015-07-22 15:43:41.000000000","message":"Remove the first two lines.","commit_id":"bb6a32a25ddbf2418d0f0f77ee390f33efed879b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"dbb19b18c8f0ec90cdee65288bdb41ed115021ee","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":136,"context_line":"    remote_ids_clean \u003d []"},{"line_number":137,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":138,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u\u0027|\u0027/, \u0027\u0027).split(\u0027, \u0027)"},{"line_number":139,"context_line":"    end"},{"line_number":140,"context_line":"    remote_ids_clean"},{"line_number":141,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_4f3ea8b9","line":138,"updated":"2015-07-24 19:36:36.000000000","message":"What is this format?  Is it JSON?  If so, perhaps we should use a JSON parser instead of the gsub()","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"9e9f0412a2ce07b73712a63ce12af24980a19db9","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":136,"context_line":"    remote_ids_clean \u003d []"},{"line_number":137,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":138,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u\u0027|\u0027/, \u0027\u0027).split(\u0027, \u0027)"},{"line_number":139,"context_line":"    end"},{"line_number":140,"context_line":"    remote_ids_clean"},{"line_number":141,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_50a495a4","line":138,"in_reply_to":"3a50d1a3_2df74b8c","updated":"2015-07-28 14:32:20.000000000","message":"Hmm - this seems like a bug in openstackclient - it should not be printing a python representation when it is supposed to be printing a portable output format e.g. csv or json.","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"04529381d8bb1b3de5374663a5d347aee506a1ef","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":136,"context_line":"    remote_ids_clean \u003d []"},{"line_number":137,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":138,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u\u0027|\u0027/, \u0027\u0027).split(\u0027, \u0027)"},{"line_number":139,"context_line":"    end"},{"line_number":140,"context_line":"    remote_ids_clean"},{"line_number":141,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_2df74b8c","line":138,"in_reply_to":"3a50d1a3_4f3ea8b9","updated":"2015-07-28 07:38:24.000000000","message":"It\u0027s not.  It a python representation of an array of unicode string, something like this:\n\n[u\u00271\u0027, u\u0027foo\u0027, u\u0027\u0027http://bar\u0027].  I can make the parsing a little more robust with a better regex.","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"edc62412780cc2548df05025f706d22af4c1058b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":136,"context_line":"    remote_ids_clean \u003d []"},{"line_number":137,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"},{"line_number":138,"context_line":"      remote_ids_clean \u003d remote_ids.gsub(/(?:\\]|\\[)|u\u0027|\u0027/, \u0027\u0027).split(\u0027, \u0027)"},{"line_number":139,"context_line":"    end"},{"line_number":140,"context_line":"    remote_ids_clean"},{"line_number":141,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_0be49bdd","line":138,"in_reply_to":"3a50d1a3_50a495a4","updated":"2015-07-28 17:22:22.000000000","message":"In patch#18,  I improved the regex to better support the current format.  I improved the error handling so non working values won\u0027t silently slip in.  When the bug is fixed, the function will have to be updated.","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"c458bdd744c00d940500dfc7533686541493b769","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":49,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":50,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":51,"context_line":"              \u0027registred by another identity provider.\u0027)"},{"line_number":52,"context_line":"    else"},{"line_number":53,"context_line":"      raise e"},{"line_number":54,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"1a4dcd0f_7d3a6acf","line":51,"updated":"2015-08-03 20:02:51.000000000","message":"Done in patchset 27.","commit_id":"7f8464e9f79068f00e1849ba1338f00ec353ef84"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78d160463747a180b427fb1c0f359a772d044e76","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":49,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":50,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":51,"context_line":"              \u0027registred by another identity provider.\u0027)"},{"line_number":52,"context_line":"    else"},{"line_number":53,"context_line":"      raise e"},{"line_number":54,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"3a50d1a3_82df7739","line":51,"updated":"2015-07-31 20:17:34.000000000","message":"registered","commit_id":"7f8464e9f79068f00e1849ba1338f00ec353ef84"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"9fc24541d2b5956c7ea2165c117d95df3cc4ba2e","unresolved":false,"context_lines":[{"line_number":9,"context_line":") do"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  desc \u0027Provider to manage keystone identity provider.\u0027"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  @credentials \u003d Puppet::Provider::Openstack::CredentialsV3.new"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"  def initialize(value \u003d {})"}],"source_content_type":"text/x-ruby","patch_set":27,"id":"1a4dcd0f_d6ad9832","line":12,"updated":"2015-08-03 20:25:44.000000000","message":"This is initialized whenever this is loaded.","commit_id":"d0725c3ac9255b34289620c2fe7a44471132a89f"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"},{"line_number":49,"context_line":"      raise e"},{"line_number":50,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_0ea8381f","line":47,"updated":"2015-09-17 06:08:17.000000000","message":"I don\u0027t think there is a need for indentation on the second line of text.\n\n\u0027One of the remote-id of this resource is already \u0027 \\  \n\u0027registered by another identity provider.\u0027)\n\nhttps://github.com/bbatsov/ruby-style-guide#no-trailing-backslash","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"},{"line_number":49,"context_line":"      raise e"},{"line_number":50,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_aa3c8dc8","line":47,"updated":"2015-09-17 10:06:45.000000000","message":"Well, I see the thing.  But I have emacs with rubocop activated and it seems ok with the indent (which has been chosen by emacs and validated by rubocop).  If you don\u0027t mind I won\u0027t change it.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    end"},{"line_number":88,"context_line":"  end"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  # Don\u0027t rely on the made function as it has a bug which is corrected"},{"line_number":91,"context_line":"  # only since puppet 3.5.  The core of the problem is that false is"},{"line_number":92,"context_line":"  # wrongly converted to absent.  The detail here"},{"line_number":93,"context_line":"  # https://tickets.puppetlabs.com/browse/PUP-1470 and there"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ca39c1d8","line":90,"updated":"2015-09-17 10:06:45.000000000","message":"Good idea.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    end"},{"line_number":88,"context_line":"  end"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  # Don\u0027t rely on the made function as it has a bug which is corrected"},{"line_number":91,"context_line":"  # only since puppet 3.5.  The core of the problem is that false is"},{"line_number":92,"context_line":"  # wrongly converted to absent.  The detail here"},{"line_number":93,"context_line":"  # https://tickets.puppetlabs.com/browse/PUP-1470 and there"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_818099c0","line":90,"updated":"2015-09-17 06:08:17.000000000","message":"Maybe make the comment more succinct?\nSee below.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    remote_ids"},{"line_number":123,"context_line":"  end"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"  # The case where the regex fails would be when single quote and"},{"line_number":126,"context_line":"  # double quote would be mixed inside the same remote id.  This makes"},{"line_number":127,"context_line":"  # for very intersting regex parse/replace problem.  When dquote are"},{"line_number":128,"context_line":"  # removed this make the case disapear.  This safeguard is"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_6a32f5f3","line":125,"updated":"2015-09-17 10:06:45.000000000","message":"I can understand, but you\u0027re right.  The comment is bad :)  Anyway explaining regex is bad.  Just let people wonder why it\u0027s working.  You know regex or not :)  Self-explaining really.  I will keep you comment.  Thanks.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    remote_ids"},{"line_number":123,"context_line":"  end"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"  # The case where the regex fails would be when single quote and"},{"line_number":126,"context_line":"  # double quote would be mixed inside the same remote id.  This makes"},{"line_number":127,"context_line":"  # for very intersting regex parse/replace problem.  When dquote are"},{"line_number":128,"context_line":"  # removed this make the case disapear.  This safeguard is"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_81adf985","line":125,"updated":"2015-09-17 06:08:17.000000000","message":"I\u0027m not saying not to comments but I reckon that when I have to do comments then most of the time it means there is something more to do in the code.\nIf not let\u0027s try to keep the comment short or maybe use external links.\n\nAlso, sorry If I sound rude but I actually don\u0027t understand the comment, maybe I\u0027d have to get involve into the identity provider.\n\nhttps://github.com/bbatsov/ruby-style-guide#comments","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  # removed this make the case disapear.  This safeguard is"},{"line_number":129,"context_line":"  # implemented in the type."},{"line_number":130,"context_line":"  #"},{"line_number":131,"context_line":"  # When"},{"line_number":132,"context_line":"  # https://bugs.launchpad.net/python-openstackclient/+bug/1478995"},{"line_number":133,"context_line":"  # is solved, the parsing will be delegated to the openstack"},{"line_number":134,"context_line":"  # client only."}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_414121a8","line":131,"updated":"2015-09-17 06:08:17.000000000","message":"My suggestion for shorter text (but it\u0027s up to you :):\n\n# bug/1478995 - When fixed he parsing to be replaced by OSC","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":43,"context_line":"    if e.message \u003d~"},{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_ec2cbe9a","line":45,"updated":"2015-11-12 03:38:11.000000000","message":"Why not let the exception run its course instead of trapping the exception to re-raise it anyway?","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    remote_ids"},{"line_number":119,"context_line":"  end"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  # bug/python-openstackclient/1478995: when fixed, parsing will be done by OSC."},{"line_number":122,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":123,"context_line":"    remote_ids_clean \u003d []"},{"line_number":124,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_ccec5a2c","line":121,"updated":"2015-11-12 03:38:11.000000000","message":"Seems like the bug fix to be merged soon :)","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b52dfc6ac0ab88db119170e470a290062b146107","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":43,"context_line":"    if e.message \u003d~"},{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_adbc0f6d","line":45,"updated":"2015-11-17 04:44:55.000000000","message":"Same question as for patch set 42:\nWhy not let the exception run its course instead of trapping the exception to re-raise it anyway?","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b89685a6840953bd440ee86e27dadb50dad89b87","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":43,"context_line":"    if e.message \u003d~"},{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_ff6efd2d","line":45,"in_reply_to":"ba8a016a_0f916f99","updated":"2015-11-18 03:27:11.000000000","message":"Ok but in that case why not providing as much information to the user as possible, including passing along the original message?\n\n\"Failed to create identity provider: Remote-id already used: #{e.message}\"","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"5e369deee60a545d80492f15b025fcf21d4ce62e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":43,"context_line":"    if e.message \u003d~"},{"line_number":44,"context_line":"        /openstack Conflict occurred attempting to store identity_provider/"},{"line_number":45,"context_line":"      raise(Puppet::Error::OpenstackDuplicateRemoteId,"},{"line_number":46,"context_line":"            \u0027One of the remote-id of this resource is already \u0027 \\"},{"line_number":47,"context_line":"              \u0027registered by another identity provider.\u0027)"},{"line_number":48,"context_line":"    else"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_0f916f99","line":45,"in_reply_to":"ba8a016a_adbc0f6d","updated":"2015-11-17 16:59:05.000000000","message":"Because, the message is less confusing for the user, more helpful.  The openstack cli error doesn\u0027t pinpoint the source of the problem explicitely.","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b52dfc6ac0ab88db119170e470a290062b146107","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    remote_ids"},{"line_number":119,"context_line":"  end"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  # bug/python-openstackclient/1478995: when fixed, parsing will be done by OSC."},{"line_number":122,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":123,"context_line":"    remote_ids_clean \u003d []"},{"line_number":124,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_2db1ff8f","line":121,"updated":"2015-11-17 04:44:55.000000000","message":"This not needed anymore, the bug/1478995 has been fixed :)","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"5e369deee60a545d80492f15b025fcf21d4ce62e","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    remote_ids"},{"line_number":119,"context_line":"  end"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  # bug/python-openstackclient/1478995: when fixed, parsing will be done by OSC."},{"line_number":122,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":123,"context_line":"    remote_ids_clean \u003d []"},{"line_number":124,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_74fece39","line":121,"in_reply_to":"ba8a016a_2db1ff8f","updated":"2015-11-17 16:59:05.000000000","message":"Yes, but how long before this code goes into the packages used by the ci ?  If I change this now, the ci will break.  For ubuntu for instance the patch is not included.","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b89685a6840953bd440ee86e27dadb50dad89b87","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    remote_ids"},{"line_number":119,"context_line":"  end"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  # bug/python-openstackclient/1478995: when fixed, parsing will be done by OSC."},{"line_number":122,"context_line":"  def self.clean_remote_ids(remote_ids)"},{"line_number":123,"context_line":"    remote_ids_clean \u003d []"},{"line_number":124,"context_line":"    if remote_ids !\u003d \u0027[]\u0027"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_ff559d4f","line":121,"in_reply_to":"ba8a016a_74fece39","updated":"2015-11-18 03:27:11.000000000","message":"I understand, openstack puppet modules are still on Liberty while the rest is already on Mikata. That\u0027s annoying.","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"}],"lib/puppet/type/keystone_identity_provider.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"9b195060d762042f3f201bdc559be4e8ce5184d4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"  newproperty(:description) do"},{"line_number":32,"context_line":"    newvalues(nil, /\\S+/)"},{"line_number":33,"context_line":"  end"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  # we should not do anything until the keystone service is started"},{"line_number":36,"context_line":"  autorequire(:anchor) do"},{"line_number":37,"context_line":"    [\u0027keystone_started\u0027]"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9a41bdd9_b507611c","line":34,"updated":"2015-07-18 07:27:31.000000000","message":"Will add the remote_id as soon as I settle the problem with moch and expect.","commit_id":"db544ab64b7d0dc06e761ccba8518a3c2b8b017b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    validate do"},{"line_number":27,"context_line":"      raise(Puppet::Error, \u0027This is a read only property\u0027)"},{"line_number":28,"context_line":"    end"},{"line_number":29,"context_line":"  end"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  newproperty(:description) do"},{"line_number":32,"context_line":"    newvalues(nil, /\\S+/)"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_33d82cef","line":29,"updated":"2015-07-21 17:20:09.000000000","message":"Need a :remote_ids parameter - should be an array","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    validate do"},{"line_number":27,"context_line":"      raise(Puppet::Error, \u0027This is a read only property\u0027)"},{"line_number":28,"context_line":"    end"},{"line_number":29,"context_line":"  end"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  newproperty(:description) do"},{"line_number":32,"context_line":"    newvalues(nil, /\\S+/)"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_e4e3dc31","line":29,"in_reply_to":"3a50d1a3_33d82cef","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    defaultto([])"},{"line_number":39,"context_line":"    munge do |value|"},{"line_number":40,"context_line":"      # serves as validation as well"},{"line_number":41,"context_line":"      Integer(value)"},{"line_number":42,"context_line":"    end"},{"line_number":43,"context_line":"  end"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_5124cdad","line":41,"updated":"2015-07-21 18:29:13.000000000","message":"The remote id is not always an integer.  It can be a string like this:  https://idphost.idpdomain.com/idp/saml2/metadata","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"aa7c989b9379553aaea5e3b548d0b1732411e767","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    defaultto([])"},{"line_number":39,"context_line":"    munge do |value|"},{"line_number":40,"context_line":"      # serves as validation as well"},{"line_number":41,"context_line":"      Integer(value)"},{"line_number":42,"context_line":"    end"},{"line_number":43,"context_line":"  end"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_3ee0cc28","line":41,"in_reply_to":"3a50d1a3_5124cdad","updated":"2015-07-22 10:45:18.000000000","message":"Done","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"7c2259155ac57b642f313057b914da56aa4ddd8d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    defaultto([])"},{"line_number":49,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":50,"context_line":"    munge(\u0026:to_s)"},{"line_number":51,"context_line":"  end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  newproperty(:id) do"},{"line_number":54,"context_line":"    validate do"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3a50d1a3_c2d0d821","line":51,"updated":"2015-07-22 15:43:41.000000000","message":"Add the remote_id_file option","commit_id":"bb6a32a25ddbf2418d0f0f77ee390f33efed879b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"267cfffcef30ed2b30f9e0851778a4c31f3d3f05","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            \u0027Cannot have both remote_ids and remote_id_file\u0027) unless"},{"line_number":57,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":58,"context_line":"    end"},{"line_number":59,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":60,"context_line":"  end"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  newproperty(:id) do"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"3a50d1a3_dd21599f","line":59,"updated":"2015-07-23 15:05:32.000000000","message":"Should this validate that remote_id_file is an absolute pathname?  I\u0027m not sure what the requirements are, or why the autorequire(:file) checks for absolute path.","commit_id":"2f7129b511088b8e95684f30c0aa17a0626915f0"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"b17b1f9cfcfd04bdf906421c89db1e1948229176","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            \u0027Cannot have both remote_ids and remote_id_file\u0027) unless"},{"line_number":57,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":58,"context_line":"    end"},{"line_number":59,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":60,"context_line":"  end"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  newproperty(:id) do"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"3a50d1a3_c1d2cfd0","line":59,"in_reply_to":"3a50d1a3_6e3dedc2","updated":"2015-07-23 17:05:16.000000000","message":"Yes, thanks.","commit_id":"2f7129b511088b8e95684f30c0aa17a0626915f0"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"d3519c417e8eaaff88c8e6692e3b5267306261de","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            \u0027Cannot have both remote_ids and remote_id_file\u0027) unless"},{"line_number":57,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":58,"context_line":"    end"},{"line_number":59,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":60,"context_line":"  end"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  newproperty(:id) do"}],"source_content_type":"text/x-ruby","patch_set":13,"id":"3a50d1a3_6e3dedc2","line":59,"in_reply_to":"3a50d1a3_dd21599f","updated":"2015-07-23 15:51:57.000000000","message":"absolute path should be require to avoid any ambiguity.  I\u0027m going to add it to the validate portion of the remote_id_file property.  The autorequire is just then checking for the same thing.\n\nDoes it make sense ?","commit_id":"2f7129b511088b8e95684f30c0aa17a0626915f0"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"94bbe820c4b17bbc988a2c30a799b0916a806771","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":50,"context_line":"    munge(\u0026:to_s)"},{"line_number":51,"context_line":"  end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  newproperty(:remote_id_file) do"},{"line_number":54,"context_line":"    validate do |v|"},{"line_number":55,"context_line":"      raise(Puppet::ResourceError,"}],"source_content_type":"text/x-ruby","patch_set":16,"id":"3a50d1a3_1f71cae0","line":52,"updated":"2015-07-24 10:55:35.000000000","message":"How to detect that this one is in sync?   \n\nI should read the remote-id in the file (the format is pretty simple, one id by line) and then make the associated \"def remote-id-file\" function to return the same thing as remote-ids.","commit_id":"3f378a0d4910c997df35f1b9184c7ad9822fb493"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"919fde0b40d067ba6e9fb5ee25afe9b678511150","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    newvalues(/^\\S+$/)"},{"line_number":50,"context_line":"    munge(\u0026:to_s)"},{"line_number":51,"context_line":"  end"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  newproperty(:remote_id_file) do"},{"line_number":54,"context_line":"    validate do |v|"},{"line_number":55,"context_line":"      raise(Puppet::ResourceError,"}],"source_content_type":"text/x-ruby","patch_set":16,"id":"3a50d1a3_a7e68542","line":52,"in_reply_to":"3a50d1a3_1f71cae0","updated":"2015-07-24 13:54:52.000000000","message":"Yes, you\u0027ll have to do something like that for insync?","commit_id":"3f378a0d4910c997df35f1b9184c7ad9822fb493"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"6753cd0df90b857d848d4b5301f76fed3cc9750b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  end"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  #TODO: this require python-openstackclient \u003e\u003d 1.1.0"},{"line_number":40,"context_line":"  # apt-get install -y python-pip python-dev libssl-dev libffi-dev"},{"line_number":41,"context_line":"  # pip install --upgrade \u0027python-openstackclient\u003d\u003d1.1.0\u0027"},{"line_number":42,"context_line":"  # mv /usr/lib/python2.7/dist-packages/openstackclient/ /tmp"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":21,"id":"3a50d1a3_f821f89e","line":40,"updated":"2015-07-28 19:58:44.000000000","message":"this is not an acceptable TODO, because we rely on UCA \u0026 RDO now.\nOur code needs to work with these packages.\n\nThough you can consider what they put in Liberty. But this patch won\u0027t be merged until we can actually test it (once we install Liberty on our Beaker jobs).","commit_id":"db2308c8a8fefbcb8b98755b99c325d2afff0cba"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def insync?(is)"},{"line_number":32,"context_line":"      raise(Puppet::Error,"},{"line_number":33,"context_line":"            \u0027The description cannot be changed \u0027 \\"},{"line_number":34,"context_line":"              \"from #{should} to #{is}\") unless should \u003d\u003d is"},{"line_number":35,"context_line":"      true"},{"line_number":36,"context_line":"    end"},{"line_number":37,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_e1539515","line":34,"updated":"2015-09-17 06:08:17.000000000","message":"I don\u0027t think there is a need for indentation on the second line of text.\nAlso because this is expanding over several lines I would enclose it in a block:\n\nunless should \u003d\u003d is\n  raise(Puppet::Error,\n        \u0027The description cannot be changed \u0027 \\\n        \"from #{should} to #{is}\")\nend\n\nhttps://github.com/bbatsov/ruby-style-guide#no-trailing-backslash\n\nhttps://github.com/bbatsov/ruby-style-guide#no-multiline-if-modifiers","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def insync?(is)"},{"line_number":32,"context_line":"      raise(Puppet::Error,"},{"line_number":33,"context_line":"            \u0027The description cannot be changed \u0027 \\"},{"line_number":34,"context_line":"              \"from #{should} to #{is}\") unless should \u003d\u003d is"},{"line_number":35,"context_line":"      true"},{"line_number":36,"context_line":"    end"},{"line_number":37,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_8a2f4987","line":34,"updated":"2015-09-17 10:06:45.000000000","message":"Once again, this indent is what suit emacs and pass rubocop check.  So I let this way.  The code is one line, but splitted to fit the 80 characters limit.  That\u0027s not a block as in the bad rubocop example.  No warning from rubocop, so I will let it the way it is.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"  newproperty(:remote_ids, :array_matching \u003d\u003e :all) do"},{"line_number":40,"context_line":"    def insync?(is)"},{"line_number":41,"context_line":"      # if the remode_id_file property is used, then the remote_ids"},{"line_number":42,"context_line":"      # property cannot be set.  It will always return empty.  But the"},{"line_number":43,"context_line":"      # already existing resource can have remote-id set from the"},{"line_number":44,"context_line":"      # file.  Here, we ensure that this case is taken into account."}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_2eb97c15","line":41,"updated":"2015-09-17 06:08:17.000000000","message":"I believe, the less comments the better, as code evolves comments don\u0027t.\n\nhttps://github.com/bbatsov/ruby-style-guide#comments","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    defaultto([])"},{"line_number":50,"context_line":"    validate do |v|"},{"line_number":51,"context_line":"      # I exclude the case where double quote were inside the url as"},{"line_number":52,"context_line":"      # it seems to be excluded from the rfc"},{"line_number":53,"context_line":"      # http://tools.ietf.org/html/rfc3986#section-2."},{"line_number":54,"context_line":"      if idx \u003d v.to_s.index(\u0027\"\u0027)"},{"line_number":55,"context_line":"        raise(Puppet::ResourceError,"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ae434c12","line":52,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    end"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def insync?(is)"},{"line_number":79,"context_line":"      # \"is\" returns what remote_id_file returns which is an Array of"},{"line_number":80,"context_line":"      # remote ids, while \"should\" returns the value passed by the"},{"line_number":81,"context_line":"      # user, which is the file.  The file is parsed and compared to"},{"line_number":82,"context_line":"      # what the ids are."}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_6e4a1428","line":79,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    end"},{"line_number":92,"context_line":"  end"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  # if one declare the remote_id_file as a resource, this will create"},{"line_number":95,"context_line":"  # a soft dependancy with it."},{"line_number":96,"context_line":"  autorequire(:file) do"},{"line_number":97,"context_line":"    self[:remote_id_file] if"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_2e509cd3","line":94,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    self[:remote_id_file] if"},{"line_number":98,"context_line":"      self[:remote_id_file] \u0026\u0026 Pathname.new(self[:remote_id_file]).absolute?"},{"line_number":99,"context_line":"  end"},{"line_number":100,"context_line":"  # we should not do anything until the keystone service is started"},{"line_number":101,"context_line":"  autorequire(:anchor) do"},{"line_number":102,"context_line":"    [\u0027keystone_started\u0027]"},{"line_number":103,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_4e74f066","line":100,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above. I know this one is sort of legacy :), nevertheless.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def insync?(is)"},{"line_number":32,"context_line":"      raise(Puppet::Error,"},{"line_number":33,"context_line":"            \u0027The description cannot be changed \u0027 \\"},{"line_number":34,"context_line":"              \"from #{should} to #{is}\") unless should \u003d\u003d is"},{"line_number":35,"context_line":"      true"},{"line_number":36,"context_line":"    end"},{"line_number":37,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_2c6726b8","line":34,"updated":"2015-11-12 03:38:11.000000000","message":"Please wrap in a block when multilines","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def insync?(is)"},{"line_number":32,"context_line":"      raise(Puppet::Error,"},{"line_number":33,"context_line":"            \u0027The description cannot be changed \u0027 \\"},{"line_number":34,"context_line":"              \"from #{should} to #{is}\") unless should \u003d\u003d is"},{"line_number":35,"context_line":"      true"},{"line_number":36,"context_line":"    end"},{"line_number":37,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_a872e17a","line":34,"in_reply_to":"da85f559_2c6726b8","updated":"2015-11-16 15:34:01.000000000","message":"Done","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  newproperty(:remote_id_file) do"},{"line_number":64,"context_line":"    validate do |v|"},{"line_number":65,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":66,"context_line":"            \u0027Cannot have both remote_ids and remote_id_file\u0027) unless"},{"line_number":67,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":68,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":69,"context_line":"            \"You must specify an absolute path name not \u0027#{v}\u0027.\") unless"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_ac5a36f0","line":66,"updated":"2015-11-12 03:38:11.000000000","message":"Please wrap in a block when multilines","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  newproperty(:remote_id_file) do"},{"line_number":64,"context_line":"    validate do |v|"},{"line_number":65,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":66,"context_line":"            \u0027Cannot have both remote_ids and remote_id_file\u0027) unless"},{"line_number":67,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":68,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":69,"context_line":"            \"You must specify an absolute path name not \u0027#{v}\u0027.\") unless"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_88eefdea","line":66,"in_reply_to":"da85f559_ac5a36f0","updated":"2015-11-16 15:34:01.000000000","message":"Done","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":68,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":69,"context_line":"            \"You must specify an absolute path name not \u0027#{v}\u0027.\") unless"},{"line_number":70,"context_line":"        Pathname.new(v).absolute?"},{"line_number":71,"context_line":"    end"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def insync?(is)"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_6c71ae75","line":70,"updated":"2015-11-12 03:38:11.000000000","message":"Please wrap in a block when multilines","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        resource.parameters[:remote_ids].nil?"},{"line_number":68,"context_line":"      raise(Puppet::ResourceError,"},{"line_number":69,"context_line":"            \"You must specify an absolute path name not \u0027#{v}\u0027.\") unless"},{"line_number":70,"context_line":"        Pathname.new(v).absolute?"},{"line_number":71,"context_line":"    end"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def insync?(is)"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_48bfb5d0","line":70,"in_reply_to":"da85f559_6c71ae75","updated":"2015-11-16 15:34:01.000000000","message":"Done","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  autorequire(:file) do"},{"line_number":86,"context_line":"    self[:remote_id_file] if"},{"line_number":87,"context_line":"      self[:remote_id_file] \u0026\u0026 Pathname.new(self[:remote_id_file]).absolute?"},{"line_number":88,"context_line":"  end"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  autorequire(:anchor) do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_2c5086d3","line":87,"updated":"2015-11-12 03:38:11.000000000","message":"Please wrap in a block when multilines","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  autorequire(:file) do"},{"line_number":86,"context_line":"    self[:remote_id_file] if"},{"line_number":87,"context_line":"      self[:remote_id_file] \u0026\u0026 Pathname.new(self[:remote_id_file]).absolute?"},{"line_number":88,"context_line":"  end"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"  autorequire(:anchor) do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_68c87975","line":87,"in_reply_to":"da85f559_2c5086d3","updated":"2015-11-16 15:34:01.000000000","message":"Done","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"}],"spec/acceptance/basic_keystone_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"2722a6e66f68ba2145655648ddf1ff875680dc1d","unresolved":false,"context_lines":[{"line_number":312,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":313,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":314,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":315,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":318,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"1a4dcd0f_671c1dc2","line":315,"updated":"2015-08-07 21:13:13.000000000","message":"This doesn\u0027t look like valid ruby code?","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"7861a766cfd2bf89a2c997710fc6b326060f9f1f","unresolved":false,"context_lines":[{"line_number":312,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":313,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":314,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":315,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":318,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"fa1b9901_5777069f","line":315,"in_reply_to":"1a4dcd0f_671c1dc2","updated":"2015-08-24 14:13:39.000000000","message":"Yes, but it\u0027s exactly the output that puppet returns.  Maybe a bug due to a wrong escaping of the single quote on the puppet side ?  I should send a bug to puppet about this I guess.","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"a89c02eb7f17be37b8f781e3f171db8ebb12d5a0","unresolved":false,"context_lines":[{"line_number":312,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":313,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":314,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":315,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":318,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"fa1b9901_9f67f4b6","line":315,"in_reply_to":"fa1b9901_2971d6a8","updated":"2015-08-24 15:02:24.000000000","message":"Ok, I see.  This code isn\u0027t parsed by ruby.  And yes, the output is wrong as output by puppet.","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0deb5702c4c501584d38292a23b05413b47b24d0","unresolved":false,"context_lines":[{"line_number":312,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":313,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":314,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":315,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":318,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"fa1b9901_77e7aa40","line":315,"in_reply_to":"fa1b9901_5777069f","updated":"2015-08-24 14:15:14.000000000","message":"should this be::\n\n    [\u0027http://remote_id_for_bar_1?id\u003d\\\u0027bar\\\u0027\u0027, \u0027remote_id_for_bar_2\u0027]\n\ninstead?","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0cd9cc1985841677ffb5907cb181fc8203ae6d30","unresolved":false,"context_lines":[{"line_number":312,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":313,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":314,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":315,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":318,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"fa1b9901_2971d6a8","line":315,"in_reply_to":"fa1b9901_77e7aa40","updated":"2015-08-24 14:34:36.000000000","message":"This would make correct puppet code according to this https://docs.puppetlabs.com/puppet/latest/reference/lang_data_string.html#single-quoted-strings\n\nAs the output of this command should be valid puppet code, It\u0027s a yes.  I don\u0027t think I should mess with the values of the self.instances class method to make this appears correct. Puppet itself should deal correctly with quoting the single quotes in the value.\n\nWDYT ?","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027spec_helper_acceptance\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"describe \u0027basic keystone server with resources\u0027 do"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"  context \u0027default parameters\u0027 do"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    it \u0027should work with no errors\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_c994efe9","side":"PARENT","line":4,"updated":"2015-09-02 10:19:25.000000000","message":"This change is out of context.","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027spec_helper_acceptance\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"describe \u0027basic keystone server with resources\u0027 do"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"  context \u0027default parameters\u0027 do"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    it \u0027should work with no errors\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_6040f134","side":"PARENT","line":4,"in_reply_to":"da20952f_c994efe9","updated":"2015-09-04 09:45:29.000000000","message":"I don\u0027t like space :)  Done.","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    end"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    let(:admin_credential) do"},{"line_number":151,"context_line":"      \u0027--os-username adminv3 --os-password a_big_secret \u0027 \\"},{"line_number":152,"context_line":"        \u0027--os-project-name openstackv3 \u0027 \\"},{"line_number":153,"context_line":"        \u0027--os-user-domain-name admin_domain \u0027 \\"},{"line_number":154,"context_line":"        \u0027--os-project-domain-name admin_domain\u0027"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_c1d1b158","line":151,"updated":"2015-09-17 06:08:17.000000000","message":"I think no extra indentation on the following lines after \\ makes it better to read, as show in the example:\n\nhttps://github.com/bbatsov/ruby-style-guide#no-trailing-backslash","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    end"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    let(:admin_credential) do"},{"line_number":151,"context_line":"      \u0027--os-username adminv3 --os-password a_big_secret \u0027 \\"},{"line_number":152,"context_line":"        \u0027--os-project-name openstackv3 \u0027 \\"},{"line_number":153,"context_line":"        \u0027--os-user-domain-name admin_domain \u0027 \\"},{"line_number":154,"context_line":"        \u0027--os-project-domain-name admin_domain\u0027"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_2a4f1d6c","line":151,"updated":"2015-09-17 10:06:45.000000000","message":"Once again, rubocop, emacs and me tend to disagree.  It shows clearly that we are continuing the previous line, not adding a parameter.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    end"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    let(:v3_url) do"},{"line_number":158,"context_line":"      \u0027--os-auth-url http://127.0.0.1:5000/v3 \u0027 \\"},{"line_number":159,"context_line":"        \u0027--os-identity-api-version 3\u0027"},{"line_number":160,"context_line":"    end"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_01bc8904","line":158,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    end"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    let(:v3_url) do"},{"line_number":158,"context_line":"      \u0027--os-auth-url http://127.0.0.1:5000/v3 \u0027 \\"},{"line_number":159,"context_line":"        \u0027--os-identity-api-version 3\u0027"},{"line_number":160,"context_line":"    end"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_4a54d1fd","line":158,"updated":"2015-09-17 10:06:45.000000000","message":"Same as above.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":249,"context_line":"    end"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    describe \u0027#keystone_identity_provider\u0027 do"},{"line_number":252,"context_line":"      let(:manifest_identity_provider) { \u003c\u003c-EOM"},{"line_number":253,"context_line":"            # Begin Keystone_identity_provider acceptance test resources"},{"line_number":254,"context_line":"      keystone_identity_provider { \u0027foo\u0027:"},{"line_number":255,"context_line":"        remote_ids \u003d\u003e [\"http://remote_id_for_foo_1\", \"remote_id_for_foo_2\"],"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ea54c5fe","line":252,"updated":"2015-09-17 10:06:45.000000000","message":"It makes it more robust.  If someone move the closing marker, the code will still work.\n\nPlus I fixed this https://github.com/bbatsov/ruby-style-guide#single-line-blocks","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":249,"context_line":"    end"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"    describe \u0027#keystone_identity_provider\u0027 do"},{"line_number":252,"context_line":"      let(:manifest_identity_provider) { \u003c\u003c-EOM"},{"line_number":253,"context_line":"            # Begin Keystone_identity_provider acceptance test resources"},{"line_number":254,"context_line":"      keystone_identity_provider { \u0027foo\u0027:"},{"line_number":255,"context_line":"        remote_ids \u003d\u003e [\"http://remote_id_for_foo_1\", \"remote_id_for_foo_2\"],"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_0eefd8e9","line":252,"updated":"2015-09-17 06:08:17.000000000","message":"Why not just using \u003c\u003cEOM since there is no indentation?","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":282,"context_line":"      context \u0027check the resource creation\u0027 do"},{"line_number":283,"context_line":"        it \u0027successfully get the list\u0027 do"},{"line_number":284,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider list --format csv\") do |r|"},{"line_number":285,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":286,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":287,"context_line":"\"bar\",False,\"Bar is done from a file\""},{"line_number":288,"context_line":"\"foo\",True,\"Foo is done without file\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_0a5a592a","line":285,"updated":"2015-09-17 10:06:45.000000000","message":"Ack.\n\nIn my head it goes like this : EOM: End of Manifest; EOE: End of Example; EOO: End of Output.  But maybe being consistant would be better.  But then we should stick to only one through the whole file, and we have EOS (End of Script I suppose) also. I don\u0027t see which kind of error it could lead to and a very simple regex can find them all quickly.  What do you think ?\n\nAs for [1], it\u0027s nice and all, but then it forbid simple copy/paste.  You always have to remove the leading character.  I like to copy/paste stuff and they just work.  I would be against.\n\nFor the last comment, check my previous comment.  I will adjust all the other to this idiom.","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":282,"context_line":"      context \u0027check the resource creation\u0027 do"},{"line_number":283,"context_line":"        it \u0027successfully get the list\u0027 do"},{"line_number":284,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider list --format csv\") do |r|"},{"line_number":285,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":286,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":287,"context_line":"\"bar\",False,\"Bar is done from a file\""},{"line_number":288,"context_line":"\"foo\",True,\"Foo is done without file\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_6ef8d4c3","line":285,"updated":"2015-09-17 06:08:17.000000000","message":"Same as above.\nAlso why not using the same End of Text (EOT) or End of File (EOF), everywhere? It\u0027s a details but that\u0027s consistent and to avoid mistakes in the future.\n\nAlso, I think this [1] is a very good idea, although I never used it, what do you think?\n\nNot only it would be more readable, it might bring more robustness because it\u0027s dangerous to manipulate indentation on those rspec files, if those heredocs sections get a space or more to the right it would break the file.\n\n[1] https://github.com/bbatsov/ruby-style-guide#heredocs","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        it \u0027successfully get the foo resource\u0027 do"},{"line_number":296,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell foo\") do |r|"},{"line_number":297,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":298,"context_line":"description\u003d\"Foo is done without file\""},{"line_number":299,"context_line":"enabled\u003d\"True\""},{"line_number":300,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_0e0118af","line":297,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        it \u0027successfully get the foo resource\u0027 do"},{"line_number":296,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell foo\") do |r|"},{"line_number":297,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":298,"context_line":"description\u003d\"Foo is done without file\""},{"line_number":299,"context_line":"enabled\u003d\"True\""},{"line_number":300,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_aa432d41","line":297,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        end"},{"line_number":307,"context_line":"        it \u0027successfully get the bar resource\u0027 do"},{"line_number":308,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell bar\") do |r|"},{"line_number":309,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":310,"context_line":"description\u003d\"Bar is done from a file\""},{"line_number":311,"context_line":"enabled\u003d\"False\""},{"line_number":312,"context_line":"id\u003d\"bar\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ca40e136","line":309,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        end"},{"line_number":307,"context_line":"        it \u0027successfully get the bar resource\u0027 do"},{"line_number":308,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell bar\") do |r|"},{"line_number":309,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":310,"context_line":"description\u003d\"Bar is done from a file\""},{"line_number":311,"context_line":"enabled\u003d\"False\""},{"line_number":312,"context_line":"id\u003d\"bar\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ee32a4a6","line":309,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"        it \u0027has all the puppet resources\u0027 do"},{"line_number":321,"context_line":"          shell(\u0027puppet resource keystone_identity_provider\u0027) do |r|"},{"line_number":322,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOO"},{"line_number":323,"context_line":"keystone_identity_provider { \u0027bar\u0027:"},{"line_number":324,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"},{"line_number":325,"context_line":"  description    \u003d\u003e \u0027Bar is done from a file\u0027,"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_4e22b053","line":322,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"        it \u0027has all the puppet resources\u0027 do"},{"line_number":321,"context_line":"          shell(\u0027puppet resource keystone_identity_provider\u0027) do |r|"},{"line_number":322,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOO"},{"line_number":323,"context_line":"keystone_identity_provider { \u0027bar\u0027:"},{"line_number":324,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"},{"line_number":325,"context_line":"  description    \u003d\u003e \u0027Bar is done from a file\u0027,"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_6a49955f","line":322,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"01acccd7ba6b62991fd66d4eb91177c38d520d90","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":289,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":290,"context_line":"  # cheap tests."},{"line_number":291,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"},{"line_number":292,"context_line":"    let(:pp) do"},{"line_number":293,"context_line":"      \u003c\u003c-EOM"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"fa80f949_f3e37ca2","line":290,"updated":"2015-11-06 09:48:46.000000000","message":"Those tests should be removed to be integrated in a real working one.  I don\u0027t have time to do it, and lack the familiarity with the whole thing to do it quickly.  In the meantime, I let them here to check that it\u0027s still working fine.  Maybe we should remove it, and add a patch on top on this one that does real integration test.","commit_id":"c55db33fa7c572772fd856c6987d4b24d7fe19a1"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":274,"context_line":"  end"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":277,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":278,"context_line":"  # cheap tests."},{"line_number":279,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"},{"line_number":280,"context_line":"    let(:pp) do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_2cede6b6","line":277,"updated":"2015-11-12 03:38:11.000000000","message":"I suppose you\u0027re talking about the \"describe \u0027#keystone_identity_provider\u0027 do...\" section further down.\n\nAltogether I\u0027m not sure the comment is needed. The acceptance test does what it can. Surely LDAP backend(s) to help validate further but that\u0027s not in the picture for now, the tests to be added when we have such dependency fulfilled. \nSo basically either we do it now or we just say nothing and leave for later.\n\n\u003e Those a really unit cheap tests\nDo you mean: \"Those are really cheap unit tests\"?","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":274,"context_line":"  end"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":277,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":278,"context_line":"  # cheap tests."},{"line_number":279,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"},{"line_number":280,"context_line":"    let(:pp) do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_88c11d31","line":277,"in_reply_to":"da85f559_2cede6b6","updated":"2015-11-16 15:34:01.000000000","message":"Comment captured there: https://trello.com/c/DuNmElKz/70-add-a-ldap-server-to-keystone-acceptance-test-for-testing-ldap-backend\n\nRemoved.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"  end"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  describe \u0027#keystone_identity_provider\u0027 do"},{"line_number":294,"context_line":"    let(:manifest_identity_provider) do"},{"line_number":295,"context_line":"      \u003c\u003c-EOM"},{"line_number":296,"context_line":"        # Begin Keystone_identity_provider acceptance test resources"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_0ce582a6","line":293,"updated":"2015-11-12 03:38:11.000000000","message":"Unless there are interdependencies between two providers, for example when testing a role creation upon the existence of a user/project, I believe those acceptance tests to be covered by unit tests.\n\nAnd going back to previous comment, the accepance tests to be done with an external identity provider.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":295,"context_line":"      \u003c\u003c-EOM"},{"line_number":296,"context_line":"        # Begin Keystone_identity_provider acceptance test resources"},{"line_number":297,"context_line":"        keystone_identity_provider { \u0027foo\u0027:"},{"line_number":298,"context_line":"          remote_ids \u003d\u003e [\"http://remote_id_for_foo_1\", \"remote_id_for_foo_2\"],"},{"line_number":299,"context_line":"          description \u003d\u003e \u0027Foo is done without file\u0027,"},{"line_number":300,"context_line":"          ensure \u003d\u003e present,"},{"line_number":301,"context_line":"        }"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_ccb9bacd","line":298,"updated":"2015-11-12 03:38:11.000000000","message":"Can we please use more meaningful values instead of foo/bar?\nBecause experience shows that helps maintain the code.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"}],"spec/acceptance/keystone_wsgi_apache_spec.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"627234d276d36a816f8f34e4885e878e2234d296","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    describe cron do"},{"line_number":138,"context_line":"      it { should have_entry(\u00271 0 * * * keystone-manage token_flush \u003e\u003e/var/log/keystone/keystone-tokenflush.log 2\u003e\u00261\u0027).with_user(\u0027keystone\u0027) }"},{"line_number":139,"context_line":"    end"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    let(:admin_credential) {"},{"line_number":142,"context_line":"      \u0027--os-username adminv3 --os-password a_big_secret --os-project-name openstackv3\u0027 \\"},{"line_number":143,"context_line":"        \u0027 --os-user-domain-name admin_domain --os-project-domain-name admin_domain\u0027"}],"source_content_type":"text/x-ruby","patch_set":19,"id":"3a50d1a3_c9c8f857","line":140,"updated":"2015-07-28 18:14:38.000000000","message":"Example of refactoring that could be generalized.","commit_id":"b76eae732c22ad2cf18f1f457187fbf0938574f0"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"627234d276d36a816f8f34e4885e878e2234d296","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    end"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    describe \u0027#keystone_identity_provider\u0027 do"},{"line_number":243,"context_line":"      before(:context) do"},{"line_number":244,"context_line":"        skip(\"Openstack client version is below 1.1.0 (#{@openstack_client_version})\")"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":19,"id":"3a50d1a3_c9523867","line":242,"updated":"2015-07-28 18:14:38.000000000","message":"Leftover.  This is not my intended way to skip test.","commit_id":"b76eae732c22ad2cf18f1f457187fbf0938574f0"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"627234d276d36a816f8f34e4885e878e2234d296","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        @skip \u003d Gem::Version.new(@openstack_client_version) \u003e\u003d Gem::Version.new(\u00271.1.0\u0027) ? false : true"},{"line_number":272,"context_line":"      end"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"      context \u0027Identity provider manifest\u0027 do"},{"line_number":275,"context_line":"        it \u0027run without error\u0027, :skip \u003d\u003e @skip do"},{"line_number":276,"context_line":"          apply_manifest(manifest_identity_provider, :catch_failures \u003d\u003e true)"},{"line_number":277,"context_line":"        end"}],"source_content_type":"text/x-ruby","patch_set":19,"id":"3a50d1a3_c9d9d8f4","line":274,"updated":"2015-07-28 18:14:38.000000000","message":"This is the intended way, but not sure it\u0027s working.","commit_id":"b76eae732c22ad2cf18f1f457187fbf0938574f0"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"2722a6e66f68ba2145655648ddf1ff875680dc1d","unresolved":false,"context_lines":[{"line_number":323,"context_line":"  enabled        \u003d\u003e \u0027false\u0027,"},{"line_number":324,"context_line":"  id             \u003d\u003e \u0027bar\u0027,"},{"line_number":325,"context_line":"  remote_id_file \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":326,"context_line":"  remote_ids     \u003d\u003e [\u0027http://remote_id_for_bar_1?id\u003d\u0027bar\u0027\u0027, \u0027remote_id_for_bar_2\u0027],"},{"line_number":327,"context_line":"}"},{"line_number":328,"context_line":"keystone_identity_provider { \u0027foo\u0027:"},{"line_number":329,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"1a4dcd0f_0778b9f7","line":326,"updated":"2015-08-07 21:13:13.000000000","message":"This doesn\u0027t look like valid ruby code?","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027spec_helper_acceptance\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"describe \u0027keystone server running with Apache/WSGI with resources\u0027 do"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"  context \u0027default parameters\u0027 do"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    it \u0027should work with no errors\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_c9bb8f74","side":"PARENT","line":4,"updated":"2015-09-02 10:19:25.000000000","message":"same","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027spec_helper_acceptance\u0027"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"describe \u0027keystone server running with Apache/WSGI with resources\u0027 do"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"  context \u0027default parameters\u0027 do"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    it \u0027should work with no errors\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_e07ac187","side":"PARENT","line":4,"in_reply_to":"da20952f_c9bb8f74","updated":"2015-09-04 09:45:29.000000000","message":"Done","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        project_domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":135,"context_line":"      }"},{"line_number":136,"context_line":"      EOS"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"      # Run it twice and test for idempotency"},{"line_number":140,"context_line":"      apply_manifest(pp, :catch_failures \u003d\u003e true)"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_89b5977f","side":"PARENT","line":137,"updated":"2015-09-02 10:19:25.000000000","message":"same","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        project_domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":135,"context_line":"      }"},{"line_number":136,"context_line":"      EOS"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"      # Run it twice and test for idempotency"},{"line_number":140,"context_line":"      apply_manifest(pp, :catch_failures \u003d\u003e true)"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_00b7b53a","side":"PARENT","line":137,"in_reply_to":"da20952f_89b5977f","updated":"2015-09-04 09:45:29.000000000","message":"Done","commit_id":"ee830a5277fe6b54e9814a0a00f79cafd0c89561"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        end"},{"line_number":197,"context_line":"      end"},{"line_number":198,"context_line":"    end"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    shared_examples_for \u0027keystone user/tenant/service/role/endpoint resources using v3 API\u0027 do |auth_creds|"},{"line_number":201,"context_line":"      it \u0027should find beaker user\u0027 do"},{"line_number":202,"context_line":"        shell(\"openstack #{auth_creds} --os-auth-url http://127.0.0.1:5000/v3 --os-identity-api-version 3 user list\") do |r|"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_a9badb6c","line":199,"updated":"2015-09-02 10:19:25.000000000","message":"same","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        end"},{"line_number":197,"context_line":"      end"},{"line_number":198,"context_line":"    end"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    shared_examples_for \u0027keystone user/tenant/service/role/endpoint resources using v3 API\u0027 do |auth_creds|"},{"line_number":201,"context_line":"      it \u0027should find beaker user\u0027 do"},{"line_number":202,"context_line":"        shell(\"openstack #{auth_creds} --os-auth-url http://127.0.0.1:5000/v3 --os-identity-api-version 3 user list\") do |r|"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_a07e0968","line":199,"in_reply_to":"da20952f_a9badb6c","updated":"2015-09-04 09:45:29.000000000","message":"Humm... I like space.  Done.","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"d226bdc3dad8498d73c654a40f07455c3fd0ea55","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        end"},{"line_number":230,"context_line":"      end"},{"line_number":231,"context_line":"    end"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    describe \u0027with v2 admin with v2 credentials\u0027 do"},{"line_number":234,"context_line":"      include_examples \u0027keystone user/tenant/service/role/endpoint resources using v2 API\u0027,"},{"line_number":235,"context_line":"                       \u0027--os-username admin --os-password a_big_secret --os-project-name openstack\u0027"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_49b0df8b","line":232,"updated":"2015-09-02 10:19:25.000000000","message":"same","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"1a711600401a8557d14ce3e56d019e3f58676320","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        end"},{"line_number":230,"context_line":"      end"},{"line_number":231,"context_line":"    end"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    describe \u0027with v2 admin with v2 credentials\u0027 do"},{"line_number":234,"context_line":"      include_examples \u0027keystone user/tenant/service/role/endpoint resources using v2 API\u0027,"},{"line_number":235,"context_line":"                       \u0027--os-username admin --os-password a_big_secret --os-project-name openstack\u0027"}],"source_content_type":"text/x-ruby","patch_set":35,"id":"da20952f_80c74597","line":232,"in_reply_to":"da20952f_49b0df8b","updated":"2015-09-04 09:45:29.000000000","message":"Done","commit_id":"7dc674d91b693e3b3af925d3efa2223e43ef9d45"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    end"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    describe \u0027#keystone_identity_provider\u0027 do"},{"line_number":260,"context_line":"      let(:manifest_identity_provider) { \u003c\u003c-EOM"},{"line_number":261,"context_line":"            # Begin Keystone_identity_provider acceptance test resources"},{"line_number":262,"context_line":"      keystone_identity_provider { \u0027foo\u0027:"},{"line_number":263,"context_line":"        remote_ids \u003d\u003e [\"http://remote_id_for_foo_1\", \"remote_id_for_foo_2\"],"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_6ec9b458","line":260,"updated":"2015-09-17 06:08:17.000000000","message":"Same comment as for basic_keystone_spec.rb","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":290,"context_line":"      context \u0027check the resource creation\u0027 do"},{"line_number":291,"context_line":"        it \u0027successfully get the list\u0027 do"},{"line_number":292,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider list --format csv\") do |r|"},{"line_number":293,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":294,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":295,"context_line":"\"bar\",False,\"Bar is done from a file\""},{"line_number":296,"context_line":"\"foo\",True,\"Foo is done without file\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_0ec27834","line":293,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":290,"context_line":"      context \u0027check the resource creation\u0027 do"},{"line_number":291,"context_line":"        it \u0027successfully get the list\u0027 do"},{"line_number":292,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider list --format csv\") do |r|"},{"line_number":293,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":294,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":295,"context_line":"\"bar\",False,\"Bar is done from a file\""},{"line_number":296,"context_line":"\"foo\",True,\"Foo is done without file\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_8a46694d","line":293,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        it \u0027successfully get the foo resource\u0027 do"},{"line_number":304,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell foo\") do |r|"},{"line_number":305,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":306,"context_line":"description\u003d\"Foo is done without file\""},{"line_number":307,"context_line":"enabled\u003d\"True\""},{"line_number":308,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_2a763da4","line":305,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        it \u0027successfully get the foo resource\u0027 do"},{"line_number":304,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell foo\") do |r|"},{"line_number":305,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":306,"context_line":"description\u003d\"Foo is done without file\""},{"line_number":307,"context_line":"enabled\u003d\"True\""},{"line_number":308,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_2ebf3cab","line":305,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        end"},{"line_number":315,"context_line":"        it \u0027successfully get the bar resource\u0027 do"},{"line_number":316,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell bar\") do |r|"},{"line_number":317,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":318,"context_line":"description\u003d\"Bar is done from a file\""},{"line_number":319,"context_line":"enabled\u003d\"False\""},{"line_number":320,"context_line":"id\u003d\"bar\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_4a7b718c","line":317,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        end"},{"line_number":315,"context_line":"        it \u0027successfully get the bar resource\u0027 do"},{"line_number":316,"context_line":"          shell(\"openstack #{admin_credential} #{v3_url} identity provider show --format shell bar\") do |r|"},{"line_number":317,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOE"},{"line_number":318,"context_line":"description\u003d\"Bar is done from a file\""},{"line_number":319,"context_line":"enabled\u003d\"False\""},{"line_number":320,"context_line":"id\u003d\"bar\""}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_8ee448e0","line":317,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"f94491a586807cd42fd8956ff98e1c77f1014e49","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        it \u0027has all the puppet resources\u0027 do"},{"line_number":329,"context_line":"          shell(\u0027puppet resource keystone_identity_provider\u0027) do |r|"},{"line_number":330,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOO"},{"line_number":331,"context_line":"keystone_identity_provider { \u0027bar\u0027:"},{"line_number":332,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"},{"line_number":333,"context_line":"  description    \u003d\u003e \u0027Bar is done from a file\u0027,"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_aee90cb9","line":330,"updated":"2015-09-17 06:08:17.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"0c7bc70ad8b31f55d7e7086139325afd5b3e24c6","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        it \u0027has all the puppet resources\u0027 do"},{"line_number":329,"context_line":"          shell(\u0027puppet resource keystone_identity_provider\u0027) do |r|"},{"line_number":330,"context_line":"            expect(r.stdout).to eq(\u003c\u003c-EOO"},{"line_number":331,"context_line":"keystone_identity_provider { \u0027bar\u0027:"},{"line_number":332,"context_line":"  ensure         \u003d\u003e \u0027present\u0027,"},{"line_number":333,"context_line":"  description    \u003d\u003e \u0027Bar is done from a file\u0027,"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"ba15a1d1_ea6b65b7","line":330,"updated":"2015-09-17 10:06:45.000000000","message":"Same","commit_id":"12c84b18f652a16256c2bab1382b594eed2bfad7"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"01acccd7ba6b62991fd66d4eb91177c38d520d90","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":287,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":288,"context_line":"  # cheap tests."},{"line_number":289,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"},{"line_number":290,"context_line":"    let(:pp) do"},{"line_number":291,"context_line":"      \u003c\u003c-EOM"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"fa80f949_d3c3d8eb","line":288,"updated":"2015-11-06 09:48:46.000000000","message":"See my comment in basic_keystone_spec.","commit_id":"c55db33fa7c572772fd856c6987d4b24d7fe19a1"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":271,"context_line":"    end"},{"line_number":272,"context_line":"  end"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":275,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":276,"context_line":"  # cheap tests."},{"line_number":277,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_8ce732ab","line":274,"updated":"2015-11-12 03:38:11.000000000","message":"Same comment as for basic_keystone_spec.rb","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":271,"context_line":"    end"},{"line_number":272,"context_line":"  end"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"  # TODO: this should be moved to a _real_ integration test with"},{"line_number":275,"context_line":"  # multiple ldap backend configured and working.  Those a really unit"},{"line_number":276,"context_line":"  # cheap tests."},{"line_number":277,"context_line":"  describe \u0027composite namevar for keystone_service\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_689399fb","line":274,"in_reply_to":"da85f559_8ce732ab","updated":"2015-11-16 15:34:01.000000000","message":"Changes removed.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"}],"spec/spec_helper.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"9b195060d762042f3f201bdc559be4e8ce5184d4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"require \u0027puppetlabs_spec_helper/module_spec_helper\u0027"},{"line_number":4,"context_line":"require \u0027shared_examples\u0027"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"RSpec.configure do |c|"},{"line_number":7,"context_line":"  c.mock_with :rspec"},{"line_number":8,"context_line":"  c.alias_it_should_behave_like_to :it_configures, \u0027configures\u0027"},{"line_number":9,"context_line":"  c.alias_it_should_behave_like_to :it_raises, \u0027raises\u0027"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9a41bdd9_d511c55e","line":6,"updated":"2015-07-18 07:27:31.000000000","message":"This is a global configuration and it breaks other tests which use mocha.  This will have to be reverted to mocha unless something eludes me.","commit_id":"db544ab64b7d0dc06e761ccba8518a3c2b8b017b"}],"spec/unit/provider/keystone_identity_provider/keystone_identity_provider/openstack_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"adaad68d302c6c71792a88780c433abf0b08e976","unresolved":false,"context_lines":[{"line_number":34,"context_line":"  it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":35,"context_line":"    describe \u0027#create\u0027 do"},{"line_number":36,"context_line":"      it \u0027creates an identity provider\u0027 do"},{"line_number":37,"context_line":"        provider.class.stubs(:openstack)"},{"line_number":38,"context_line":"          .with("},{"line_number":39,"context_line":"                \u0027identity\u0027, \u0027provider\u0027, \u0027list\u0027, \u0027--quiet\u0027,"},{"line_number":40,"context_line":"                \u0027--format\u0027, \u0027csv\u0027, \u0027--long\u0027"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"9a41bdd9_41054912","line":37,"updated":"2015-07-16 17:17:33.000000000","message":"use expects not stubs","commit_id":"d2acb184640a5af6d30bef6fb1494d683ae2775e"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"adaad68d302c6c71792a88780c433abf0b08e976","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\"bar\",True,\"\""},{"line_number":46,"context_line":"EOR"},{"line_number":47,"context_line":"                  )"},{"line_number":48,"context_line":"        provider.class.stubs(:openstack)"},{"line_number":49,"context_line":"          .with("},{"line_number":50,"context_line":"                \u0027identity\u0027, \u0027provider\u0027, \u0027create\u0027,"},{"line_number":51,"context_line":"                \u0027--format\u0027, \u0027shell\u0027, \u0027foo\u0027"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"9a41bdd9_9c12d457","line":48,"updated":"2015-07-16 17:17:33.000000000","message":"use expects not stubs","commit_id":"d2acb184640a5af6d30bef6fb1494d683ae2775e"}],"spec/unit/provider/keystone_identity_provider/openstack_spec.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"9b195060d762042f3f201bdc559be4e8ce5184d4","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":31,"context_line":"    describe \u0027#create\u0027 do"},{"line_number":32,"context_line":"      it \u0027creates an identity provider\u0027 do"},{"line_number":33,"context_line":"        expect(provider.class).to receive(:openstack)"},{"line_number":34,"context_line":"          .with("},{"line_number":35,"context_line":"                \u0027identity provider\u0027, \u0027list\u0027, \u0027--quiet\u0027,"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"9a41bdd9_a80e2830","line":32,"updated":"2015-07-18 07:27:31.000000000","message":"This is clearly better than mocha but breaks other tests.  Maybe for a dedicated patch: convert moch from mocha to rspec ?","commit_id":"db544ab64b7d0dc06e761ccba8518a3c2b8b017b"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"35d7fe69e64d2698dfc3c401e305799e191d9edc","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":31,"context_line":"    describe \u0027#create\u0027 do"},{"line_number":32,"context_line":"      it \u0027creates an identity provider\u0027 do"},{"line_number":33,"context_line":"        expect(provider.class).to receive(:openstack)"},{"line_number":34,"context_line":"          .with("},{"line_number":35,"context_line":"                \u0027identity provider\u0027, \u0027list\u0027, \u0027--quiet\u0027,"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3a50d1a3_c93e1fda","line":32,"in_reply_to":"3a50d1a3_9be2c0d4","updated":"2015-07-21 07:42:21.000000000","message":"The problem with mocha is mainly that I\u0027m unfamiliar with it I guess ...  \n\nSo when I used the idiom I\u0027m familiar with (rspec moch \"expect(...).to receive ...\" I discovered that we use mocha and not rspec mock.  I tried to use rspec mock (and this change is the result), but it\u0027s not possible to use it locally on only one file.  I committed the change for reference only and now I will look for the correct idiom to stub and expect in mocha. (in the others keystone files, the methods are only stubbed)","commit_id":"db544ab64b7d0dc06e761ccba8518a3c2b8b017b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"73ca4778a5144a1d26b2649f520912979c961f2a","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  it_behaves_like \u0027authenticated with environment variables\u0027 do"},{"line_number":31,"context_line":"    describe \u0027#create\u0027 do"},{"line_number":32,"context_line":"      it \u0027creates an identity provider\u0027 do"},{"line_number":33,"context_line":"        expect(provider.class).to receive(:openstack)"},{"line_number":34,"context_line":"          .with("},{"line_number":35,"context_line":"                \u0027identity provider\u0027, \u0027list\u0027, \u0027--quiet\u0027,"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3a50d1a3_9be2c0d4","line":32,"in_reply_to":"9a41bdd9_a80e2830","updated":"2015-07-20 15:20:02.000000000","message":"What\u0027s the problem with mocha?  I think we should not use two different mocking frameworks.  It\u0027s already confusing enough that we don\u0027t use the rspec mocks.","commit_id":"db544ab64b7d0dc06e761ccba8518a3c2b8b017b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    {"},{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :ensure       \u003d\u003e :present,"},{"line_number":19,"context_line":"      :enabled      \u003d\u003e \u0027True\u0027,"},{"line_number":20,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_53e9387f","line":19,"updated":"2015-07-21 17:20:09.000000000","message":"add support for :remote_ids","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    {"},{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :ensure       \u003d\u003e :present,"},{"line_number":19,"context_line":"      :enabled      \u003d\u003e \u0027True\u0027,"},{"line_number":20,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":21,"context_line":"    }"},{"line_number":22,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_a4d4f446","line":19,"in_reply_to":"3a50d1a3_53e9387f","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":37,"context_line":"               )"},{"line_number":38,"context_line":"          .returns("},{"line_number":39,"context_line":"          \u003c\u003c-EOR"},{"line_number":40,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":41,"context_line":"\"bar\",True,\"\""},{"line_number":42,"context_line":"EOR"},{"line_number":43,"context_line":"          )"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_d3fd483b","line":40,"updated":"2015-07-21 17:20:09.000000000","message":"add support for remote ids","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"               )"},{"line_number":38,"context_line":"          .returns("},{"line_number":39,"context_line":"          \u003c\u003c-EOR"},{"line_number":40,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":41,"context_line":"\"bar\",True,\"\""},{"line_number":42,"context_line":"EOR"},{"line_number":43,"context_line":"          )"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_44cbb0a5","line":40,"in_reply_to":"3a50d1a3_d3fd483b","updated":"2015-07-21 18:01:34.000000000","message":"Done","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8a9b442a901933d75198312588d3cd93dc94edae","unresolved":false,"context_lines":[{"line_number":52,"context_line":"description\u003d\"None\""},{"line_number":53,"context_line":"enabled\u003d\"True\""},{"line_number":54,"context_line":"id\u003d\"foo\""},{"line_number":55,"context_line":"remote_ids\u003d\"[]\""},{"line_number":56,"context_line":"EOR"},{"line_number":57,"context_line":"                     )"},{"line_number":58,"context_line":"        cat_res \u003d { id_provider_attrs[:name] \u003d\u003e id_provider_attrs.delete(\u0027name\u0027) }"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_fe14cb44","line":55,"updated":"2015-07-21 17:20:09.000000000","message":"Is this how remote_ids is returned?\nHow do you specify the remote_ids in the identity provider create command?","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"48c6f6451335904e941601b725d3ce125c63b2a9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"description\u003d\"None\""},{"line_number":53,"context_line":"enabled\u003d\"True\""},{"line_number":54,"context_line":"id\u003d\"foo\""},{"line_number":55,"context_line":"remote_ids\u003d\"[]\""},{"line_number":56,"context_line":"EOR"},{"line_number":57,"context_line":"                     )"},{"line_number":58,"context_line":"        cat_res \u003d { id_provider_attrs[:name] \u003d\u003e id_provider_attrs.delete(\u0027name\u0027) }"}],"source_content_type":"text/x-ruby","patch_set":4,"id":"3a50d1a3_e4519cd9","line":55,"in_reply_to":"3a50d1a3_fe14cb44","updated":"2015-07-21 18:01:34.000000000","message":"I have simplified this part of the code.  I will test the prefetch class method separately.","commit_id":"f12bec95f474f7af9a521d7cc515d77eeef20671"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :enabled      \u003d\u003e true,"},{"line_number":19,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":20,"context_line":"      :remote_ids   \u003d\u003e [42],"},{"line_number":21,"context_line":"      :ensure       \u003d\u003e :absent"},{"line_number":22,"context_line":"    }"},{"line_number":23,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_714ea970","line":20,"updated":"2015-07-21 18:29:13.000000000","message":"can be a string, not just an integer","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"aa7c989b9379553aaea5e3b548d0b1732411e767","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :enabled      \u003d\u003e true,"},{"line_number":19,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":20,"context_line":"      :remote_ids   \u003d\u003e [42],"},{"line_number":21,"context_line":"      :ensure       \u003d\u003e :absent"},{"line_number":22,"context_line":"    }"},{"line_number":23,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_5e96f893","line":20,"in_reply_to":"3a50d1a3_714ea970","updated":"2015-07-22 10:45:18.000000000","message":"Done","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0884b01c837d2a68412815be5e749c168d36b933","unresolved":false,"context_lines":[{"line_number":51,"context_line":"description\u003d\"None\""},{"line_number":52,"context_line":"enabled\u003d\"True\""},{"line_number":53,"context_line":"id\u003d\"foo\""},{"line_number":54,"context_line":"remote_ids\u003d\"[]\""},{"line_number":55,"context_line":"EOR"},{"line_number":56,"context_line":"                     )"},{"line_number":57,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_71754996","line":54,"updated":"2015-07-21 18:29:13.000000000","message":"shouldn\u0027t this return \"[42]\"?","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"aa7c989b9379553aaea5e3b548d0b1732411e767","unresolved":false,"context_lines":[{"line_number":51,"context_line":"description\u003d\"None\""},{"line_number":52,"context_line":"enabled\u003d\"True\""},{"line_number":53,"context_line":"id\u003d\"foo\""},{"line_number":54,"context_line":"remote_ids\u003d\"[]\""},{"line_number":55,"context_line":"EOR"},{"line_number":56,"context_line":"                     )"},{"line_number":57,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":5,"id":"3a50d1a3_def0c800","line":54,"in_reply_to":"3a50d1a3_71754996","updated":"2015-07-22 10:45:18.000000000","message":"Done","commit_id":"0d5906f6655b60df44ab63519c7e8650379a2c32"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"d0c1d05374e018d818550861aaf955c1b2ae3ccf","unresolved":false,"context_lines":[{"line_number":49,"context_line":"description\u003d\"None\""},{"line_number":50,"context_line":"enabled\u003d\"True\""},{"line_number":51,"context_line":"id\u003d\"foo\""},{"line_number":52,"context_line":"remote_ids\u003d\"[u\u0027id one\u0027, u\u00272\u0027, u\u00273\u0027]\""},{"line_number":53,"context_line":"EOR"},{"line_number":54,"context_line":"                     )"},{"line_number":55,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"3a50d1a3_4d7e421a","line":52,"updated":"2015-07-22 14:28:23.000000000","message":"shouldn\u0027t this return [\u0027entityid_idp1\u0027, \u0027http://entityid_idp2/saml/meta\u0027, \u00273\u0027] ?","commit_id":"9e3b2f891de29733c56a230447e066e5df98de7d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"ec66d00a23c802910857d04e13d24182bcbbf022","unresolved":false,"context_lines":[{"line_number":49,"context_line":"description\u003d\"None\""},{"line_number":50,"context_line":"enabled\u003d\"True\""},{"line_number":51,"context_line":"id\u003d\"foo\""},{"line_number":52,"context_line":"remote_ids\u003d\"[u\u0027id one\u0027, u\u00272\u0027, u\u00273\u0027]\""},{"line_number":53,"context_line":"EOR"},{"line_number":54,"context_line":"                     )"},{"line_number":55,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"3a50d1a3_06c337ee","line":52,"in_reply_to":"3a50d1a3_4d7e421a","updated":"2015-07-22 15:12:39.000000000","message":"Done in patchset 10","commit_id":"9e3b2f891de29733c56a230447e066e5df98de7d"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"7c2259155ac57b642f313057b914da56aa4ddd8d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        expect(provider.exists?).to be_falsy"},{"line_number":91,"context_line":"      end"},{"line_number":92,"context_line":"    end"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  end"},{"line_number":95,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":11,"id":"3a50d1a3_820170b1","line":93,"updated":"2015-07-22 15:43:41.000000000","message":"Add test of prefetch, instances and flush.","commit_id":"bb6a32a25ddbf2418d0f0f77ee390f33efed879b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"dbb19b18c8f0ec90cdee65288bdb41ed115021ee","unresolved":false,"context_lines":[{"line_number":106,"context_line":"description\u003d\"Nice id provider\""},{"line_number":107,"context_line":"enabled\u003d\"True\""},{"line_number":108,"context_line":"id\u003d\"foo\""},{"line_number":109,"context_line":"remote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\""},{"line_number":110,"context_line":"EOR"},{"line_number":111,"context_line":"                     )"},{"line_number":112,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_0f3180ec","line":109,"updated":"2015-07-24 19:36:36.000000000","message":"What is this format?  Is it JSON?  If so, perhaps we should use a JSON parser instead of the gsub()","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"04529381d8bb1b3de5374663a5d347aee506a1ef","unresolved":false,"context_lines":[{"line_number":106,"context_line":"description\u003d\"Nice id provider\""},{"line_number":107,"context_line":"enabled\u003d\"True\""},{"line_number":108,"context_line":"id\u003d\"foo\""},{"line_number":109,"context_line":"remote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\""},{"line_number":110,"context_line":"EOR"},{"line_number":111,"context_line":"                     )"},{"line_number":112,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_6d8553cd","line":109,"in_reply_to":"3a50d1a3_0f3180ec","updated":"2015-07-28 07:38:24.000000000","message":"In pry: \n\nJSON.parse(\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\")\nJSON::ParserError: 399: unexpected token at \u0027u\u00271\u0027, u\u0027toto\u0027, u\u0027http://totto\u0027]\u0027\n\ndoesn\u0027t work.  JSON would be :\n\n\n[\"entityid_idp1\", \"http://entityid_idp2/saml/meta\", \"3\"]","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"9e9f0412a2ce07b73712a63ce12af24980a19db9","unresolved":false,"context_lines":[{"line_number":106,"context_line":"description\u003d\"Nice id provider\""},{"line_number":107,"context_line":"enabled\u003d\"True\""},{"line_number":108,"context_line":"id\u003d\"foo\""},{"line_number":109,"context_line":"remote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\""},{"line_number":110,"context_line":"EOR"},{"line_number":111,"context_line":"                     )"},{"line_number":112,"context_line":"        provider.create"}],"source_content_type":"text/x-ruby","patch_set":17,"id":"3a50d1a3_50cb3553","line":109,"in_reply_to":"3a50d1a3_6d8553cd","updated":"2015-07-28 14:32:20.000000000","message":"ack - seems like a bug in openstackclient","commit_id":"defb45a7595153d36c63dd32c7ea11888b292f25"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"78d160463747a180b427fb1c0f359a772d044e76","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        it \u0027changes the remote_id when the file has new id\u0027 do"},{"line_number":233,"context_line":"        end"},{"line_number":234,"context_line":"      end"},{"line_number":235,"context_line":"      end"},{"line_number":236,"context_line":"    end"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    describe \u0027#prefetch\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"3a50d1a3_02a84776","line":235,"updated":"2015-07-31 20:17:34.000000000","message":"This looks odd - formatting issue?","commit_id":"7f8464e9f79068f00e1849ba1338f00ec353ef84"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"c458bdd744c00d940500dfc7533686541493b769","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        it \u0027changes the remote_id when the file has new id\u0027 do"},{"line_number":233,"context_line":"        end"},{"line_number":234,"context_line":"      end"},{"line_number":235,"context_line":"      end"},{"line_number":236,"context_line":"    end"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    describe \u0027#prefetch\u0027 do"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"1a4dcd0f_7d134a5d","line":235,"in_reply_to":"3a50d1a3_02a84776","updated":"2015-08-03 20:02:51.000000000","message":"Done","commit_id":"7f8464e9f79068f00e1849ba1338f00ec353ef84"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"9fc24541d2b5956c7ea2165c117d95df3cc4ba2e","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"provider_class \u003d Puppet::Type.type(:keystone_identity_provider).provider(:openstack)"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"describe provider_class do"},{"line_number":8,"context_line":"  shared_examples \u0027authenticated with environment variables\u0027 do"},{"line_number":9,"context_line":"    ENV[\u0027OS_USERNAME\u0027]     \u003d \u0027test\u0027"},{"line_number":10,"context_line":"    ENV[\u0027OS_PASSWORD\u0027]     \u003d \u0027abc123\u0027"}],"source_content_type":"text/x-ruby","patch_set":27,"id":"1a4dcd0f_967e30ad","line":7,"updated":"2015-08-03 20:25:44.000000000","message":"The @credentials in openstack.rb get its values before this is set.","commit_id":"d0725c3ac9255b34289620c2fe7a44471132a89f"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"2722a6e66f68ba2145655648ddf1ff875680dc1d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  let(:provider) { provider_class.new(resource) }"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  before(:example) { set_env }"},{"line_number":32,"context_line":"  describe \u0027#create success\u0027 do"},{"line_number":33,"context_line":"    it \u0027creates an identity provider\u0027 do"},{"line_number":34,"context_line":"      provider.class.expects(:openstack)"}],"source_content_type":"text/x-ruby","patch_set":32,"id":"1a4dcd0f_a7d785be","line":31,"updated":"2015-08-07 21:13:13.000000000","message":"Yes - this seems cleaner than using `shared_examples`","commit_id":"7f796af2d6f028ecce87e839c455d8656ac857bb"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":51,"context_line":"id\u003d\"foo\""},{"line_number":52,"context_line":"remote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\""},{"line_number":53,"context_line":"EOR"},{"line_number":54,"context_line":"      )"},{"line_number":55,"context_line":"      provider.create"},{"line_number":56,"context_line":"      expect(provider.exists?).to be_truthy"},{"line_number":57,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_8c3ad2e5","line":54,"updated":"2015-11-12 03:38:11.000000000","message":"Ok this style works but it breaks away  from what we do everywhere else thus bringing inconsistency.\n\nAnd the real reason I challenge it is because I don\u0027t see what it brings more.\nAs compared to this:\n      .returns(  \ndescription\u003d\"Nice id provider\"\t  \nenabled\u003d\"True\"  \nid\u003d\"foo\"  \nremote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\")","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":51,"context_line":"id\u003d\"foo\""},{"line_number":52,"context_line":"remote_ids\u003d\"[u\u0027entityid_idp1\u0027, u\u0027http://entityid_idp2/saml/meta\u0027, u\u00273\u0027]\""},{"line_number":53,"context_line":"EOR"},{"line_number":54,"context_line":"      )"},{"line_number":55,"context_line":"      provider.create"},{"line_number":56,"context_line":"      expect(provider.exists?).to be_truthy"},{"line_number":57,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_4b524f15","line":54,"in_reply_to":"da85f559_8c3ad2e5","updated":"2015-11-16 15:34:01.000000000","message":"Double escaping ?  Here we have \u0027 and \".  When only one is there why not, but when both, and it\u0027s multiline, I think it\u0027s better to have this form.\n\nWe could use some kind of %Q here, but then have to chose carefuly the next caracter. All in all I think that here it\u0027s safer.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":102,"context_line":"             )"},{"line_number":103,"context_line":"        .once"},{"line_number":104,"context_line":"        .returns("},{"line_number":105,"context_line":"        \u003c\u003c-EOR"},{"line_number":106,"context_line":"description\u003d\"Nice id provider\""},{"line_number":107,"context_line":"enabled\u003d\"True\""},{"line_number":108,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_4c294a9d","line":105,"updated":"2015-11-12 03:38:11.000000000","message":"Same as above","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":102,"context_line":"             )"},{"line_number":103,"context_line":"        .once"},{"line_number":104,"context_line":"        .returns("},{"line_number":105,"context_line":"        \u003c\u003c-EOR"},{"line_number":106,"context_line":"description\u003d\"Nice id provider\""},{"line_number":107,"context_line":"enabled\u003d\"True\""},{"line_number":108,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_ab417b3b","line":105,"in_reply_to":"da85f559_4c294a9d","updated":"2015-11-16 15:34:01.000000000","message":"idem.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":136,"context_line":"             )"},{"line_number":137,"context_line":"        .once"},{"line_number":138,"context_line":"        .returns("},{"line_number":139,"context_line":"        \u003c\u003c-EOR"},{"line_number":140,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":141,"context_line":"\"foo\",True,\"\""},{"line_number":142,"context_line":"\"blahhh\",False,\"Blahh is a lot of words\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_6c244ec4","line":139,"updated":"2015-11-12 03:38:11.000000000","message":"Same as above","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":136,"context_line":"             )"},{"line_number":137,"context_line":"        .once"},{"line_number":138,"context_line":"        .returns("},{"line_number":139,"context_line":"        \u003c\u003c-EOR"},{"line_number":140,"context_line":"\"ID\",\"Enabled\",\"Description\""},{"line_number":141,"context_line":"\"foo\",True,\"\""},{"line_number":142,"context_line":"\"blahhh\",False,\"Blahh is a lot of words\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_eb6d43cd","line":139,"in_reply_to":"da85f559_6c244ec4","updated":"2015-11-16 15:34:01.000000000","message":"not idem :)\n\nDone.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":149,"context_line":"             )"},{"line_number":150,"context_line":"        .once"},{"line_number":151,"context_line":"        .returns("},{"line_number":152,"context_line":"        \u003c\u003c-EOR"},{"line_number":153,"context_line":"description\u003d\"None\""},{"line_number":154,"context_line":"enabled\u003d\"True\""},{"line_number":155,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_0c2fc2a1","line":152,"updated":"2015-11-12 03:38:11.000000000","message":"Same as above","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"             )"},{"line_number":150,"context_line":"        .once"},{"line_number":151,"context_line":"        .returns("},{"line_number":152,"context_line":"        \u003c\u003c-EOR"},{"line_number":153,"context_line":"description\u003d\"None\""},{"line_number":154,"context_line":"enabled\u003d\"True\""},{"line_number":155,"context_line":"id\u003d\"foo\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_8b5fd70d","line":152,"in_reply_to":"da85f559_0c2fc2a1","updated":"2015-11-16 15:34:01.000000000","message":"idem.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"7d6ba371e1012def3d41b4c013173c12d41bf653","unresolved":false,"context_lines":[{"line_number":163,"context_line":"             )"},{"line_number":164,"context_line":"        .once"},{"line_number":165,"context_line":"        .returns("},{"line_number":166,"context_line":"        \u003c\u003c-EOR"},{"line_number":167,"context_line":"description\u003d\"Blahhh is a lot of words\""},{"line_number":168,"context_line":"enabled\u003d\"False\""},{"line_number":169,"context_line":"id\u003d\"blahhh\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"da85f559_2c2ac690","line":166,"updated":"2015-11-12 03:38:11.000000000","message":"Same as above","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"99cdfdf66f77b65972e10539ed11e78c0b8109d9","unresolved":false,"context_lines":[{"line_number":163,"context_line":"             )"},{"line_number":164,"context_line":"        .once"},{"line_number":165,"context_line":"        .returns("},{"line_number":166,"context_line":"        \u003c\u003c-EOR"},{"line_number":167,"context_line":"description\u003d\"Blahhh is a lot of words\""},{"line_number":168,"context_line":"enabled\u003d\"False\""},{"line_number":169,"context_line":"id\u003d\"blahhh\""}],"source_content_type":"text/x-ruby","patch_set":42,"id":"ba8a016a_cb939fa2","line":166,"in_reply_to":"da85f559_2c2ac690","updated":"2015-11-16 15:34:01.000000000","message":"not idem :)\n\nDone.","commit_id":"7dfb08b22a46cfb91b52cabac8884ee021853e5c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b52dfc6ac0ab88db119170e470a290062b146107","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"  let(:id_provider_attrs) do"},{"line_number":16,"context_line":"    {"},{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :enabled      \u003d\u003e true,"},{"line_number":19,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":20,"context_line":"      :remote_ids   \u003d\u003e [\u0027entityid_idp1\u0027, \u0027http://entityid_idp2/saml/meta\u0027, 3],"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_ed58d758","line":17,"updated":"2015-11-17 04:44:55.000000000","message":"Mostly for maintenance clarity purpose, Could we please use more meaningful names instead of foo?","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"5e369deee60a545d80492f15b025fcf21d4ce62e","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"  let(:id_provider_attrs) do"},{"line_number":16,"context_line":"    {"},{"line_number":17,"context_line":"      :name         \u003d\u003e \u0027foo\u0027,"},{"line_number":18,"context_line":"      :enabled      \u003d\u003e true,"},{"line_number":19,"context_line":"      :description  \u003d\u003e \u0027Nice id provider\u0027,"},{"line_number":20,"context_line":"      :remote_ids   \u003d\u003e [\u0027entityid_idp1\u0027, \u0027http://entityid_idp2/saml/meta\u0027, 3],"}],"source_content_type":"text/x-ruby","patch_set":43,"id":"ba8a016a_a1d717be","line":17,"in_reply_to":"ba8a016a_ed58d758","updated":"2015-11-17 16:59:05.000000000","message":"Done","commit_id":"083ed57e03af672359c2ec51d45034aaacc67d0f"}]}
