)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"472a887ab9e79eee99e685ac569704759375c3f3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"default domain id has been set (different from default)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note: This is implementing the following user story:"},{"line_number":16,"context_line":"62-keystone-v3-implement-support-for-default-domain-if-no-domain"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0ceb25fad02153915a6e5648103b012fe32e9c90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"da20952f_83f23d99","line":16,"updated":"2015-09-02 19:12:06.000000000","message":"Is this a blueprint? How can we reference this user story?","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"5241f56e63a70fc93f04c5cab7487a59998b700b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"default domain id has been set (different from default)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note: This is implementing the following user story:"},{"line_number":16,"context_line":"62-keystone-v3-implement-support-for-default-domain-if-no-domain"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0ceb25fad02153915a6e5648103b012fe32e9c90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"da20952f_9e0374b8","line":16,"in_reply_to":"da20952f_83f23d99","updated":"2015-09-02 19:25:44.000000000","message":"https://review.openstack.org/#/c/219127/\n\nWe need to update the parts of the v3 api spec that talk about how Keystone domain scoped resources are named.","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ea3bef79fb5cbdf2676170ee4fe32434f16a59eb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"default domain id has been set (different from default)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note: This is implementing the following user story:"},{"line_number":16,"context_line":"62-keystone-v3-implement-support-for-default-domain-if-no-domain"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0ceb25fad02153915a6e5648103b012fe32e9c90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"da20952f_8b31b45c","line":16,"in_reply_to":"da20952f_92efb2b0","updated":"2015-09-04 02:13:24.000000000","message":"Done","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"21f4e89565198360603e7f5527e772ee04019925","unresolved":false,"context_lines":[{"line_number":13,"context_line":"default domain id has been set (different from default)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note: This is implementing the following user story:"},{"line_number":16,"context_line":"62-keystone-v3-implement-support-for-default-domain-if-no-domain"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0ceb25fad02153915a6e5648103b012fe32e9c90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"da20952f_92efb2b0","line":16,"in_reply_to":"da20952f_94db551b","updated":"2015-09-03 19:31:48.000000000","message":"This should be referred to as\n\n blueprint api-v3-support\n\nwhich will automatically link to the blueprint in launchpad. 62-keystone-v3-implement-support-for-default-domain-if-no-domain doesn\u0027t have any public meaning that I can find.","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5af37623b506e73b5761e0b075291dc853d85e40","unresolved":false,"context_lines":[{"line_number":13,"context_line":"default domain id has been set (different from default)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note: This is implementing the following user story:"},{"line_number":16,"context_line":"62-keystone-v3-implement-support-for-default-domain-if-no-domain"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I0ceb25fad02153915a6e5648103b012fe32e9c90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"da20952f_94db551b","line":16,"in_reply_to":"da20952f_9e0374b8","updated":"2015-09-02 20:38:17.000000000","message":"In the todo list, thanks","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"}],"lib/puppet/provider/keystone.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"9e3d0d0f196d5415f3d507c2574142ab54132018","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  #   anything but default \u0027default\u0027."},{"line_number":54,"context_line":"  # Openstack N+ releases:"},{"line_number":55,"context_line":"  #   Fails if a name is used without \u0027::domain\u0027."},{"line_number":56,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":57,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":58,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_bbfe7c36","line":56,"updated":"2015-08-28 02:14:27.000000000","message":"I think it would be better if the value passed in here is the full resource name, to aid with the warning message below.  The method will call self.class.name_and_domain to check if there is a \u0027::domain\u0027 part of the resource name.","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"db0071922e8553f98e52a8853a6c5087c72790b7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  #   anything but default \u0027default\u0027."},{"line_number":54,"context_line":"  # Openstack N+ releases:"},{"line_number":55,"context_line":"  #   Fails if a name is used without \u0027::domain\u0027."},{"line_number":56,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":57,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":58,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_9dd5a7ba","line":56,"in_reply_to":"da20952f_bbfe7c36","updated":"2015-08-28 06:09:47.000000000","message":"Agreed\n\nThe warning should move up the food chain (go closer to the caller), where the name resource would be available.\n\nRevisiting...","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"9e3d0d0f196d5415f3d507c2574142ab54132018","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":57,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":58,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"},{"line_number":60,"context_line":"        return true"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_1b320811","line":59,"updated":"2015-08-28 02:14:27.000000000","message":"Then you can use the resource name in the warning:\n\nIn Liberty, not providing a \u0027::domain\u0027 name in the resource name for #{resource_name} when the default_domain_id is not \u0027default\u0027\n is deprecated\n\nIt may help people track down which resource names are not qualified with \u0027::domain\u0027.","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"db0071922e8553f98e52a8853a6c5087c72790b7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":57,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":58,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"},{"line_number":60,"context_line":"        return true"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_5dd86fef","line":59,"in_reply_to":"da20952f_1b320811","updated":"2015-08-28 06:09:47.000000000","message":"Revisiting...","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"9e3d0d0f196d5415f3d507c2574142ab54132018","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"},{"line_number":60,"context_line":"        return true"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":"    end"},{"line_number":63,"context_line":"  end"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  def self.domain_hash"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_fbd4f4bd","line":62,"updated":"2015-08-28 02:14:27.000000000","message":"by default is `true` returned?  If so, then ok","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"db0071922e8553f98e52a8853a6c5087c72790b7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        warning(\"In Liberty, not providing a domain name when the default_domain_id is not \u0027default\u0027 is deprecated\")"},{"line_number":60,"context_line":"        return true"},{"line_number":61,"context_line":"      end"},{"line_number":62,"context_line":"    end"},{"line_number":63,"context_line":"  end"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"  def self.domain_hash"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"da20952f_fd4f03bb","line":62,"in_reply_to":"da20952f_fbd4f4bd","updated":"2015-08-28 06:09:47.000000000","message":"Actually if nothing is explicitly returned it\u0027s nil which is false.\n\nI\u0027m revisiting the method anyway...","commit_id":"67c8a90ffd5e5322d77c3c8150c9cf11cfde631d"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e39bfcec563641a9c69657b70a51f61124c0e9d0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  def self.default_domain_id"},{"line_number":38,"context_line":"    unless @default_domain_id"},{"line_number":39,"context_line":"      if keystone_file \u0026\u0026 keystone_file[\u0027identity\u0027] \u0026\u0026 keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027]"},{"line_number":40,"context_line":"        @default_domain_id \u003d \"#{keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027].strip}\""},{"line_number":41,"context_line":"      else"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_765129d8","line":38,"updated":"2015-09-01 17:12:22.000000000","message":"This change is unrelated and should be in a separate commit","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"03cd62404db84854b9dfb6bdc013a7ab9a9efaa8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  def self.default_domain_id"},{"line_number":38,"context_line":"    unless @default_domain_id"},{"line_number":39,"context_line":"      if keystone_file \u0026\u0026 keystone_file[\u0027identity\u0027] \u0026\u0026 keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027]"},{"line_number":40,"context_line":"        @default_domain_id \u003d \"#{keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027].strip}\""},{"line_number":41,"context_line":"      else"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_e950ea60","line":38,"in_reply_to":"da20952f_765129d8","updated":"2015-09-01 23:04:07.000000000","message":"I understand and tend to agree, this is a cosmetic change because we don\u0027t have much bandwidth for housekeeping","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"461ae5b41dfe05aa4b6722e452bcfcf0e9e1af62","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  end"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"  def self.default_domain_id"},{"line_number":38,"context_line":"    unless @default_domain_id"},{"line_number":39,"context_line":"      if keystone_file \u0026\u0026 keystone_file[\u0027identity\u0027] \u0026\u0026 keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027]"},{"line_number":40,"context_line":"        @default_domain_id \u003d \"#{keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027].strip}\""},{"line_number":41,"context_line":"      else"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_ba5d524a","line":38,"in_reply_to":"da20952f_e950ea60","updated":"2015-09-02 00:20:19.000000000","message":"I understand the priority, so is the need to keep it clear therefore I\u0027ll discard those changes.","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e39bfcec563641a9c69657b70a51f61124c0e9d0","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":49,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":50,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":51,"context_line":"        return false"},{"line_number":52,"context_line":"      end"},{"line_number":53,"context_line":"    end"},{"line_number":54,"context_line":"    return true"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_d63fd585","line":51,"updated":"2015-09-01 17:12:22.000000000","message":"I think this method should be changed:\n- It should accept the full resource name, not just the domain name part.\n- It should print the warning message.\n\nPutting the warning message here saves us from having to put the same warning message in every single place this is called from.\n\nIn the future, we are going to throw an exception when there is no domain.  We do not want to have to change dozens of locations in dozens of files to do this.  We can just do it here, in this one place.\n\nHaving the full resource name here allows us to construct a useful message for the warning/exception.","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"03cd62404db84854b9dfb6bdc013a7ab9a9efaa8","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  def self.domain_check?(domain_name)"},{"line_number":49,"context_line":"    unless domain_name \u0026\u0026 domain_name !\u003d \u0027\u0027"},{"line_number":50,"context_line":"      unless default_domain_id \u003d\u003d \u0027default\u0027"},{"line_number":51,"context_line":"        return false"},{"line_number":52,"context_line":"      end"},{"line_number":53,"context_line":"    end"},{"line_number":54,"context_line":"    return true"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_642ac180","line":51,"in_reply_to":"da20952f_d63fd585","updated":"2015-09-01 23:04:07.000000000","message":"The reason I moved the warning message back to the caller is because it makes sense in term of method role. Let me add an intermediate method so we effectively have lighter maintenance on the providers","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e39bfcec563641a9c69657b70a51f61124c0e9d0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def self.domain_hash"},{"line_number":58,"context_line":"    unless @domain_hash"},{"line_number":59,"context_line":"      list \u003d request(\u0027domain\u0027, \u0027list\u0027)"},{"line_number":60,"context_line":"      @domain_hash \u003d Hash[list.collect{|domain| [domain[:id], domain[:name]]}]"},{"line_number":61,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_165d4dec","line":58,"updated":"2015-09-01 17:12:22.000000000","message":"This change is unrelated and should be in a separate commit","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"03cd62404db84854b9dfb6bdc013a7ab9a9efaa8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def self.domain_hash"},{"line_number":58,"context_line":"    unless @domain_hash"},{"line_number":59,"context_line":"      list \u003d request(\u0027domain\u0027, \u0027list\u0027)"},{"line_number":60,"context_line":"      @domain_hash \u003d Hash[list.collect{|domain| [domain[:id], domain[:name]]}]"},{"line_number":61,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_69993a1f","line":58,"in_reply_to":"da20952f_165d4dec","updated":"2015-09-01 23:04:07.000000000","message":"Same as above.","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"461ae5b41dfe05aa4b6722e452bcfcf0e9e1af62","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  end"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"  def self.domain_hash"},{"line_number":58,"context_line":"    unless @domain_hash"},{"line_number":59,"context_line":"      list \u003d request(\u0027domain\u0027, \u0027list\u0027)"},{"line_number":60,"context_line":"      @domain_hash \u003d Hash[list.collect{|domain| [domain[:id], domain[:name]]}]"},{"line_number":61,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"da20952f_ba2472c6","line":58,"in_reply_to":"da20952f_69993a1f","updated":"2015-09-02 00:20:19.000000000","message":"I understand the priority, so is the need to keep it clear therefore I\u0027ll discard those changes.","commit_id":"fedf1db47a77024106f85eed9cb52e1780aa3bb0"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"6a4af014be5b470730b1d1fb3db3903f5a19f8cf","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise error unless domain_id"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":160,"context_line":"      name"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"da20952f_00bb910f","line":157,"updated":"2015-09-02 13:53:49.000000000","message":"where is `error` defined?","commit_id":"c874e0a73e3dea5b8fad31c62e2c803889f13e36"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"60a132f8982c731beaf0ce48bde7b850c25c97d4","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise error unless domain_id"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":160,"context_line":"      name"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"da20952f_dbe4acad","line":157,"in_reply_to":"da20952f_00bb910f","updated":"2015-09-02 14:23:36.000000000","message":"Not yet! :)","commit_id":"c874e0a73e3dea5b8fad31c62e2c803889f13e36"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"472a887ab9e79eee99e685ac569704759375c3f3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    ret"},{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_c3db55ec","line":156,"updated":"2015-09-02 19:12:06.000000000","message":"nit - the name of this method doesn\u0027t make it very clear to me what it\u0027s doing, would prefer something like get_name_and_domain","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"2e33ee1065e4f70c6c0de9c42e84bf2980949509","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    ret"},{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_c4003269","line":156,"in_reply_to":"da20952f_3485a906","updated":"2015-09-03 00:25:52.000000000","message":"Thinking about this, to be completely meaningful the method would have to be something like:  add_domain_name_if_not_default_domain\nBut let\u0027s keep in mind this is only for a short time because after Mitaka the domain name will be enforced anyway making that method useless.","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"5241f56e63a70fc93f04c5cab7487a59998b700b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    ret"},{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_de200c4c","line":156,"in_reply_to":"da20952f_c3db55ec","updated":"2015-09-02 19:25:44.000000000","message":"or \"make_name_with_domain\" or something like that","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5af37623b506e73b5761e0b075291dc853d85e40","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    ret"},{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_3485a906","line":156,"in_reply_to":"da20952f_c3db55ec","updated":"2015-09-02 20:38:17.000000000","message":"sure","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5af37623b506e73b5761e0b075291dc853d85e40","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    ret"},{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_548ffd22","line":156,"in_reply_to":"da20952f_de200c4c","updated":"2015-09-02 20:38:17.000000000","message":"either way","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"02e66678ba2056b8317369cc97daa777e33c4728","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":160,"context_line":"      name"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_e440ec09","line":157,"updated":"2015-09-02 15:31:32.000000000","message":"\"Missing domain id for resource name #{name}\"","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"5af37623b506e73b5761e0b075291dc853d85e40","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  end"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"  def self.name_set_domain(name, domain_id)"},{"line_number":157,"context_line":"    raise(Puppet::Error, \u0027Missing domain id\u0027) if domain_id.nil? || domain_id.empty?"},{"line_number":158,"context_line":"    domain_name \u003d domain_name_from_id(domain_id)"},{"line_number":159,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":160,"context_line":"      name"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"da20952f_9476f53c","line":157,"in_reply_to":"da20952f_e440ec09","updated":"2015-09-02 20:38:17.000000000","message":"Done","commit_id":"935e3925024ae6dcba56ecf654643b696666550a"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"2bed9f76cd8a97f8b1f18decc3bb1dbfa06ea2b3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  end"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  def self.fetch_domain(domain)"},{"line_number":83,"context_line":"    request(\u0027domain\u0027, \u0027show\u0027, domain) rescue nil"},{"line_number":84,"context_line":"  end"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  def self.get_admin_endpoint"}],"source_content_type":"text/x-ruby","patch_set":18,"id":"ba15a1d1_d8de373d","line":83,"updated":"2015-09-18 15:50:47.000000000","message":"Either this should do something meaningful with the exception if possible, or just call request() and let the caller deal with any exception.","commit_id":"d9f7d1216ffe37936244ece87f2c8f20033b1167"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"9b22b97098e41e399bd8b573d213aeffe03914ff","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  end"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  def self.fetch_domain(domain)"},{"line_number":83,"context_line":"    request(\u0027domain\u0027, \u0027show\u0027, domain) rescue nil"},{"line_number":84,"context_line":"  end"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  def self.get_admin_endpoint"}],"source_content_type":"text/x-ruby","patch_set":18,"id":"ba15a1d1_f11c5515","line":83,"in_reply_to":"ba15a1d1_d8de373d","updated":"2015-09-21 02:27:14.000000000","message":"Done","commit_id":"d9f7d1216ffe37936244ece87f2c8f20033b1167"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"3c38be60c6a5a8b7beac09891c8d3fafae8d8112","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    request(\u0027domain\u0027, \u0027show\u0027, domain)"},{"line_number":84,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":85,"context_line":"    raise e unless e.message \u003d~ /No domain with a name or ID/"},{"line_number":86,"context_line":"  end"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  def self.get_admin_endpoint"},{"line_number":89,"context_line":"    endpoint \u003d nil"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"ba15a1d1_2f11f65d","line":86,"updated":"2015-09-21 14:45:19.000000000","message":"so if request raises an exception that matches \"No domain with a name or ID\" (are you sure that\u0027s the right message?  Doesn\u0027t look right to me), this method will return `nil`.  Correct?  If so, the handling below looks wrong.\n\nWhy not just raise the error?  That is, why does fetch_domain have to catch this error?  It seems to me that if there is no such domain, then the author of the manifest has done something wrong and should get an exception.  That is, the author of the manifest has not provided a required `keystone_domain` resource.","commit_id":"23ee98f26243ae39ccfaf3ea668493d54bb2471b"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"249de194fdf8d2f758f75d95a976500859cc0676","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    request(\u0027domain\u0027, \u0027show\u0027, domain)"},{"line_number":84,"context_line":"  rescue Puppet::ExecutionFailure \u003d\u003e e"},{"line_number":85,"context_line":"    raise e unless e.message \u003d~ /No domain with a name or ID/"},{"line_number":86,"context_line":"  end"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  def self.get_admin_endpoint"},{"line_number":89,"context_line":"    endpoint \u003d nil"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"ba15a1d1_a78e71ce","line":86,"in_reply_to":"ba15a1d1_2f11f65d","updated":"2015-09-22 00:27:30.000000000","message":"The role of #fetch_domain is to retrieve a domain, if no such domain exists then it effectively returns nil. \n\nThe caller to deal with the response.\n\nThis function is generic and is not called directly by the author of the manifest.\nThey are cases where objects are referred somewhere else and later on the object is deleted but the referred one. In such cases we need to handle a non-existent object. I have a perfect example with trust.","commit_id":"23ee98f26243ae39ccfaf3ea668493d54bb2471b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"3c38be60c6a5a8b7beac09891c8d3fafae8d8112","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    end"},{"line_number":178,"context_line":"    domain \u003d fetch_domain(domain_name)"},{"line_number":179,"context_line":"    domain_id \u003d domain ? domain[:id] : nil"},{"line_number":180,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":181,"context_line":"      name"},{"line_number":182,"context_line":"    else"},{"line_number":183,"context_line":"      \"#{name}::#{domain_name}\""}],"source_content_type":"text/x-ruby","patch_set":20,"id":"ba15a1d1_4a39b840","line":180,"updated":"2015-09-21 14:45:19.000000000","message":"For example, if domain_name is \u0027no_such_domain\u0027, then fetch_domain() will return nil.\n\nIf default_domain_id is not set, then default_domain_id will return nil.  But in the case of default_domain_id, nil means the domain name is \u0027Default\u0027.\n\nThis means \u0027no_such_domain\u0027 \u003d\u003d \u0027Default\u0027.  I don\u0027t think that\u0027s right.\n\nIf default_domain_id is set, the the comparison will fail, which means name will be \"name::no_such_domain\".  I don\u0027t think that is right since the domain does not exist.","commit_id":"23ee98f26243ae39ccfaf3ea668493d54bb2471b"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"249de194fdf8d2f758f75d95a976500859cc0676","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    end"},{"line_number":178,"context_line":"    domain \u003d fetch_domain(domain_name)"},{"line_number":179,"context_line":"    domain_id \u003d domain ? domain[:id] : nil"},{"line_number":180,"context_line":"    if domain_id \u003d\u003d default_domain_id"},{"line_number":181,"context_line":"      name"},{"line_number":182,"context_line":"    else"},{"line_number":183,"context_line":"      \"#{name}::#{domain_name}\""}],"source_content_type":"text/x-ruby","patch_set":20,"id":"ba15a1d1_073b9dec","line":180,"in_reply_to":"ba15a1d1_4a39b840","updated":"2015-09-22 00:27:30.000000000","message":"Yes, I realized that afterwards.\nAnother conditional is needed.","commit_id":"23ee98f26243ae39ccfaf3ea668493d54bb2471b"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"a672acd35763b0268d3e19fa6dfcdf37ac9b81d3","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    end"},{"line_number":107,"context_line":"    domain \u003d fetch_domain(domain_name)"},{"line_number":108,"context_line":"    if domain.nil?"},{"line_number":109,"context_line":"      raise(Puppet::Error, \"No domain #{domain_name} found\")"},{"line_number":110,"context_line":"    end"},{"line_number":111,"context_line":"    if domain[:id] \u003d\u003d default_domain_id"},{"line_number":112,"context_line":"      name"}],"source_content_type":"text/x-ruby","patch_set":21,"id":"ba15a1d1_7a1dfc60","line":109,"updated":"2015-09-23 14:16:51.000000000","message":"Favor if modifier for single line body. https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier","commit_id":"afbebee98ca51b3eb247c03d0b71fa14e531a563"}],"spec/unit/provider/keystone_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"6a4af014be5b470730b1d1fb3db3903f5a19f8cf","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    end"},{"line_number":60,"context_line":"  end"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  describe \u0027#name_set_domain\u0027 do"},{"line_number":63,"context_line":"    it \u0027should return the name only when the domain id is default domain\u0027 do"},{"line_number":64,"context_line":"      klass.expects(:openstack)"},{"line_number":65,"context_line":"           .with(\u0027domain\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"da20952f_a05d05ee","line":62,"updated":"2015-09-02 13:53:49.000000000","message":"should test the `raise error` condition too","commit_id":"c874e0a73e3dea5b8fad31c62e2c803889f13e36"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"60a132f8982c731beaf0ce48bde7b850c25c97d4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    end"},{"line_number":60,"context_line":"  end"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"  describe \u0027#name_set_domain\u0027 do"},{"line_number":63,"context_line":"    it \u0027should return the name only when the domain id is default domain\u0027 do"},{"line_number":64,"context_line":"      klass.expects(:openstack)"},{"line_number":65,"context_line":"           .with(\u0027domain\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, [])"}],"source_content_type":"text/x-ruby","patch_set":8,"id":"da20952f_dbfb4c46","line":62,"in_reply_to":"da20952f_a05d05ee","updated":"2015-09-02 14:23:36.000000000","message":"Good idea.","commit_id":"c874e0a73e3dea5b8fad31c62e2c803889f13e36"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"4ff28c95568c709da6d8382172d32aba63490999","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  describe \u0027#domain_check\u0027 do"},{"line_number":46,"context_line":"    it \u0027should not warn when domain name is provided\u0027 do"},{"line_number":47,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027domain\u0027)"},{"line_number":48,"context_line":"    end"},{"line_number":49,"context_line":"    it \u0027should not warn when domain name is empty and default_domain_id is not set\u0027 do"},{"line_number":50,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"da20952f_864d2274","line":47,"updated":"2015-09-11 10:22:28.000000000","message":"There is no test here.  Something along the line of:\n\n expect(klass.domain_check(\u0027name\u0027, \u0027domain\u0027)).to be_nil","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"89a64d0bb6e6c418a4ac133ec0a128bdd7ed3281","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  describe \u0027#domain_check\u0027 do"},{"line_number":46,"context_line":"    it \u0027should not warn when domain name is provided\u0027 do"},{"line_number":47,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027domain\u0027)"},{"line_number":48,"context_line":"    end"},{"line_number":49,"context_line":"    it \u0027should not warn when domain name is empty and default_domain_id is not set\u0027 do"},{"line_number":50,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027\u0027)"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"ba15a1d1_8c7bbbbd","line":47,"in_reply_to":"da20952f_864d2274","updated":"2015-09-18 06:19:53.000000000","message":"Done","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"4ff28c95568c709da6d8382172d32aba63490999","unresolved":false,"context_lines":[{"line_number":47,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027domain\u0027)"},{"line_number":48,"context_line":"    end"},{"line_number":49,"context_line":"    it \u0027should not warn when domain name is empty and default_domain_id is not set\u0027 do"},{"line_number":50,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027\u0027)"},{"line_number":51,"context_line":"    end"},{"line_number":52,"context_line":"    it \u0027should warn when domain name is empty and default_domain_id is set\u0027 do"},{"line_number":53,"context_line":"      mock \u003d {\u0027identity\u0027 \u003d\u003e {\u0027default_domain_id\u0027 \u003d\u003e \u0027not_default\u0027}}"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"da20952f_66580e32","line":50,"updated":"2015-09-11 10:22:28.000000000","message":"The same.","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"89a64d0bb6e6c418a4ac133ec0a128bdd7ed3281","unresolved":false,"context_lines":[{"line_number":47,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027domain\u0027)"},{"line_number":48,"context_line":"    end"},{"line_number":49,"context_line":"    it \u0027should not warn when domain name is empty and default_domain_id is not set\u0027 do"},{"line_number":50,"context_line":"      klass.domain_check(\u0027name\u0027, \u0027\u0027)"},{"line_number":51,"context_line":"    end"},{"line_number":52,"context_line":"    it \u0027should warn when domain name is empty and default_domain_id is set\u0027 do"},{"line_number":53,"context_line":"      mock \u003d {\u0027identity\u0027 \u003d\u003e {\u0027default_domain_id\u0027 \u003d\u003e \u0027not_default\u0027}}"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"ba15a1d1_4c504332","line":50,"in_reply_to":"da20952f_66580e32","updated":"2015-09-18 06:19:53.000000000","message":"Done","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"}]}
