)]}'
{"lib/puppet/provider/keystone_user/openstack.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"8d474a9d5bc2bc2900fe5204a9187c7f52eda5f2","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_411bca80","line":208,"updated":"2015-09-02 15:29:02.000000000","message":"Why are you changing this to not use introspection?  The tenant_name must already be a valid name of a keystone_tenant resource, and the resource must already exist in the catalog (autorequire in types/keystone_user.rb).","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"2736b764d02c69e6d5a5b09ef64e298e23a33ed6","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_9235a4dc","line":208,"in_reply_to":"da20952f_0f63ab42","updated":"2015-09-02 21:41:06.000000000","message":"That\u0027s right self.instances should be call once per class.\nOk granted the indirection is more efficient.\n\nBut again this wasn\u0027t the reason for going away from it, the issue was passing the test and I kept getting nil.\n\n\u003e The spec should be adding the keystone_tenant resource.\n\nDon\u0027t understand can you please detail?","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"b448c8b912bb8c362b9f914c1f995e83bbdf84de","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_69201f4a","line":208,"in_reply_to":"da20952f_3ed6dff1","updated":"2015-09-02 23:50:35.000000000","message":"Ok, the reason was because keystone_tenant indirection returned :absent when searching for \"foo::bar_domain\", had to adjust some values in the test.","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"a6b58e1214883ce542e7658822f65e4965e12cb9","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_afaabf83","line":208,"in_reply_to":"da20952f_411bca80","updated":"2015-09-02 21:24:17.000000000","message":"Because keystone_user unit test was failing after the change.\nI\u0027m not against indirection but couldn\u0027t get it working with it.\nAlso it seems to me (but again this wasn\u0027t the driver for no using indirection) that a one call to OSC using show is less expensive then to go through keystone_tenant self.instances which is going to do a OSC call \u0027list\u0027 plus the subsequent one(s) such as \u0027domain_name_from_id\u0027 (more OSC calls).","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"10c24522a98178212eaac86e92c317dc7038d237","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_d559c636","line":208,"in_reply_to":"da20952f_9235a4dc","updated":"2015-09-02 22:06:36.000000000","message":"This is what broke it: https://review.openstack.org/#/c/218059/12/lib/puppet/provider/keystone_user/openstack.rb::\n\n    tenant_name \u003d Util.split_domain(tenant_name)[0]\n    project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{tenant_name}\")[:id]\n\nYou can\u0027t do that.  In order to use introspection, you must use the exact same name passed in by the user - you cannot strip off the domain part.  For example::\n\n    keystone_tenant { \u0027foo_tenant::foo_domain\u0027: ... }\n    keystone_user { \u0027foo_user::foo_domain\u0027:\n      tenant \u003d\u003e \u0027foo_tenant::foo_domain\u0027,\n    }\n\nIn this case, since there is a keystone_tenant resource named \u0027foo_tenant::foo_domain\u0027, you must pass in this exact same name as the tenant parameter of keystone_user, and you must use that exact same name with introspection.\n\nso just get rid of the::\n\n    tenant_name \u003d Util.split_domain(tenant_name)[0]\n\nline and just use the original code.","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"62291ca0861b506e4bdd65866165c8c39f91644b","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_0f63ab42","line":208,"in_reply_to":"da20952f_afaabf83","updated":"2015-09-02 21:32:03.000000000","message":"\u003e Because keystone_user unit test was failing after the change. I\u0027m not against indirection but couldn\u0027t get it working with it.\n\nThe spec should be adding the keystone_tenant resource.\n\n\u003e Also it seems to me (but again this wasn\u0027t the driver for no using indirection) that a one call to OSC using show is less expensive then to go through keystone_tenant self.instances which is going to do a OSC call \u0027list\u0027 plus the subsequent one(s) such as \u0027domain_name_from_id\u0027 (more OSC calls).\n\nThe code was written that way on the assumption that self.instances would be called once and only once per class.  If that is not the case, we should consider rewriting a lot of code.\n\ndomain_name_from_id only calls osc once per process, so it is already optimized for this case.","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"106dd8fae4d275e12ce5f967fdcbd4f9f35a1a7c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    tenant_name, domain_name \u003d Util.split_domain(tenant_name)"},{"line_number":206,"context_line":"    properties \u003d [tenant_name]"},{"line_number":207,"context_line":"    properties \u003c\u003c \u0027--domain\u0027 \u003c\u003c domain_name if domain_name"},{"line_number":208,"context_line":"    project_id \u003d self.class.request(\u0027project\u0027, \u0027show\u0027, properties)[:id]"},{"line_number":209,"context_line":"    find_project_for_user(tenant_name, project_id)"},{"line_number":210,"context_line":"  end"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":16,"id":"da20952f_3ed6dff1","line":208,"in_reply_to":"da20952f_d559c636","updated":"2015-09-02 23:32:48.000000000","message":"Well this why I had to do change here because the original code fails:  \n  \n----------------------------------------------------------------------------------------------------\nPuppet::Type::Keystone_user::ProviderOpenstack\n  when managing a user\n    behaves like authenticated with environment variables\n...(snip)...\n  #tenant\n        gets the tenant with default backend (FAILED - 1)\n...(snip)...\nFailures:\n\n  1) Puppet::Type::Keystone_user::ProviderOpenstack when managing a user behaves like authenticated with environment variables #tenant gets the tenant with default backend\n     Failure/Error: expect(tenant).to eq(\u0027foo\u0027)\n       \n       expected: \"foo\"\n            got: nil\n       \n       (compared using \u003d\u003d)\n     Shared Example Group: \"authenticated with environment variables\" called from ./spec/unit/provider/keystone_user/openstack_spec.rb:100\n     # ./spec/unit/provider/keystone_user/openstack_spec.rb:184:in `block (5 levels) in \u003ctop (required)\u003e\u0027\n\nFinished in 0.15096 seconds (files took 0.87139 seconds to load)\n18 examples, 1 failure\n----------------------------------------------------------------------------------------------------\n\nNow looking at it with fresher morning eyes...","commit_id":"a5b9c9d07d03fbe701deeedf68e078cb04953d1c"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      # DEPRECATED - To be removed in next release (Liberty)"},{"line_number":41,"context_line":"      # https://bugs.launchpad.net/puppet-keystone/+bug/1472437"},{"line_number":42,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{resource[:tenant]}\")[:id]"},{"line_number":43,"context_line":"      raise(Puppet::Error, \u0027No project found!\u0027) if project_id  \u003d\u003d :absent"},{"line_number":44,"context_line":"      set_project(resource[:tenant], project_id)"},{"line_number":45,"context_line":"      @property_hash[:tenant] \u003d resource[:tenant]"},{"line_number":46,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_c7392a41","line":43,"updated":"2015-09-09 15:06:38.000000000","message":"The error message should include the name of the project and user e.g.\n\n\"When creating user #{resource[:name]} the specified project #{resource[:tenant]} was not found.\"","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      # DEPRECATED - To be removed in next release (Liberty)"},{"line_number":41,"context_line":"      # https://bugs.launchpad.net/puppet-keystone/+bug/1472437"},{"line_number":42,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{resource[:tenant]}\")[:id]"},{"line_number":43,"context_line":"      raise(Puppet::Error, \u0027No project found!\u0027) if project_id  \u003d\u003d :absent"},{"line_number":44,"context_line":"      set_project(resource[:tenant], project_id)"},{"line_number":45,"context_line":"      @property_hash[:tenant] \u003d resource[:tenant]"},{"line_number":46,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_58ac068c","line":43,"in_reply_to":"da20952f_c7392a41","updated":"2015-09-10 02:37:45.000000000","message":"Actually fetching the project is redundant with set_project code, this bit should disappear.","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    # DEPRECATED - To be removed in next release (Liberty)"},{"line_number":166,"context_line":"    # https://bugs.launchpad.net/puppet-keystone/+bug/1472437"},{"line_number":167,"context_line":"    unless project_id"},{"line_number":168,"context_line":"      #request(\u0027project\u0027, \u0027show\u0027, [newproject,])"},{"line_number":169,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{newproject}\")[:id]"},{"line_number":170,"context_line":"    end"},{"line_number":171,"context_line":"    raise(Puppet::Error, \u0027Not project found\u0027) if project_id  \u003d\u003d :absent"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_277826f8","line":168,"updated":"2015-09-09 15:06:38.000000000","message":"Just a reminder that this request will need the project name and domain","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":165,"context_line":"    # DEPRECATED - To be removed in next release (Liberty)"},{"line_number":166,"context_line":"    # https://bugs.launchpad.net/puppet-keystone/+bug/1472437"},{"line_number":167,"context_line":"    unless project_id"},{"line_number":168,"context_line":"      #request(\u0027project\u0027, \u0027show\u0027, [newproject,])"},{"line_number":169,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{newproject}\")[:id]"},{"line_number":170,"context_line":"    end"},{"line_number":171,"context_line":"    raise(Puppet::Error, \u0027Not project found\u0027) if project_id  \u003d\u003d :absent"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_d897b638","line":168,"in_reply_to":"da20952f_277826f8","updated":"2015-09-10 02:37:45.000000000","message":"This comment is not supposed to be here (yet).\nTo be removed as the indirection removal to be a separate patch.","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      #request(\u0027project\u0027, \u0027show\u0027, [newproject,])"},{"line_number":169,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{newproject}\")[:id]"},{"line_number":170,"context_line":"    end"},{"line_number":171,"context_line":"    raise(Puppet::Error, \u0027Not project found\u0027) if project_id  \u003d\u003d :absent"},{"line_number":172,"context_line":"    # Currently the only way to assign a user to a tenant not using user-create"},{"line_number":173,"context_line":"    # is to use role-add - this means we also need a role - there is usual"},{"line_number":174,"context_line":"    # a default role called _member_ which can be used for this purpose.  What"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_271106b0","line":171,"updated":"2015-09-09 15:06:38.000000000","message":"The error message should include the name of the project and user e.g.\n\n\"When creating user #{resource[:name]} the specified project #{resource[:tenant]} was not found.\"","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":168,"context_line":"      #request(\u0027project\u0027, \u0027show\u0027, [newproject,])"},{"line_number":169,"context_line":"      project_id \u003d Puppet::Resource.indirection.find(\"Keystone_tenant/#{newproject}\")[:id]"},{"line_number":170,"context_line":"    end"},{"line_number":171,"context_line":"    raise(Puppet::Error, \u0027Not project found\u0027) if project_id  \u003d\u003d :absent"},{"line_number":172,"context_line":"    # Currently the only way to assign a user to a tenant not using user-create"},{"line_number":173,"context_line":"    # is to use role-add - this means we also need a role - there is usual"},{"line_number":174,"context_line":"    # a default role called _member_ which can be used for this purpose.  What"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_b89d2259","line":171,"in_reply_to":"da20952f_271106b0","updated":"2015-09-10 02:37:45.000000000","message":"Done","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"}],"lib/puppet/type/keystone_tenant.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"f9d67efe4151f5fb09763e78416eb91d91b5d53d","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Ongoing deprecation warning ending after Mitaka"},{"line_number":52,"context_line":"    # http://specs.openstack.org/openstack/puppet-openstack-specs/specs/kilo/api-v3-support.html"},{"line_number":53,"context_line":"    unless self.class::ProviderOpenstack.domain_check?(domain_name)"},{"line_number":54,"context_line":"      warning(\"In Liberty, not providing a domain name (::domain) for a resource name (#{self[:name]}) is deprecated when the default_domain_id is not \u0027default\u0027 \")"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":7,"id":"da20952f_56198521","line":53,"updated":"2015-09-01 17:14:35.000000000","message":"domain_check? should take the full resource name, and should print/raise the appropriate message.","commit_id":"3aa3da4b71855d6c8afcd42a4fc181392c2485f3"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ea57b4d7ae313aaa634f407a4a9f0bbd363acee4","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Ongoing deprecation warning ending after Mitaka"},{"line_number":52,"context_line":"    # http://specs.openstack.org/openstack/puppet-openstack-specs/specs/kilo/api-v3-support.html"},{"line_number":53,"context_line":"    unless self.class::ProviderOpenstack.domain_check?(domain_name)"},{"line_number":54,"context_line":"      warning(\"In Liberty, not providing a domain name (::domain) for a resource name (#{self[:name]}) is deprecated when the default_domain_id is not \u0027default\u0027 \")"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":7,"id":"da20952f_e4ab31d5","line":53,"in_reply_to":"da20952f_56198521","updated":"2015-09-01 23:05:52.000000000","message":"Done","commit_id":"3aa3da4b71855d6c8afcd42a4fc181392c2485f3"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  end"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":48,"context_line":"    # use the domain parameter if given, or the one from name if any"},{"line_number":49,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":50,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":51,"context_line":"    domain_name"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_bd5c55f1","line":48,"updated":"2015-09-09 10:47:21.000000000","message":"Better use self.name_and_domain here as you pass through the same processing as in the provider.  You can reach it from the type like this :\n\n  provider.class.name_and_domain(self[:name])[1]","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  end"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":48,"context_line":"    # use the domain parameter if given, or the one from name if any"},{"line_number":49,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":50,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":51,"context_line":"    domain_name"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_acb424d4","line":48,"in_reply_to":"da20952f_bd5c55f1","updated":"2015-09-09 11:25:53.000000000","message":"Unfortunately using name_and_domain won\u0027t work because that would set up the domain part. The purpose here, at least for the deprecation period, is to warn when there is no domain.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":48,"context_line":"    # use the domain parameter if given, or the one from name if any"},{"line_number":49,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":50,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":51,"context_line":"    domain_name"},{"line_number":52,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_7d247d5f","line":49,"updated":"2015-09-09 10:47:21.000000000","message":"You can use\n\n    provider.class.domain_check(...\n\ninstead","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":48,"context_line":"    # use the domain parameter if given, or the one from name if any"},{"line_number":49,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":50,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":51,"context_line":"    domain_name"},{"line_number":52,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_cc77189e","line":49,"in_reply_to":"da20952f_7d247d5f","updated":"2015-09-09 11:25:53.000000000","message":"Easier, done, thanks.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"}],"lib/puppet/type/keystone_user.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  end"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":99,"context_line":"    # use the domain parameter if given or the one from name if any"},{"line_number":100,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":101,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":102,"context_line":"    domain_name"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_fdc64d67","line":99,"updated":"2015-09-09 10:47:21.000000000","message":"The same, better use name_and_domain.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  end"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":99,"context_line":"    # use the domain parameter if given or the one from name if any"},{"line_number":100,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":101,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":102,"context_line":"    domain_name"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_0cd750ee","line":99,"in_reply_to":"da20952f_fdc64d67","updated":"2015-09-09 11:25:53.000000000","message":"Same, can\u0027t do that.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":99,"context_line":"    # use the domain parameter if given or the one from name if any"},{"line_number":100,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":101,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":102,"context_line":"    domain_name"},{"line_number":103,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_5d917951","line":100,"updated":"2015-09-09 10:47:21.000000000","message":"The same, can use provider.class.domain_check","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":99,"context_line":"    # use the domain parameter if given or the one from name if any"},{"line_number":100,"context_line":"    domain_name \u003d self[:domain] || Util.split_domain(self[:name])[1]"},{"line_number":101,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], domain_name)"},{"line_number":102,"context_line":"    domain_name"},{"line_number":103,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_cc071880","line":100,"in_reply_to":"da20952f_5d917951","updated":"2015-09-09 11:25:53.000000000","message":"Same, done.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"}],"lib/puppet/type/keystone_user_role.rb":[{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    self[:name].rpartition(\u0027@\u0027).first"},{"line_number":33,"context_line":"  end"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  autorequire(:keystone_tenant) do"},{"line_number":36,"context_line":"    proj, dom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)"},{"line_number":37,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], dom)"},{"line_number":38,"context_line":"    rv \u003d nil"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_d829178b","line":35,"updated":"2015-09-09 10:47:21.000000000","message":"The same : better use provider.class.name_and_domain(...)","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    self[:name].rpartition(\u0027@\u0027).first"},{"line_number":33,"context_line":"  end"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  autorequire(:keystone_tenant) do"},{"line_number":36,"context_line":"    proj, dom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)"},{"line_number":37,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], dom)"},{"line_number":38,"context_line":"    rv \u003d nil"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_8cb360e9","line":35,"in_reply_to":"da20952f_d829178b","updated":"2015-09-09 11:25:53.000000000","message":"Same, can\u0027t do that.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  end"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  autorequire(:keystone_tenant) do"},{"line_number":36,"context_line":"    proj, dom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)"},{"line_number":37,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], dom)"},{"line_number":38,"context_line":"    rv \u003d nil"},{"line_number":39,"context_line":"    if proj # i.e. not ::domain"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_1dc0e129","line":36,"updated":"2015-09-09 10:47:21.000000000","message":"The same : provider.class.domain_check","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  end"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"  autorequire(:keystone_tenant) do"},{"line_number":36,"context_line":"    proj, dom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)"},{"line_number":37,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], dom)"},{"line_number":38,"context_line":"    rv \u003d nil"},{"line_number":39,"context_line":"    if proj # i.e. not ::domain"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_4cc6a84a","line":36,"in_reply_to":"da20952f_1dc0e129","updated":"2015-09-09 11:25:53.000000000","message":"Same, done.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  end"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":50,"context_line":"    rv \u003d []"},{"line_number":51,"context_line":"    userdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).first)[1]"},{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_38405335","line":50,"updated":"2015-09-09 10:47:21.000000000","message":"The same : better use provider.class.name_and_domain(...)","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  end"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":50,"context_line":"    rv \u003d []"},{"line_number":51,"context_line":"    userdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).first)[1]"},{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_0cc0b029","line":50,"in_reply_to":"da20952f_38405335","updated":"2015-09-09 11:25:53.000000000","message":"Same, can\u0027t do that.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":50,"context_line":"    rv \u003d []"},{"line_number":51,"context_line":"    userdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).first)[1]"},{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_9deab1ab","line":51,"updated":"2015-09-09 10:47:21.000000000","message":"The same.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"  autorequire(:keystone_domain) do"},{"line_number":50,"context_line":"    rv \u003d []"},{"line_number":51,"context_line":"    userdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).first)[1]"},{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_6ce5acda","line":51,"in_reply_to":"da20952f_9deab1ab","updated":"2015-09-09 11:25:53.000000000","message":"Same, done.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":"    projectdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)[1]"},{"line_number":57,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], projectdom)"},{"line_number":58,"context_line":"    if projectdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_586427e4","line":55,"updated":"2015-09-09 10:47:21.000000000","message":"The same : better use provider.class.name_and_domain(...)","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], userdom)"},{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":"    projectdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)[1]"},{"line_number":57,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], projectdom)"},{"line_number":58,"context_line":"    if projectdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_4ccd485c","line":55,"in_reply_to":"da20952f_586427e4","updated":"2015-09-09 11:25:53.000000000","message":"Same, can\u0027t do that.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":8297,"name":"Sofer Athlan-Guyot","email":"sathlang@redhat.com","username":"chem"},"change_message_id":"087ba4ef2125585f262549a0b7247d5d4830ea95","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":"    projectdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)[1]"},{"line_number":57,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], projectdom)"},{"line_number":58,"context_line":"    if projectdom"},{"line_number":59,"context_line":"      rv \u003c\u003c projectdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_5dcdf95b","line":56,"updated":"2015-09-09 10:47:21.000000000","message":"The same.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"10132e4263e8a6a1ca2d660858e3dd6715192cb6","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    if userdom"},{"line_number":54,"context_line":"      rv \u003c\u003c userdom"},{"line_number":55,"context_line":"    end"},{"line_number":56,"context_line":"    projectdom \u003d Util.split_domain(self[:name].rpartition(\u0027@\u0027).last)[1]"},{"line_number":57,"context_line":"    self.class::ProviderOpenstack.domain_check(self[:name], projectdom)"},{"line_number":58,"context_line":"    if projectdom"},{"line_number":59,"context_line":"      rv \u003c\u003c projectdom"}],"source_content_type":"text/x-ruby","patch_set":36,"id":"da20952f_ecd9bc23","line":56,"in_reply_to":"da20952f_5dcdf95b","updated":"2015-09-09 11:25:53.000000000","message":"Same, done.","commit_id":"4de0f7f598385bbd5c9c397a2d41593cd856ad34"}],"spec/acceptance/basic_keystone_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"caf33be6a582e64cfed297bffabf77cf994497eb","unresolved":false,"context_lines":[{"line_number":111,"context_line":"      keystone_user { \u0027adminv3\u0027:"},{"line_number":112,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":113,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":114,"context_line":"        tenant      \u003d\u003e \u0027openstackv3::admin_domain\u0027, # note: don\u0027t have to use \u0027openstackv3::admin_domain\u0027 here since the tenant name \u0027openstackv3\u0027 is unique among all domains"},{"line_number":115,"context_line":"        email       \u003d\u003e \u0027test@example.tld\u0027,"},{"line_number":116,"context_line":"        password    \u003d\u003e \u0027a_big_secret\u0027,"},{"line_number":117,"context_line":"        domain      \u003d\u003e \u0027admin_domain\u0027,"}],"source_content_type":"text/x-ruby","patch_set":21,"id":"da20952f_f137354b","line":114,"updated":"2015-09-03 02:30:29.000000000","message":"remove the comment since it is no longer true","commit_id":"53edea27cb48925cf09dbcacdd78432c22a1b4e1"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0319dd68cc18ed6c382fe53b0c3c3ce35b481672","unresolved":false,"context_lines":[{"line_number":111,"context_line":"      keystone_user { \u0027adminv3\u0027:"},{"line_number":112,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":113,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":114,"context_line":"        tenant      \u003d\u003e \u0027openstackv3::admin_domain\u0027, # note: don\u0027t have to use \u0027openstackv3::admin_domain\u0027 here since the tenant name \u0027openstackv3\u0027 is unique among all domains"},{"line_number":115,"context_line":"        email       \u003d\u003e \u0027test@example.tld\u0027,"},{"line_number":116,"context_line":"        password    \u003d\u003e \u0027a_big_secret\u0027,"},{"line_number":117,"context_line":"        domain      \u003d\u003e \u0027admin_domain\u0027,"}],"source_content_type":"text/x-ruby","patch_set":21,"id":"da20952f_f1ead573","line":114,"in_reply_to":"da20952f_f137354b","updated":"2015-09-03 02:35:12.000000000","message":"Ah, yeah, this is why comments are bad!\nThanks","commit_id":"53edea27cb48925cf09dbcacdd78432c22a1b4e1"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"620d44c38505d8efea154ae6271c8dd055d897de","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":101,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":102,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":103,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3::admin_domain\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":26,"id":"da20952f_b1bd26d9","line":103,"updated":"2015-09-03 14:10:01.000000000","message":"The domain parameter is optional if specified in the name.  There should be some resources with the domain parameter, and some without, to test that everything works as expected, if the domain is specified in the resource name with \u0027::domain\u0027.","commit_id":"3ff5cb24d13d306e7a93a952489c94bfdb874f4e"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"380e18de41c03cf7a0eb4dae3a99196dc2f3354e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":101,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":102,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":103,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3::admin_domain\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":26,"id":"da20952f_f22629cd","line":103,"in_reply_to":"da20952f_b1bd26d9","updated":"2015-09-03 21:47:10.000000000","message":"\u003e The domain parameter is optional if specified in the name.  \n\nYes this one shouldn\u0027t be necessary, trying things at the time\n\n\u003e There should be some resources with the domain parameter, and some without, to test that everything works as expected, if the domain is specified in the resource name with \u0027::domain\u0027.  \n\nI agree but that should be validated during unit tests","commit_id":"3ff5cb24d13d306e7a93a952489c94bfdb874f4e"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1baa1bce3d4314949532d99caa529dce4c322c62","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":101,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":102,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":103,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3::admin_domain\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":26,"id":"da20952f_b5e41b3c","line":103,"in_reply_to":"da20952f_f22629cd","updated":"2015-09-03 21:49:10.000000000","message":"Ok.","commit_id":"3ff5cb24d13d306e7a93a952489c94bfdb874f4e"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":100,"context_line":"      keystone_tenant { \u0027servicesv3::service_domain\u0027:"},{"line_number":101,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":102,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":103,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3::admin_domain\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_67e4deab","line":103,"updated":"2015-09-09 15:06:38.000000000","message":"It is ok to provide a domain \u003d\u003e \u0027domainname\u0027 as long as it is the same as the \u0027::domainname\u0027 in the resource name.","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":100,"context_line":"      keystone_tenant { \u0027servicesv3::service_domain\u0027:"},{"line_number":101,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":102,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":103,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3::admin_domain\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_ce1e0c5f","line":103,"in_reply_to":"da20952f_67e4deab","updated":"2015-09-10 02:37:45.000000000","message":"Yes, but since the \u003cname\u003e::\u003cdomain\u003e is the way to go, there is no need to use the domain parameter so we won\u0027t have to remove it later.","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"601abbe3d7490af9ae322cfbd630d6e5cb729184","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":101,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":102,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":103,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_0cace786","side":"PARENT","line":103,"updated":"2015-09-10 21:57:12.000000000","message":"same comment as wsgi file","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ca6b0e3b7c0be2b2a9c343197bf844a9dfe2842b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":101,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":102,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":103,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":104,"context_line":"      }"},{"line_number":105,"context_line":"      keystone_tenant { \u0027openstackv3\u0027:"},{"line_number":106,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_126ac2b5","side":"PARENT","line":103,"in_reply_to":"da20952f_0cace786","updated":"2015-09-10 23:00:18.000000000","message":"Done","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"601abbe3d7490af9ae322cfbd630d6e5cb729184","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        public_url          \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":84,"context_line":"        admin_url           \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":85,"context_line":"        internal_url        \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":86,"context_line":"        tenant              \u003d\u003e \u0027services\u0027,"},{"line_number":87,"context_line":"      }"},{"line_number":88,"context_line":"      # v3 admin"},{"line_number":89,"context_line":"      # we don\u0027t use ::keystone::roles::admin but still create resources manually:"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_8ca9d77e","line":86,"updated":"2015-09-10 21:57:12.000000000","message":"it\u0027s already default.","commit_id":"ed7f15e025df0f8882c5fe714e817f6b183a9c89"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ca6b0e3b7c0be2b2a9c343197bf844a9dfe2842b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        public_url          \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":84,"context_line":"        admin_url           \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":85,"context_line":"        internal_url        \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":86,"context_line":"        tenant              \u003d\u003e \u0027services\u0027,"},{"line_number":87,"context_line":"      }"},{"line_number":88,"context_line":"      # v3 admin"},{"line_number":89,"context_line":"      # we don\u0027t use ::keystone::roles::admin but still create resources manually:"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_9247b24b","line":86,"in_reply_to":"da20952f_8ca9d77e","updated":"2015-09-10 23:00:18.000000000","message":"Done","commit_id":"ed7f15e025df0f8882c5fe714e817f6b183a9c89"}],"spec/acceptance/keystone_wsgi_apache_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"caf33be6a582e64cfed297bffabf77cf994497eb","unresolved":false,"context_lines":[{"line_number":110,"context_line":"      keystone_user { \u0027adminv3\u0027:"},{"line_number":111,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":112,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":113,"context_line":"        tenant      \u003d\u003e \u0027openstackv3::admin_domain\u0027, # note: don\u0027t have to use \u0027openstackv3::admin_domain\u0027 here since the tenant name \u0027openstackv3\u0027 is unique among all domains"},{"line_number":114,"context_line":"        email       \u003d\u003e \u0027test@example.tld\u0027,"},{"line_number":115,"context_line":"        password    \u003d\u003e \u0027a_big_secret\u0027,"},{"line_number":116,"context_line":"        domain      \u003d\u003e \u0027admin_domain\u0027,"}],"source_content_type":"text/x-ruby","patch_set":21,"id":"da20952f_913fd924","line":113,"updated":"2015-09-03 02:30:29.000000000","message":"remove the comment since it is no longer true","commit_id":"53edea27cb48925cf09dbcacdd78432c22a1b4e1"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"0319dd68cc18ed6c382fe53b0c3c3ce35b481672","unresolved":false,"context_lines":[{"line_number":110,"context_line":"      keystone_user { \u0027adminv3\u0027:"},{"line_number":111,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":112,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":113,"context_line":"        tenant      \u003d\u003e \u0027openstackv3::admin_domain\u0027, # note: don\u0027t have to use \u0027openstackv3::admin_domain\u0027 here since the tenant name \u0027openstackv3\u0027 is unique among all domains"},{"line_number":114,"context_line":"        email       \u003d\u003e \u0027test@example.tld\u0027,"},{"line_number":115,"context_line":"        password    \u003d\u003e \u0027a_big_secret\u0027,"},{"line_number":116,"context_line":"        domain      \u003d\u003e \u0027admin_domain\u0027,"}],"source_content_type":"text/x-ruby","patch_set":21,"id":"da20952f_71f7a559","line":113,"in_reply_to":"da20952f_913fd924","updated":"2015-09-03 02:35:12.000000000","message":"Done","commit_id":"53edea27cb48925cf09dbcacdd78432c22a1b4e1"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"601abbe3d7490af9ae322cfbd630d6e5cb729184","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      class { \u0027::keystone::wsgi::apache\u0027:"},{"line_number":64,"context_line":"        ssl \u003d\u003e false,"},{"line_number":65,"context_line":"      }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"      # \"v2\" admin and service"},{"line_number":68,"context_line":"      class { \u0027::keystone::roles::admin\u0027:"},{"line_number":69,"context_line":"        email                  \u003d\u003e \u0027test@example.tld\u0027,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_8cba370a","side":"PARENT","line":66,"updated":"2015-09-10 21:57:12.000000000","message":"not related to this change.","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ca6b0e3b7c0be2b2a9c343197bf844a9dfe2842b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"      class { \u0027::keystone::wsgi::apache\u0027:"},{"line_number":64,"context_line":"        ssl \u003d\u003e false,"},{"line_number":65,"context_line":"      }"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"      # \"v2\" admin and service"},{"line_number":68,"context_line":"      class { \u0027::keystone::roles::admin\u0027:"},{"line_number":69,"context_line":"        email                  \u003d\u003e \u0027test@example.tld\u0027,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_1205e20e","side":"PARENT","line":66,"in_reply_to":"da20952f_8cba370a","updated":"2015-09-10 23:00:18.000000000","message":"Sure, but not in base_keystone_spec.rb either.\nCome-on this is a dull blank line!","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"601abbe3d7490af9ae322cfbd630d6e5cb729184","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":100,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":101,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":102,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":103,"context_line":"      }"},{"line_number":104,"context_line":"      keystone_tenant { \u0027openstackv3\u0027:"},{"line_number":105,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_0cb067fc","side":"PARENT","line":102,"updated":"2015-09-10 21:57:12.000000000","message":"I think you should keep using \u0027domain\u0027 parameter at least on one keystone_tenant resource, just to make sure it\u0027s backward compatible.","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ca6b0e3b7c0be2b2a9c343197bf844a9dfe2842b","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        ensure      \u003d\u003e present,"},{"line_number":100,"context_line":"        enabled     \u003d\u003e true,"},{"line_number":101,"context_line":"        description \u003d\u003e \u0027Tenant for the openstack services\u0027,"},{"line_number":102,"context_line":"        domain      \u003d\u003e \u0027service_domain\u0027,"},{"line_number":103,"context_line":"      }"},{"line_number":104,"context_line":"      keystone_tenant { \u0027openstackv3\u0027:"},{"line_number":105,"context_line":"        ensure      \u003d\u003e present,"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_121c0265","side":"PARENT","line":102,"in_reply_to":"da20952f_0cb067fc","updated":"2015-09-10 23:00:18.000000000","message":"Done","commit_id":"0fb5ab7961e2ec68f6f28d0cc68a57f24c47c686"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"601abbe3d7490af9ae322cfbd630d6e5cb729184","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        public_url          \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":82,"context_line":"        admin_url           \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":83,"context_line":"        internal_url        \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":84,"context_line":"        tenant              \u003d\u003e \u0027services\u0027,"},{"line_number":85,"context_line":"      }"},{"line_number":86,"context_line":"      # v3 admin"},{"line_number":87,"context_line":"      # we don\u0027t use ::keystone::roles::admin but still create resources manually:"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_4c5e5fea","line":84,"updated":"2015-09-10 21:57:12.000000000","message":"you don\u0027t need it, it\u0027s already the default.","commit_id":"ed7f15e025df0f8882c5fe714e817f6b183a9c89"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"ca6b0e3b7c0be2b2a9c343197bf844a9dfe2842b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        public_url          \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":82,"context_line":"        admin_url           \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":83,"context_line":"        internal_url        \u003d\u003e \u0027http://127.0.0.1:1234\u0027,"},{"line_number":84,"context_line":"        tenant              \u003d\u003e \u0027services\u0027,"},{"line_number":85,"context_line":"      }"},{"line_number":86,"context_line":"      # v3 admin"},{"line_number":87,"context_line":"      # we don\u0027t use ::keystone::roles::admin but still create resources manually:"}],"source_content_type":"text/x-ruby","patch_set":40,"id":"da20952f_f2106e50","line":84,"in_reply_to":"da20952f_4c5e5fea","updated":"2015-09-10 23:00:18.000000000","message":"Yeah, that comes from the days where domains where really buggy :).\n\nI remove it.","commit_id":"ed7f15e025df0f8882c5fe714e817f6b183a9c89"}],"spec/unit/provider/keystone_user/openstack_spec.rb":[{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":548,"context_line":"        }"},{"line_number":549,"context_line":"      end"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"      it \u0027should raise an error\u0027 do"},{"line_number":552,"context_line":"        project_class.expects(:openstack)"},{"line_number":553,"context_line":"                     .with(\u0027project\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, \u0027--long\u0027)"},{"line_number":554,"context_line":"                     .returns(\u0027\"ID\",\"Name\",\"Domain ID\",\"Description\",\"Enabled\""}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_471afa7d","line":551,"updated":"2015-09-09 15:06:38.000000000","message":"Why get rid of the test for \u0027uses the resource domain in commands\u0027?  There should be a test for the error condition and a test for having a user and a project in different domains.","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":548,"context_line":"        }"},{"line_number":549,"context_line":"      end"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"      it \u0027should raise an error\u0027 do"},{"line_number":552,"context_line":"        project_class.expects(:openstack)"},{"line_number":553,"context_line":"                     .with(\u0027project\u0027, \u0027list\u0027, \u0027--quiet\u0027, \u0027--format\u0027, \u0027csv\u0027, \u0027--long\u0027)"},{"line_number":554,"context_line":"                     .returns(\u0027\"ID\",\"Name\",\"Domain ID\",\"Description\",\"Enabled\""}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_9bf7f88b","line":551,"in_reply_to":"da20952f_471afa7d","updated":"2015-09-10 02:37:45.000000000","message":"You\u0027re right, we\u0027re not removing the domain param yet","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"ec11544d986511fc0df68e859afb054984672224","unresolved":false,"context_lines":[{"line_number":562,"context_line":"name\u003d\"user1\""},{"line_number":563,"context_line":"username\u003d\"user1\""},{"line_number":564,"context_line":"\u0027)"},{"line_number":565,"context_line":"        expect { provider.create }.to raise_error(Puppet::Error, /No project found!/)"},{"line_number":566,"context_line":"      end"},{"line_number":567,"context_line":"    end"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_877b32be","line":565,"updated":"2015-09-09 15:06:38.000000000","message":"don\u0027t forget to update the message here","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"43caf6d8f26402ddc64f51ab258c36dbe5a49881","unresolved":false,"context_lines":[{"line_number":562,"context_line":"name\u003d\"user1\""},{"line_number":563,"context_line":"username\u003d\"user1\""},{"line_number":564,"context_line":"\u0027)"},{"line_number":565,"context_line":"        expect { provider.create }.to raise_error(Puppet::Error, /No project found!/)"},{"line_number":566,"context_line":"      end"},{"line_number":567,"context_line":"    end"},{"line_number":568,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":38,"id":"da20952f_1bdc4817","line":565,"in_reply_to":"da20952f_877b32be","updated":"2015-09-10 02:37:45.000000000","message":"Done","commit_id":"5c40082a9b097cde5ba6c9cd7e6af70efaee1cfa"}]}
