)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17130,"name":"melissaml","email":"ma.lei@99cloud.net","username":"malei"},"change_message_id":"82413b2edde5c9ba9c7908ac7d517b63613d1092","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ensure all v2.0 tokens are validated the same way"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This makes it so that all v2.0 peristent tokens are validated using"},{"line_number":10,"context_line":"the same technique that we use to validate non-persistent tokens."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"As a side-effect, this change makes it so that trust-scoped tokens"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa6399be_e2c73e10","line":9,"range":{"start_line":9,"start_character":31,"end_line":9,"end_character":40},"updated":"2016-10-12 03:15:03.000000000","message":"s/peristent/persistent","commit_id":"d3054b5e9dce217bc8b1b9e9af71a638a21abc19"}],"keystone/tests/unit/test_v3_trust.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5198b83fbd0689066bc7d3808580ab0f862c1a4","unresolved":false,"context_lines":[{"line_number":262,"context_line":"            r, self.default_domain_user)"},{"line_number":263,"context_line":"        token \u003d r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # now validate the v3 token with v2 API"},{"line_number":266,"context_line":"        path \u003d \u0027/v2.0/tokens/%s\u0027 % (token)"},{"line_number":267,"context_line":"        self.admin_request("},{"line_number":268,"context_line":"            path\u003dpath,"},{"line_number":269,"context_line":"            token\u003dself.get_admin_token(),"},{"line_number":270,"context_line":"            method\u003d\u0027GET\u0027"},{"line_number":271,"context_line":"        )"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def test_v3_v2_intermix_trustor_not_in_default_domain_failed(self):"},{"line_number":274,"context_line":"        # get a project-scoped token"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_45482c88","line":271,"range":{"start_line":265,"start_character":8,"end_line":271,"end_character":9},"updated":"2016-09-28 04:13:41.000000000","message":"you should state this change in the commit message - that as a side effect of this change, that this operation now works","commit_id":"e0627a3820a731cc05113b3c28b436ec58cbbcdc"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"341ce7f7e8fedccbee8111b23e0922d0cc8a572d","unresolved":false,"context_lines":[{"line_number":268,"context_line":"            path\u003dpath,"},{"line_number":269,"context_line":"            token\u003dself.get_admin_token(),"},{"line_number":270,"context_line":"            method\u003d\u0027GET\u0027"},{"line_number":271,"context_line":"        )"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def test_v3_v2_intermix_trustor_not_in_default_domain_failed(self):"},{"line_number":274,"context_line":"        # get a project-scoped token"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_cb1c617a","line":271,"in_reply_to":"5a8bc5a2_45482c88","updated":"2016-09-28 13:55:34.000000000","message":"Done","commit_id":"e0627a3820a731cc05113b3c28b436ec58cbbcdc"}],"keystone/tests/unit/token/test_backends.py":[{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"a424767b508774d2cd9915f1bb2eda6c6bafd089","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        self.scoped_token_id \u003d token_id"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # ..and an un-scoped one"},{"line_number":475,"context_line":"        token_dict \u003d {\u0027user\u0027: self.user_foo, \u0027tenant\u0027: None,"},{"line_number":476,"context_line":"                      \u0027metadata\u0027: {}, \u0027id\u0027: \u0027placeholder\u0027}"},{"line_number":477,"context_line":"        token_id, data \u003d self.token_provider_api.issue_v2_token(token_dict)"},{"line_number":478,"context_line":"        self.unscoped_token_id \u003d token_id"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_f79d800b","line":476,"range":{"start_line":475,"start_character":8,"end_line":476,"end_character":58},"updated":"2016-09-27 20:29:33.000000000","message":"Couldn\u0027t this just be token_dict[\u0027tenant\u0027] \u003d None? Also format similar to lines 465-470 (or vice versa)?","commit_id":"e0627a3820a731cc05113b3c28b436ec58cbbcdc"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"341ce7f7e8fedccbee8111b23e0922d0cc8a572d","unresolved":false,"context_lines":[{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # ..and an un-scoped one"},{"line_number":475,"context_line":"        token_dict \u003d {\u0027user\u0027: self.user_foo, \u0027tenant\u0027: None,"},{"line_number":476,"context_line":"                      \u0027metadata\u0027: {}, \u0027id\u0027: \u0027placeholder\u0027}"},{"line_number":477,"context_line":"        token_id, data \u003d self.token_provider_api.issue_v2_token(token_dict)"},{"line_number":478,"context_line":"        self.unscoped_token_id \u003d token_id"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_4b2211bb","line":476,"in_reply_to":"5a8bc5a2_855a344f","updated":"2016-09-28 13:55:34.000000000","message":"Done","commit_id":"e0627a3820a731cc05113b3c28b436ec58cbbcdc"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a5198b83fbd0689066bc7d3808580ab0f862c1a4","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        self.scoped_token_id \u003d token_id"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # ..and an un-scoped one"},{"line_number":475,"context_line":"        token_dict \u003d {\u0027user\u0027: self.user_foo, \u0027tenant\u0027: None,"},{"line_number":476,"context_line":"                      \u0027metadata\u0027: {}, \u0027id\u0027: \u0027placeholder\u0027}"},{"line_number":477,"context_line":"        token_id, data \u003d self.token_provider_api.issue_v2_token(token_dict)"},{"line_number":478,"context_line":"        self.unscoped_token_id \u003d token_id"},{"line_number":479,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_855a344f","line":476,"range":{"start_line":475,"start_character":8,"end_line":476,"end_character":58},"in_reply_to":"5a8bc5a2_f79d800b","updated":"2016-09-28 04:13:41.000000000","message":"this looks fine for an unscoped token, but i agree on keeping the formatting consistent","commit_id":"e0627a3820a731cc05113b3c28b436ec58cbbcdc"}],"keystone/token/providers/common.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e9017bbb594497ea52ab466d49daaea70b6f9dbf","unresolved":false,"context_lines":[{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    def validate_v2_token(self, token_ref):"},{"line_number":773,"context_line":"        self._assert_is_not_federation_token(token_ref)"},{"line_number":774,"context_line":"        self._assert_default_domain(token_ref)"},{"line_number":775,"context_line":"        # FIXME(gyee): performance or correctness? Should we return the"},{"line_number":776,"context_line":"        # cached token or reconstruct it? Obviously if we are going with"},{"line_number":777,"context_line":"        # the cached token, any role, project, or domain name changes"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_d0bf6ca8","side":"PARENT","line":774,"updated":"2016-09-20 12:58:42.000000000","message":"By removing these two checks aren\u0027t we changing some behavior? Do we have tests already that check the behavior of this?","commit_id":"3e80adf6886bc7497cc10b397c52c6fd3f373da3"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"7e310c809c60e9cfb71be342170aec523633b43a","unresolved":false,"context_lines":[{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    def validate_v2_token(self, token_ref):"},{"line_number":773,"context_line":"        self._assert_is_not_federation_token(token_ref)"},{"line_number":774,"context_line":"        self._assert_default_domain(token_ref)"},{"line_number":775,"context_line":"        # FIXME(gyee): performance or correctness? Should we return the"},{"line_number":776,"context_line":"        # cached token or reconstruct it? Obviously if we are going with"},{"line_number":777,"context_line":"        # the cached token, any role, project, or domain name changes"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_cc4b5058","side":"PARENT","line":774,"in_reply_to":"7a8ec9b2_56b99178","updated":"2016-09-20 14:17:24.000000000","message":"good to know.. thx","commit_id":"3e80adf6886bc7497cc10b397c52c6fd3f373da3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9f3cbacc0b4ffbbdac287a13ca84666d9698a030","unresolved":false,"context_lines":[{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    def validate_v2_token(self, token_ref):"},{"line_number":773,"context_line":"        self._assert_is_not_federation_token(token_ref)"},{"line_number":774,"context_line":"        self._assert_default_domain(token_ref)"},{"line_number":775,"context_line":"        # FIXME(gyee): performance or correctness? Should we return the"},{"line_number":776,"context_line":"        # cached token or reconstruct it? Obviously if we are going with"},{"line_number":777,"context_line":"        # the cached token, any role, project, or domain name changes"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a8ec9b2_56b99178","side":"PARENT","line":774,"in_reply_to":"7a8ec9b2_d0bf6ca8","updated":"2016-09-20 14:00:24.000000000","message":"Good question - but we actually make these assertions in the v3_to_v2_token() method.","commit_id":"3e80adf6886bc7497cc10b397c52c6fd3f373da3"}]}
