)]}'
{"keystoneclient/auth/identity/generic/base.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ac939e26c74b0f55193186eca6530db5a36d1d61","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_3d1b5d1d","line":43,"updated":"2015-04-08 05:50:04.000000000","message":"whats with the v2 parameters here (and below)?","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d16521aedb960d17a5ff05721bf86c2bca9a00eb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_4690e795","line":43,"in_reply_to":"3acd31a7_a8bf38fa","updated":"2015-05-14 08:10:45.000000000","message":"It\u0027s purposefully not set for v2. That\u0027s the difference between using the default_domain_id and the user_domain_id or the project_domain_id. \n\nIn v2 everything happens in the default domain. By providing a default_domain_id you imply that you can use this value when talking to v3 api but you can do the same thing with the v2 api without using this value.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"31684c95843ea93f4d13f3b713f885a58a47de5a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_a8bf38fa","line":43,"in_reply_to":"7aaa499b_95c4c840","updated":"2015-05-01 16:02:41.000000000","message":"I\u0027m not seeing where default_domain_id is used for v2, unless you count the fact that it being set (value irrelevant) is used to determine whether disc_data is reversed. And if it\u0027s only for v3, then the caller can just use domain_id and we don\u0027t need to add a default.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d2e1586d8f342dd39e18efc73c636d22655fa031","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_95c4c840","line":43,"in_reply_to":"9aa53dc9_3d1b5d1d","updated":"2015-04-12 00:10:41.000000000","message":"the plan was essentially the same as what OSC is doing. Generic should work with v2 or v3 parameters and the plugin will handle it for them.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"60884499e5e52ab7f8b82b342ec309bf8bd4a45d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        pr_domain_id \u003d self._project_domain_id or self._default_domain_id"},{"line_number":124,"context_line":"        pr_domain_name \u003d self._project_domain_name or self._default_domain_name"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        return {\u0027trust_id\u0027: self._trust_id,"},{"line_number":127,"context_line":"                \u0027project_id\u0027: self._project_id,"},{"line_number":128,"context_line":"                \u0027project_name\u0027: self._project_name,"},{"line_number":129,"context_line":"                \u0027project_domain_id\u0027: pr_domain_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_2be07295","line":126,"updated":"2015-05-20 19:16:06.000000000","message":"Don\u0027t you want to check either domain_id or domain_name in case of default.\n\nYou may end up having  both default domain_id and default_domain_name set","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"31684c95843ea93f4d13f3b713f885a58a47de5a","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if self._default_domain_id or self._default_domain_name:"},{"line_number":160,"context_line":"                # NOTE(jamielennox): If there is default domain information we"},{"line_number":161,"context_line":"                # should attempt to match the newest version first."},{"line_number":162,"context_line":"                disc_data \u003d reversed(disc_data)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            for data in disc_data:"},{"line_number":165,"context_line":"                version \u003d data[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_0802ac6f","line":162,"updated":"2015-05-01 16:02:41.000000000","message":"why not always reverse disc_data? Shouldn\u0027t we always prefer the newest version?","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d16521aedb960d17a5ff05721bf86c2bca9a00eb","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if self._default_domain_id or self._default_domain_name:"},{"line_number":160,"context_line":"                # NOTE(jamielennox): If there is default domain information we"},{"line_number":161,"context_line":"                # should attempt to match the newest version first."},{"line_number":162,"context_line":"                disc_data \u003d reversed(disc_data)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            for data in disc_data:"},{"line_number":165,"context_line":"                version \u003d data[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_a6ce7bb2","line":162,"in_reply_to":"3acd31a7_0802ac6f","updated":"2015-05-14 08:10:45.000000000","message":"I honestly can\u0027t remember but there is a check for it happening this way.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"18b77f0785c85530432210cf937f95197f56f4af","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if self._default_domain_id or self._default_domain_name:"},{"line_number":160,"context_line":"                # NOTE(jamielennox): If there is default domain information we"},{"line_number":161,"context_line":"                # should attempt to match the newest version first."},{"line_number":162,"context_line":"                disc_data \u003d reversed(disc_data)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            for data in disc_data:"},{"line_number":165,"context_line":"                version \u003d data[\u0027version\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_c6f0b3ff","line":162,"in_reply_to":"7a016987_a6ce7bb2","updated":"2015-05-20 19:42:05.000000000","message":"that doesn\u0027t sound like a good reason...","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"31684c95843ea93f4d13f3b713f885a58a47de5a","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                if (_discover.version_match((2,), version) and"},{"line_number":168,"context_line":"                        self._has_domain_scope):"},{"line_number":169,"context_line":"                    # NOTE(jamielennox): if there are domain parameters there"},{"line_number":170,"context_line":"                    # is no point even trying against v2 APIs."},{"line_number":171,"context_line":"                    continue"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"                plugin \u003d self.create_plugin(session,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_88459cb4","line":170,"updated":"2015-05-01 16:02:41.000000000","message":"why not? We don\u0027t know the domain parameters are required just because they were passed...","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d16521aedb960d17a5ff05721bf86c2bca9a00eb","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                if (_discover.version_match((2,), version) and"},{"line_number":168,"context_line":"                        self._has_domain_scope):"},{"line_number":169,"context_line":"                    # NOTE(jamielennox): if there are domain parameters there"},{"line_number":170,"context_line":"                    # is no point even trying against v2 APIs."},{"line_number":171,"context_line":"                    continue"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"                plugin \u003d self.create_plugin(session,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_26e4cb39","line":170,"in_reply_to":"3acd31a7_88459cb4","updated":"2015-05-14 08:10:45.000000000","message":"this is the point of having a default value present. If you pass domain information we assume we must use it and so skip v2. default would let us try both v2 and v3 with like optional domain information.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b89ea0bf090af1d1e072f5a9af407a6d377484b1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_f5b3f8ea","line":43,"updated":"2015-08-13 18:09:20.000000000","message":"why should the v2 api are about a domain id or domain name? We can only use the default domain in v2.","commit_id":"a76756ef6fe964bdac07977c4e897cb3d36ce908"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"157a4158568f044f012b1672b5025661899638b2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                   help\u003d\u0027Domain name containing project\u0027),"},{"line_number":41,"context_line":"        cfg.StrOpt(\u0027trust-id\u0027, help\u003d\u0027Trust ID\u0027),"},{"line_number":42,"context_line":"        cfg.StrOpt(\u0027default-domain-id\u0027,"},{"line_number":43,"context_line":"                   help\u003d\u0027Domain ID to use with v3 API and v2 parameters.\u0027),"},{"line_number":44,"context_line":"        cfg.StrOpt(\u0027default-domain-name\u0027,"},{"line_number":45,"context_line":"                   help\u003d\u0027Domain name to use with v3 API and v2 parameters.\u0027),"},{"line_number":46,"context_line":"    ]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_23b251e6","line":43,"in_reply_to":"1a4dcd0f_f5b3f8ea","updated":"2015-09-09 18:14:02.000000000","message":"++","commit_id":"a76756ef6fe964bdac07977c4e897cb3d36ce908"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"157a4158568f044f012b1672b5025661899638b2","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @property"},{"line_number":114,"context_line":"    def _v2_params(self):"},{"line_number":115,"context_line":"        \"\"\"Parameters that are common to v2 plugins.\"\"\""},{"line_number":116,"context_line":"        return {\u0027trust_id\u0027: self._trust_id,"},{"line_number":117,"context_line":"                \u0027tenant_id\u0027: self._project_id,"},{"line_number":118,"context_line":"                \u0027tenant_name\u0027: self._project_name}"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_0334ed47","line":115,"updated":"2015-09-09 18:14:02.000000000","message":"What about checking if a domain different than default was provided?","commit_id":"a76756ef6fe964bdac07977c4e897cb3d36ce908"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b89ea0bf090af1d1e072f5a9af407a6d377484b1","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"            if self._default_domain_id or self._default_domain_name:"},{"line_number":160,"context_line":"                # NOTE(jamielennox): If there is default domain information we"},{"line_number":161,"context_line":"                # should attempt to match the newest version first."},{"line_number":162,"context_line":"                disc_data \u003d reversed(disc_data)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"            for data in disc_data:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_d55cbc7f","line":161,"updated":"2015-08-13 18:09:20.000000000","message":"this means that the version info is always list oldest to newest, right?","commit_id":"a76756ef6fe964bdac07977c4e897cb3d36ce908"}],"keystoneclient/tests/unit/auth/utils.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ac939e26c74b0f55193186eca6530db5a36d1d61","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(default_domain_id, p._plugin.project_domain_id)"},{"line_number":211,"context_line":"        self.assertEqual(project_name, p._plugin.project_name)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        return p"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_default_domain_id_no_v3(self):"},{"line_number":216,"context_line":"        self.stub_discovery(v3\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_3d047dbe","line":213,"updated":"2015-04-08 05:50:04.000000000","message":"there\u0027s no reason to return here","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d2e1586d8f342dd39e18efc73c636d22655fa031","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(default_domain_id, p._plugin.project_domain_id)"},{"line_number":211,"context_line":"        self.assertEqual(project_name, p._plugin.project_name)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        return p"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_default_domain_id_no_v3(self):"},{"line_number":216,"context_line":"        self.stub_discovery(v3\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_75c13c2e","line":213,"in_reply_to":"9aa53dc9_3d047dbe","updated":"2015-04-12 00:10:41.000000000","message":"it\u0027s overriden and used in the test_password tests.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ac939e26c74b0f55193186eca6530db5a36d1d61","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        p \u003d self.assertCreateV2(project_name\u003dproject_name,"},{"line_number":221,"context_line":"                                default_domain_id\u003ddefault_domain_id)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        self.assertEqual(project_name, p._plugin.tenant_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_9d29493a","line":223,"updated":"2015-04-08 05:50:04.000000000","message":"should you assert that the plugins domain properties are not set?","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"d2e1586d8f342dd39e18efc73c636d22655fa031","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        p \u003d self.assertCreateV2(project_name\u003dproject_name,"},{"line_number":221,"context_line":"                                default_domain_id\u003ddefault_domain_id)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        self.assertEqual(project_name, p._plugin.tenant_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_15e798e5","line":223,"in_reply_to":"9aa53dc9_9d29493a","updated":"2015-04-12 00:10:41.000000000","message":"p._plugin in this case is a v2.Password plugin (asserted in the assertCreatev2). There\u0027s nowhere for the domain properties to be set to test they aren\u0027t used.","commit_id":"dba7f1a1fb0ba30849e608abcc20f9765b3aa721"}]}
