)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e4ac91414d92dd624be6a171d720ed0f565a4ca2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Move fernet specific doctor checks into tokens"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change moves the doctor checks for the fernet token key"},{"line_number":10,"context_line":"repository under the token checks. This is to allow for more"},{"line_number":11,"context_line":"generic checking when using token providers that use similar"},{"line_number":12,"context_line":"key rotation functionality."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I356b9f90d8c2e07f65e788f93fc115d0d408df11"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f96bb07_8bfaab72","line":12,"range":{"start_line":10,"start_character":35,"end_line":12,"end_character":27},"updated":"2018-01-15 16:41:18.000000000","message":"What about other things that use fernet utils, like the credential API?\n\nDo we need doctor checks for credential API configuration? If so, does moving this in to the token checks still make sense?","commit_id":"4701f3102a2da22ccbb676a3b5959bd41084303e"}],"keystone/cmd/cli.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"edb228dd849725f6b193eaaf1171081340a37f75","unresolved":false,"context_lines":[{"line_number":663,"context_line":"            tutils.rotate_keys(keystone_user_id, keystone_group_id)"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":""},{"line_number":666,"context_line":"class TokenSetup(BasePermissionsSetup):"},{"line_number":667,"context_line":"    \"\"\"Setup a key repository for tokens."},{"line_number":668,"context_line":""},{"line_number":669,"context_line":"    This also creates a primary key used for both creating and validating"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf659307_d4d09853","line":666,"updated":"2018-03-26 02:58:09.000000000","message":"It\u0027s a little duplicated with https://review.openstack.org/#/c/547657\nI guess you can rebase the patch on that one.","commit_id":"95e2440bb883c37ff5631fcb4b5df6c6978092b1"}],"keystone/cmd/doctor/tokens.py":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"349a321ce8f39637f308e546937e2ad48806bf42","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    `keystone-manage token_setup` to initially populate your key repository"},{"line_number":49,"context_line":"    with keys, and periodically rotate your keys with"},{"line_number":50,"context_line":"    `keystone-manage token_rotate`."},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":"    token_utils \u003d utils.TokenUtils("},{"line_number":53,"context_line":"        CONF.fernet_tokens.key_repository,"},{"line_number":54,"context_line":"        CONF.fernet_tokens.max_active_keys,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bf659307_2861c9d3","line":51,"updated":"2018-04-13 09:26:19.000000000","message":"it\u0027s good to add a TODO that the code will be refactored once JWT landed.","commit_id":"bbb9aed542b32920cf2ebe03d0528e7e25d42b8a"}],"keystone/tests/unit/test_cli.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dae89f9bc83f35cd91e76accee4276f3a9440cf6","unresolved":false,"context_lines":[{"line_number":1255,"context_line":"        self.assertFalse(tokens.symptom_unreasonable_max_token_size())"},{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":""},{"line_number":1258,"context_line":"class TokenDoctorTests(unit.TestCase):"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"    @mock.patch(\u0027keystone.cmd.doctor.tokens.utils\u0027)"},{"line_number":1261,"context_line":"    def test_usability_of_Fernet_key_repository_raised(self, mock_utils):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_0bf3f874","line":1258,"range":{"start_line":1258,"start_character":6,"end_line":1258,"end_character":22},"updated":"2018-04-10 18:13:43.000000000","message":"These can be consolidated into the class above.","commit_id":"7647db35052afbc4628db771fa9586b0096ebd07"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"5c32497297f7940759ad1645071db60e62757732","unresolved":false,"context_lines":[{"line_number":1255,"context_line":"        self.assertFalse(tokens.symptom_unreasonable_max_token_size())"},{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":""},{"line_number":1258,"context_line":"class TokenDoctorTests(unit.TestCase):"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"    @mock.patch(\u0027keystone.cmd.doctor.tokens.utils\u0027)"},{"line_number":1261,"context_line":"    def test_usability_of_Fernet_key_repository_raised(self, mock_utils):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_4e8c9e7e","line":1258,"range":{"start_line":1258,"start_character":6,"end_line":1258,"end_character":22},"in_reply_to":"bf659307_0bf3f874","updated":"2018-04-10 18:27:12.000000000","message":"Done","commit_id":"7647db35052afbc4628db771fa9586b0096ebd07"}]}
