)]}'
{"keystone/token/controllers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3979a6cec5b416dd6ee1c4aad1249ae38e52daad","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            v3_token_data \u003d self.token_provider_api.validate_v3_token("},{"line_number":180,"context_line":"                old_token"},{"line_number":181,"context_line":"            )"},{"line_number":182,"context_line":"            v2_helper \u003d providers.common.V2TokenDataHelper()"},{"line_number":183,"context_line":"            v2_helper.v3_to_v2_token(v3_token_data, old_token)"},{"line_number":184,"context_line":"            token_model_ref \u003d token_model.KeystoneToken("},{"line_number":185,"context_line":"                token_id\u003dold_token,"},{"line_number":186,"context_line":"                token_data\u003dv3_token_data"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_30c6e367","line":183,"range":{"start_line":182,"start_character":12,"end_line":183,"end_character":62},"updated":"2016-10-12 02:12:50.000000000","message":"remove these as they are no longer necessary","commit_id":"6c75a962b59de09a1d4419c7301813a1b99741d4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"160accd12ba357d8128e5adce2d83462367e1b49","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                old_token"},{"line_number":181,"context_line":"            )"},{"line_number":182,"context_line":"            v2_helper \u003d providers.common.V2TokenDataHelper()"},{"line_number":183,"context_line":"            v2_helper.v3_to_v2_token(v3_token_data, old_token)"},{"line_number":184,"context_line":"            token_model_ref \u003d token_model.KeystoneToken("},{"line_number":185,"context_line":"                token_id\u003dold_token,"},{"line_number":186,"context_line":"                token_data\u003dv3_token_data"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_f008cfdb","line":183,"in_reply_to":"fa6399be_30c6e367","updated":"2016-10-12 14:37:16.000000000","message":"What\u0027s no longer necessary here?","commit_id":"6c75a962b59de09a1d4419c7301813a1b99741d4"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2dbf1598c2e7bac0285d5d9c06b9ee7f6a0c6808","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                old_token"},{"line_number":181,"context_line":"            )"},{"line_number":182,"context_line":"            v2_helper \u003d providers.common.V2TokenDataHelper()"},{"line_number":183,"context_line":"            v2_helper.v3_to_v2_token(v3_token_data, old_token)"},{"line_number":184,"context_line":"            token_model_ref \u003d token_model.KeystoneToken("},{"line_number":185,"context_line":"                token_id\u003dold_token,"},{"line_number":186,"context_line":"                token_data\u003dv3_token_data"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_4b3b8cd1","line":183,"in_reply_to":"fa6399be_30ec078f","updated":"2016-10-12 14:57:33.000000000","message":"Ah - I see what you mean. The KeystoneToken model is now version agnostic and part of this change was to make it so that the KeystoneToken model only ever sees a v3 type token (until we refactor is later on). The reason why we still need the call to v2_helper is to make sure we are using certain v3 type tokens against v2.0 to get new tokens. The v3_to_v2_token() method has checks built into it to make sure things like federated tokens, or domain-scoped tokens can\u0027t be used.","commit_id":"6c75a962b59de09a1d4419c7301813a1b99741d4"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"5dcbe15216d8bc1287da2186fac97af2be9da2fc","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                old_token"},{"line_number":181,"context_line":"            )"},{"line_number":182,"context_line":"            v2_helper \u003d providers.common.V2TokenDataHelper()"},{"line_number":183,"context_line":"            v2_helper.v3_to_v2_token(v3_token_data, old_token)"},{"line_number":184,"context_line":"            token_model_ref \u003d token_model.KeystoneToken("},{"line_number":185,"context_line":"                token_id\u003dold_token,"},{"line_number":186,"context_line":"                token_data\u003dv3_token_data"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_30ec078f","line":183,"in_reply_to":"fa6399be_f008cfdb","updated":"2016-10-12 14:47:34.000000000","message":"The call to v3_to_v2_token seems not necessary. v3_to_v2_token constructs a new token and doesn\u0027t change existing one. What\u0027s the reason for it being here?","commit_id":"6c75a962b59de09a1d4419c7301813a1b99741d4"}]}
