)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"04e1ec0633a779c6fa973e256a04e2263339652a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instead of using separate identity method mapped/saml2 a \u0027token\u0027 method"},{"line_number":10,"context_line":"should be used."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ife1906c9aa63c41bfe19d20b9f08d158d1f8662f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a961159_8a3aaa96","line":11,"updated":"2014-12-28 16:03:59.000000000","message":"This should be associated with a bug or a blueprint since it changes how users do federation.","commit_id":"3d09184f974edd419d4d65e8ca50204429915c9e"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"b3d005e42f4a4c06ed0f6dac212818911abb362f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instead of using separate identity method mapped/saml2 a \u0027token\u0027 method"},{"line_number":10,"context_line":"should be used."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ife1906c9aa63c41bfe19d20b9f08d158d1f8662f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3a961159_8be79411","line":11,"in_reply_to":"3a961159_8a3aaa96","updated":"2015-01-06 11:06:28.000000000","message":"OK, I will toss a short BP and add a reference here.","commit_id":"3d09184f974edd419d4d65e8ca50204429915c9e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"81d55ca39c5429c0247a6b800299d8d3b4dca626","unresolved":false,"context_lines":[{"line_number":10,"context_line":"should be used."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ife1906c9aa63c41bfe19d20b9f08d158d1f8662f"},{"line_number":13,"context_line":"Implements: blueprint federation-token-scoping"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3a961159_38283eee","line":13,"updated":"2015-01-09 23:25:31.000000000","message":"This blueprint doesn\u0027t exist as far as I can tell.","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"}],"keystone/auth/plugins/mapped.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2b9efcdaa14ba5e2069a7e401b4f253a4a1c9e06","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def _authenticate(self, context, auth_payload, auth_context):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if \u0027id\u0027 in auth_payload:"},{"line_number":55,"context_line":"            fields \u003d self._handle_scoped_token(context, auth_payload)"},{"line_number":56,"context_line":"        else:"},{"line_number":57,"context_line":"            fields \u003d self._handle_unscoped_token(context, auth_payload)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_f83a5a32","line":55,"updated":"2015-01-08 18:39:32.000000000","message":"Are you going to add a deprecation message when handling a scoped token?","commit_id":"dfbc26d83c647a676168f799f48c1374acdaae11"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"ff982566c693854bef5059379aac7b9bfa34b4f2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        \"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        if \u0027id\u0027 in auth_payload:"},{"line_number":58,"context_line":"            token_ref \u003d self._get_token_ref(auth_payload)"},{"line_number":59,"context_line":"            handle_scoped_token(context, auth_payload, auth_context, token_ref,"},{"line_number":60,"context_line":"                                self.federation_api,"},{"line_number":61,"context_line":"                                self.identity_api,"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a961159_9bddbe72","line":58,"updated":"2015-01-09 11:21:31.000000000","message":"A depreciation warning should be put here.","commit_id":"089ac11d8b0b0331d9cb06b325b51b706460f38e"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"2b6fcddba04a61f403be09f8bc7e3ac062865dc2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            identity_provider, protocol)"},{"line_number":85,"context_line":"        utils.validate_groups(group_ids, mapping[\u0027id\u0027], identity_api)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    except Exception:"},{"line_number":88,"context_line":"        # NOTE(topol): Diaper defense to catch any exception, so we can"},{"line_number":89,"context_line":"        # send off failed authentication notification, raise the exception"},{"line_number":90,"context_line":"        # after sending the notification"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_408a7e1b","line":87,"updated":"2015-01-09 16:04:18.000000000","message":"topol needs to learn about finally statements in python","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"2b6fcddba04a61f403be09f8bc7e3ac062865dc2","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                                                   protocol, token_id,"},{"line_number":132,"context_line":"                                                   outcome)"},{"line_number":133,"context_line":"        raise"},{"line_number":134,"context_line":"    else:"},{"line_number":135,"context_line":"        outcome \u003d taxonomy.OUTCOME_SUCCESS"},{"line_number":136,"context_line":"        notifications.send_saml_audit_notification(\u0027authenticate\u0027, context,"},{"line_number":137,"context_line":"                                                   user_id, group_ids,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_20b3b2ed","line":134,"updated":"2015-01-09 16:04:18.000000000","message":"should have been a finally block here, too.","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"}],"keystone/auth/plugins/token.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1073265cbbfb28ba7e1c361d041ae9137a44598b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                            target\u003dself.method)"},{"line_number":36,"context_line":"        token_id \u003d auth_payload[\u0027id\u0027]"},{"line_number":37,"context_line":"        response \u003d self.token_provider_api.validate_token(token_id)"},{"line_number":38,"context_line":"        self.token_ref \u003d token_model.KeystoneToken(token_id\u003dtoken_id,"},{"line_number":39,"context_line":"                                                   token_data\u003dresponse)"},{"line_number":40,"context_line":"        if self.token_ref.is_federated_user:"},{"line_number":41,"context_line":"            self.__class__ \u003d mapped.Mapped"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8c0949_48046315","line":38,"updated":"2014-10-30 04:53:27.000000000","message":"suggest making this a local variable instead of class variable","commit_id":"5b41e804d9cc2a550db3d070c9fbf9fedf4a8269"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"74cd4b711eb7581fd7de26a98da873a79f7d211c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.token_ref \u003d token_model.KeystoneToken(token_id\u003dtoken_id,"},{"line_number":39,"context_line":"                                                   token_data\u003dresponse)"},{"line_number":40,"context_line":"        if self.token_ref.is_federated_user:"},{"line_number":41,"context_line":"            self.__class__ \u003d mapped.Mapped"},{"line_number":42,"context_line":"        self._authenticate(context, auth_payload, user_context)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _authenticate(self, context, auth_payload, user_context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_3df4c459","line":41,"updated":"2014-10-28 20:44:28.000000000","message":"Is this the only way to get the expected behavior? If it is it seems like either our abstraction is incorrect or there needs to be something a little further up that makes this decision.","commit_id":"5b41e804d9cc2a550db3d070c9fbf9fedf4a8269"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1073265cbbfb28ba7e1c361d041ae9137a44598b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.token_ref \u003d token_model.KeystoneToken(token_id\u003dtoken_id,"},{"line_number":39,"context_line":"                                                   token_data\u003dresponse)"},{"line_number":40,"context_line":"        if self.token_ref.is_federated_user:"},{"line_number":41,"context_line":"            self.__class__ \u003d mapped.Mapped"},{"line_number":42,"context_line":"        self._authenticate(context, auth_payload, user_context)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _authenticate(self, context, auth_payload, user_context):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8c0949_482b8382","line":41,"in_reply_to":"9aa7fdbe_3df4c459","updated":"2014-10-30 04:53:27.000000000","message":"you could do it before here: https://github.com/openstack/keystone/blob/master/keystone/auth/controllers.py#L491-L493\n\nbut the auth controller is sooo messy right now, this would just confuse things more so","commit_id":"5b41e804d9cc2a550db3d070c9fbf9fedf4a8269"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"cf9f3d515c220e6bcff753535d34d101ac54b48f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                            target\u003dself.method)"},{"line_number":36,"context_line":"        token_id \u003d auth_payload[\u0027id\u0027]"},{"line_number":37,"context_line":"        response \u003d self.token_provider_api.validate_token(token_id)"},{"line_number":38,"context_line":"        self.token_ref \u003d token_model.KeystoneToken(token_id\u003dtoken_id,"},{"line_number":39,"context_line":"                                                   token_data\u003dresponse)"},{"line_number":40,"context_line":"        if self.token_ref.is_federated_user:"},{"line_number":41,"context_line":"            plugin \u003d mapped.Mapped()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_22faf342","line":38,"updated":"2014-11-26 00:42:10.000000000","message":"What is the scope of the Token objects? If this created for each request I don\u0027t have an issue. But I think this is actually a singleton so I don\u0027t like having the token_ref state on it. This could lead to future security bugs if we add additional functionality and forget about it. This is what creates the objects: http://git.openstack.org/cgit/openstack/keystone/tree/keystone/auth/controllers.py#n44","commit_id":"e71c021df1fe689ccdb09a1cc11c8eb4f76b1ff5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"ff8ee13425781344f21e7020ba37a8210a37d7b5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                            target\u003dself.method)"},{"line_number":36,"context_line":"        token_id \u003d auth_payload[\u0027id\u0027]"},{"line_number":37,"context_line":"        response \u003d self.token_provider_api.validate_token(token_id)"},{"line_number":38,"context_line":"        self.token_ref \u003d token_model.KeystoneToken(token_id\u003dtoken_id,"},{"line_number":39,"context_line":"                                                   token_data\u003dresponse)"},{"line_number":40,"context_line":"        if self.token_ref.is_federated_user:"},{"line_number":41,"context_line":"            plugin \u003d mapped.Mapped()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_412d30fd","line":38,"in_reply_to":"5a890539_22faf342","updated":"2014-11-26 10:56:28.000000000","message":"Yeah, good catch.\nMy initial thought was that since it becomes an object attribute i don\u0027t need to repeat that operation again in the _authenticate methods (like like 53-ish).\nI can either make it local and create KeystoneToken again or simply wrap it with try/expect/finally and make sure self.token_ref is cleaned in finally block.","commit_id":"e71c021df1fe689ccdb09a1cc11c8eb4f76b1ff5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c58fa3fb2766696255262f098256ed687f9a935e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            plugin \u003d mapped.Mapped()"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            plugin \u003d self"},{"line_number":47,"context_line":"        return plugin._authenticate(context, auth_payload, user_context)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _authenticate(self, context, auth_payload, user_context):"},{"line_number":50,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_8fcb08a3","line":47,"updated":"2014-12-03 14:06:29.000000000","message":"I can see why you had to call a protected method, but is there a better way? Is it possible to move this check higher in the stack?\n\nThe original didn\u0027t return a value and it doesn\u0027t look like the tests was changed to check for it.","commit_id":"33d2e1557a17d08665acefc61d67904ed3ad9445"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"06d7b57523ca48c7d55983bf69ecf10f677e628b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            plugin \u003d mapped.Mapped()"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            plugin \u003d self"},{"line_number":47,"context_line":"        return plugin._authenticate(context, auth_payload, user_context)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _authenticate(self, context, auth_payload, user_context):"},{"line_number":50,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_12d100fb","line":47,"in_reply_to":"5a890539_8fcb08a3","updated":"2014-12-03 14:39:05.000000000","message":"i don\u0027t think we should move this logic to the controller. From the controller perspective there is a request with auth_method \u0027token\u0027. And it\u0027s up to the token.py plugin to correctly handle the request, for instance by distinguishing whether it\u0027s federated or classic token.","commit_id":"33d2e1557a17d08665acefc61d67904ed3ad9445"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"20613c52179e01b564dbde3081aa70b152b90319","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            # state in Keystone. To do so is to invite elevation of"},{"line_number":55,"context_line":"            # privilege attacks"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"            token_ref \u003d self._get_token_ref(auth_payload)"},{"line_number":58,"context_line":"            if token_ref.oauth_scoped or token_ref.trust_scoped:"},{"line_number":59,"context_line":"                raise exception.Forbidden()"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_75307656","line":57,"updated":"2015-01-06 19:17:10.000000000","message":"the only issue i see with this is, we are now calling the token_provider_api twice, instead of once. Not sure how this is going to affect performance","commit_id":"3d09184f974edd419d4d65e8ca50204429915c9e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2b9efcdaa14ba5e2069a7e401b4f253a4a1c9e06","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            # state in Keystone. To do so is to invite elevation of"},{"line_number":55,"context_line":"            # privilege attacks"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"            token_ref \u003d self._get_token_ref(auth_payload)"},{"line_number":58,"context_line":"            if token_ref.oauth_scoped or token_ref.trust_scoped:"},{"line_number":59,"context_line":"                raise exception.Forbidden()"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_b8353246","line":57,"updated":"2015-01-08 18:39:32.000000000","message":"same comment as PS7, i\u0027m not sure what the impact is on calling this twice. maybe morganfainberg knows.","commit_id":"dfbc26d83c647a676168f799f48c1374acdaae11"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"920dcc41932f3e94f0a7fe7f2dc8b0f33a0b196f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@dependency.requires(\u0027federation_api\u0027, \u0027identity_api\u0027, \u0027token_provider_api\u0027)"},{"line_number":28,"context_line":"class Token(auth.AuthMethodHandler):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    method \u003d \u0027token\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_577022a4","line":27,"updated":"2015-01-13 20:23:00.000000000","message":"i\u0027m wondering this putting federation_api here is such a good idea?\n\nwhat will happen if someone tries to token authenticate and doesn\u0027t have federation_api enabled? i assume they won\u0027t hit the code path of line 44-48, just saying","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ace8e7285bfcfbff822a2c3f4f33eafabb4e39a9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@dependency.requires(\u0027federation_api\u0027, \u0027identity_api\u0027, \u0027token_provider_api\u0027)"},{"line_number":28,"context_line":"class Token(auth.AuthMethodHandler):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    method \u003d \u0027token\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_17d5ba1a","line":27,"in_reply_to":"3a961159_37c9d6ac","updated":"2015-01-13 20:31:25.000000000","message":"Use @dependency.optional(\u0027federation_api\u0027). If the extension wasn\u0027t enabled in the pipeline then self.federation_api will be None, so check for that before using self.federation_api.","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3af55e32f045e32507e7841b14c088035aa7c6ac","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@dependency.requires(\u0027federation_api\u0027, \u0027identity_api\u0027, \u0027token_provider_api\u0027)"},{"line_number":28,"context_line":"class Token(auth.AuthMethodHandler):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    method \u003d \u0027token\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_57df423a","line":27,"in_reply_to":"3a961159_37c9d6ac","updated":"2015-01-13 20:31:29.000000000","message":"true, think that we need something like: https://github.com/openstack/keystone/blob/master/keystone/token/providers/common.py#L442","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c430e0d9ef4255ba3789d59dcccecc4738012b48","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@dependency.requires(\u0027federation_api\u0027, \u0027identity_api\u0027, \u0027token_provider_api\u0027)"},{"line_number":28,"context_line":"class Token(auth.AuthMethodHandler):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    method \u003d \u0027token\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_37c9d6ac","line":27,"in_reply_to":"3a961159_577022a4","updated":"2015-01-13 20:26:42.000000000","message":"I didn\u0027t notice this. We can\u0027t do this because federation_api is optional.","commit_id":"62074841b9c4c06c3981ca48177c003d0c471887"}],"keystone/tests/test_v3_federation.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"48733b4b66c7949177b5893b02b643f442397445","unresolved":false,"context_lines":[{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":""},{"line_number":1686,"context_line":"class FederatedTokenTestsMethodToken(FederatedTokenTests):"},{"line_number":1687,"context_line":"    \"\"\"Test federation operation with unified scping auth method."},{"line_number":1688,"context_line":""},{"line_number":1689,"context_line":"    Test all the operations with auth method set to ``token`` as a new, unified"},{"line_number":1690,"context_line":"    way for scoping all the tokens."}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_02c7b745","line":1687,"updated":"2014-11-26 00:27:55.000000000","message":"nit: scoping","commit_id":"e71c021df1fe689ccdb09a1cc11c8eb4f76b1ff5"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"ff8ee13425781344f21e7020ba37a8210a37d7b5","unresolved":false,"context_lines":[{"line_number":1684,"context_line":""},{"line_number":1685,"context_line":""},{"line_number":1686,"context_line":"class FederatedTokenTestsMethodToken(FederatedTokenTests):"},{"line_number":1687,"context_line":"    \"\"\"Test federation operation with unified scping auth method."},{"line_number":1688,"context_line":""},{"line_number":1689,"context_line":"    Test all the operations with auth method set to ``token`` as a new, unified"},{"line_number":1690,"context_line":"    way for scoping all the tokens."}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_019de865","line":1687,"in_reply_to":"5a890539_02c7b745","updated":"2014-11-26 10:56:28.000000000","message":"thanks.","commit_id":"e71c021df1fe689ccdb09a1cc11c8eb4f76b1ff5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2b9efcdaa14ba5e2069a7e401b4f253a4a1c9e06","unresolved":false,"context_lines":[{"line_number":1663,"context_line":"    \"\"\""},{"line_number":1664,"context_line":"    AUTH_METHOD \u003d \u0027token\u0027"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def config_overrides(self):"},{"line_number":1667,"context_line":"        super(FederatedTokenTestsMethodToken, self).config_overrides()"},{"line_number":1668,"context_line":"        method_classes \u003d dict("},{"line_number":1669,"context_line":"            methods\u003d[\u0027saml2\u0027, \u0027token\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_f8fdfa3b","line":1666,"updated":"2015-01-08 18:39:32.000000000","message":"for consistency, can you make this code more similar to how brant laid it out here: https://review.openstack.org/#/c/124603/10/keystone/tests/test_v3_oauth1.py\n\ni.e. using auth_plugin_config_override","commit_id":"dfbc26d83c647a676168f799f48c1374acdaae11"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"0de09ac990e39e49f8d6b1b02a0de46b3539c0cd","unresolved":false,"context_lines":[{"line_number":1663,"context_line":"    \"\"\""},{"line_number":1664,"context_line":"    AUTH_METHOD \u003d \u0027token\u0027"},{"line_number":1665,"context_line":""},{"line_number":1666,"context_line":"    def config_overrides(self):"},{"line_number":1667,"context_line":"        super(FederatedTokenTestsMethodToken, self).config_overrides()"},{"line_number":1668,"context_line":"        method_classes \u003d dict("},{"line_number":1669,"context_line":"            methods\u003d[\u0027saml2\u0027, \u0027token\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_b6fd2f3d","line":1666,"in_reply_to":"3a961159_f8fdfa3b","updated":"2015-01-09 12:58:08.000000000","message":"it\u0027s now fixed.","commit_id":"dfbc26d83c647a676168f799f48c1374acdaae11"}]}
