)]}'
{"keystone/auth/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"9adbef1a18db38c555e3a1985ecf316dbc902875","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        if plugin in AUTH_METHODS:"},{"line_number":57,"context_line":"            raise ValueError(_(\u0027Auth plugin %(plugin)s is requesting \u0027"},{"line_number":58,"context_line":"                               \u0027previously registered method %(method)s\u0027) %"},{"line_number":59,"context_line":"                             {\u0027plugin\u0027: plugin_class, \u0027method\u0027: driver.method})"},{"line_number":60,"context_line":"        AUTH_METHODS[plugin] \u003d driver"},{"line_number":61,"context_line":"    AUTH_PLUGINS_LOADED \u003d True"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_90929d56","line":59,"updated":"2015-04-16 05:44:00.000000000","message":"What\u0027s the \"driver.method\" if you removed method attribute from each plugin?\n\nI tried it, there will be attribute error with this statement.\n\nPls replace driver.method here with plugin.","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a1c4c3c8bbc228c9ce76bd6c26fca0bcc53abb30","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        if plugin in AUTH_METHODS:"},{"line_number":57,"context_line":"            raise ValueError(_(\u0027Auth plugin %(plugin)s is requesting \u0027"},{"line_number":58,"context_line":"                               \u0027previously registered method %(method)s\u0027) %"},{"line_number":59,"context_line":"                             {\u0027plugin\u0027: plugin_class, \u0027method\u0027: driver.method})"},{"line_number":60,"context_line":"        AUTH_METHODS[plugin] \u003d driver"},{"line_number":61,"context_line":"    AUTH_PLUGINS_LOADED \u003d True"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_7dc29a35","line":59,"in_reply_to":"5aa745d1_90929d56","updated":"2015-04-26 15:25:53.000000000","message":"Done... obviously missing a test for this.","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"25da91e7b1965cd78d88f1a1ed4cb2baa796f746","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    # have setup all the appropriate configuration options we may need."},{"line_number":52,"context_line":"    config.setup_authentication()"},{"line_number":53,"context_line":"    for plugin in set(CONF.auth.methods):"},{"line_number":54,"context_line":"        plugin_class \u003d CONF.auth[plugin]"},{"line_number":55,"context_line":"        driver \u003d importutils.import_object(plugin_class)"},{"line_number":56,"context_line":"        AUTH_METHODS[plugin] \u003d driver"},{"line_number":57,"context_line":"    AUTH_PLUGINS_LOADED \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_a0273e63","line":54,"updated":"2015-05-02 22:01:57.000000000","message":"As I said in the parent patch, I think we should add a check to ensure plugin is in CONF.auth.  If it isn\u0027t, we should raise an exception instead of expect a keyerror.","commit_id":"1b7e3448c4580dfc8e3600d455d3c6d3ea8e74ce"}],"keystone/auth/plugins/oauth1.py":[{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"ad4b70c9deb182439ccb9d31310d9ca99d2585db","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Turn a signed request with an access key into a keystone token.\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if not self.oauth_api:"},{"line_number":36,"context_line":"            raise exception.Unauthorized(_(\u0027%s not supported\u0027) % self.method)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        headers \u003d context[\u0027headers\u0027]"},{"line_number":39,"context_line":"        oauth_headers \u003d oauth.get_oauth_headers(headers)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_839007ee","line":36,"updated":"2015-04-16 13:07:17.000000000","message":"self.method isn\u0027t defined anymore","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a1c4c3c8bbc228c9ce76bd6c26fca0bcc53abb30","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \"\"\"Turn a signed request with an access key into a keystone token.\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        if not self.oauth_api:"},{"line_number":36,"context_line":"            raise exception.Unauthorized(_(\u0027%s not supported\u0027) % self.method)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        headers \u003d context[\u0027headers\u0027]"},{"line_number":39,"context_line":"        oauth_headers \u003d oauth.get_oauth_headers(headers)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_bd6f122a","line":36,"in_reply_to":"5aa745d1_839007ee","updated":"2015-04-26 15:25:53.000000000","message":"Proposed a change to remove this since it\u0027s using dependency.requires, so this is dead code.","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"}],"keystone/auth/plugins/saml2.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"51c2587005aa73be258e47e4ddfc168e2a1be606","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class Saml2(mapped.Mapped):"},{"line_number":26,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ad8896b_0860bb34","line":25,"updated":"2015-05-11 19:08:17.000000000","message":"even Saml2 is deprecated I think","commit_id":"f4dcb6897d2f06030f0e7f1ba2426f19fdb3c9c1"}],"keystone/auth/plugins/token.py":[{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"ad4b70c9deb182439ccb9d31310d9ca99d2585db","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def authenticate(self, context, auth_payload, user_context):"},{"line_number":43,"context_line":"        if \u0027id\u0027 not in auth_payload:"},{"line_number":44,"context_line":"            raise exception.ValidationError(attribute\u003d\u0027id\u0027,"},{"line_number":45,"context_line":"                                            target\u003dself.method)"},{"line_number":46,"context_line":"        token_ref \u003d self._get_token_ref(auth_payload)"},{"line_number":47,"context_line":"        if token_ref.is_federated_user and self.federation_api:"},{"line_number":48,"context_line":"            mapped.handle_scoped_token("}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_4368bff5","line":45,"updated":"2015-04-16 13:07:17.000000000","message":"self.method isn\u0027t defined anymore","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a1c4c3c8bbc228c9ce76bd6c26fca0bcc53abb30","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def authenticate(self, context, auth_payload, user_context):"},{"line_number":43,"context_line":"        if \u0027id\u0027 not in auth_payload:"},{"line_number":44,"context_line":"            raise exception.ValidationError(attribute\u003d\u0027id\u0027,"},{"line_number":45,"context_line":"                                            target\u003dself.method)"},{"line_number":46,"context_line":"        token_ref \u003d self._get_token_ref(auth_payload)"},{"line_number":47,"context_line":"        if token_ref.is_federated_user and self.federation_api:"},{"line_number":48,"context_line":"            mapped.handle_scoped_token("}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_fde46ae0","line":45,"in_reply_to":"5aa745d1_4368bff5","updated":"2015-04-26 15:25:53.000000000","message":"Done","commit_id":"824551cfe51728e3d5c35819c9ed740dbbb4f903"}],"keystone/tests/unit/test_auth_plugin.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"9adbef1a18db38c555e3a1985ecf316dbc902875","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"class TestInvalidAuthMethodRegistration(tests.TestCase):"},{"line_number":141,"context_line":"    def test_duplicate_auth_method_registration(self):"},{"line_number":142,"context_line":"        self.config_fixture.config("},{"line_number":143,"context_line":"            group\u003d\u0027auth\u0027,"},{"line_number":144,"context_line":"            methods\u003d["}],"source_content_type":"text/x-python","patch_set":1,"id":"5aa745d1_90f5fd84","side":"PARENT","line":141,"updated":"2015-04-16 05:44:00.000000000","message":"It\u0027s not nice to remove this testcase, I think you can re-define the testcase instead of removing it, the check logic to avoid importing duplicated plugin is still keeped in the controller, right?\n\nSimply rewrite the testcase as this is okay in my opinion, FYI.\n\n    def test_duplicate_auth_method_registration(self):\n        self.config_fixture.config(\n            group\u003d\u0027auth\u0027,\n            methods\u003d[\n                \u0027password\u0027,\n                \u0027password\u0027],\n            password\u003d\u0027keystone.tests.unit.test_auth_plugin.SimpleChallengeResponse\u0027\n            )\n        self.clear_auth_plugin_registry()\n        self.assertRaises(ValueError, auth.controllers.load_auth_methods)","commit_id":"3144403c303b2fc9fc511104c7a497e5bb35bf68"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a1c4c3c8bbc228c9ce76bd6c26fca0bcc53abb30","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"class TestInvalidAuthMethodRegistration(tests.TestCase):"},{"line_number":141,"context_line":"    def test_duplicate_auth_method_registration(self):"},{"line_number":142,"context_line":"        self.config_fixture.config("},{"line_number":143,"context_line":"            group\u003d\u0027auth\u0027,"},{"line_number":144,"context_line":"            methods\u003d["}],"source_content_type":"text/x-python","patch_set":1,"id":"bab921fb_bdd39203","side":"PARENT","line":141,"in_reply_to":"5aa745d1_90f5fd84","updated":"2015-04-26 15:25:53.000000000","message":"I don\u0027t think we need code to check that the methods are duplicated, proposed a separate change to de-duplicate.","commit_id":"3144403c303b2fc9fc511104c7a497e5bb35bf68"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b3533eff4c4839e13a62514e4cc51c69ee79ffc9","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"class TestInvalidAuthMethodRegistration(tests.TestCase):"},{"line_number":141,"context_line":"    def test_duplicate_auth_method_registration(self):"},{"line_number":142,"context_line":"        self.config_fixture.config("},{"line_number":143,"context_line":"            group\u003d\u0027auth\u0027,"},{"line_number":144,"context_line":"            methods\u003d["}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_91a02ea1","side":"PARENT","line":141,"in_reply_to":"bab921fb_bdd39203","updated":"2015-05-01 06:21:04.000000000","message":"okay, as long as we remove that logic in the controller.","commit_id":"3144403c303b2fc9fc511104c7a497e5bb35bf68"}]}
