)]}'
{"keystone/tests/unit/test_auth.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ea791e5f1d793eb31795f5a58947e3e99afcd3f8","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        # audit_chain_id will also return None."},{"line_number":602,"context_line":"        return [None, None]"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def test_revoke_with_no_audit_info(self):"},{"line_number":605,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, revoke_by_id\u003dFalse)"},{"line_number":606,"context_line":"        context \u003d {}"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_d57a6187","line":604,"updated":"2016-02-29 23:09:58.000000000","message":"since tokens will always have audit info, this whole test is invalid and should be removed.","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"166a6e56da2114714ce58513b2616374c4f3e568","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        # audit_chain_id will also return None."},{"line_number":602,"context_line":"        return [None, None]"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def test_revoke_with_no_audit_info(self):"},{"line_number":605,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, revoke_by_id\u003dFalse)"},{"line_number":606,"context_line":"        context \u003d {}"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_abd6dcc2","line":604,"in_reply_to":"9aed3d3a_d57a6187","updated":"2016-03-02 04:16:44.000000000","message":"Done","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"}],"keystone/tests/unit/test_revoke.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ea791e5f1d793eb31795f5a58947e3e99afcd3f8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                          token_values)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # Move our clock forward by 2h, build a new token and validate it."},{"line_number":166,"context_line":"        # \u0027synchronize\u0027 should now be exercised and remove old expired events"},{"line_number":167,"context_line":"        mock_utcnow.return_value \u003d now_plus_2h"},{"line_number":168,"context_line":"        self.revoke_api.revoke_by_expiration(_new_id(), now_plus_2h)"},{"line_number":169,"context_line":"        # should no longer throw an exception"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_d5ef011c","side":"PARENT","line":166,"updated":"2016-02-29 23:09:58.000000000","message":"This isn\u0027t testing revoke_by_expiration, it\u0027s testing that expired events are removed. So the test needs to stay here but be changed... probably just revoke by audit ID instead.","commit_id":"116e0fa52808861bd4979163ac917cccf8f2c9fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"166a6e56da2114714ce58513b2616374c4f3e568","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                          token_values)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        # Move our clock forward by 2h, build a new token and validate it."},{"line_number":166,"context_line":"        # \u0027synchronize\u0027 should now be exercised and remove old expired events"},{"line_number":167,"context_line":"        mock_utcnow.return_value \u003d now_plus_2h"},{"line_number":168,"context_line":"        self.revoke_api.revoke_by_expiration(_new_id(), now_plus_2h)"},{"line_number":169,"context_line":"        # should no longer throw an exception"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_81d01f55","side":"PARENT","line":166,"in_reply_to":"9aed3d3a_d5ef011c","updated":"2016-03-02 04:16:44.000000000","message":"Done... sorta... i end up just basically calling revok_by_audit_chain_id and it\u0027s over","commit_id":"116e0fa52808861bd4979163ac917cccf8f2c9fd"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"25293626f6cf0f82e3a99434d74bc4dda47f7a41","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.events.append(event)"},{"line_number":267,"context_line":"        return event"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def _revoke_by_expiration(self, user_id, expires_at, project_id\u003dNone,"},{"line_number":270,"context_line":"                              domain_id\u003dNone):"},{"line_number":271,"context_line":"        event \u003d self.tree.add_event("},{"line_number":272,"context_line":"            model.RevokeEvent(user_id\u003duser_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_75c3f8ed","side":"PARENT","line":269,"updated":"2016-02-05 01:22:43.000000000","message":"This should be removed - it doesn\u0027t look like it\u0027s being used anymore.","commit_id":"116e0fa52808861bd4979163ac917cccf8f2c9fd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c39eb98852eb64a14f2f79650218c4fe4ac68680","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        self.events.append(event)"},{"line_number":267,"context_line":"        return event"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def _revoke_by_expiration(self, user_id, expires_at, project_id\u003dNone,"},{"line_number":270,"context_line":"                              domain_id\u003dNone):"},{"line_number":271,"context_line":"        event \u003d self.tree.add_event("},{"line_number":272,"context_line":"            model.RevokeEvent(user_id\u003duser_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_9a3979f5","side":"PARENT","line":269,"in_reply_to":"5a5ae5dd_75c3f8ed","updated":"2016-02-09 01:02:10.000000000","message":"it\u0027s still used by test_cleanup (bottom of the file)","commit_id":"116e0fa52808861bd4979163ac917cccf8f2c9fd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"d318eb4b870c0c6774caeb3a214895bc4706f5ff","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        future_time \u003d _future_time()"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        user_id \u003d 1"},{"line_number":341,"context_line":"        event \u003d self._revoke_by_expiration(user_id, future_time)"},{"line_number":342,"context_line":"        token_data_1 \u003d _sample_blank_token()"},{"line_number":343,"context_line":"        token_data_1[\u0027user_id\u0027] \u003d user_id"},{"line_number":344,"context_line":"        token_data_1[\u0027expires_at\u0027] \u003d future_time.replace(microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a5de9d1_24044716","side":"PARENT","line":341,"range":{"start_line":341,"start_character":21,"end_line":341,"end_character":64},"updated":"2016-01-30 13:35:39.000000000","message":"Not quite sure about this. We are removing revoke_by_expiration function and remove the testcase that calls `_revoke_by_expiration` too.\n\nAre we going to remove `_revoke_by_expiration` @ L269 as well?","commit_id":"116e0fa52808861bd4979163ac917cccf8f2c9fd"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"541f319828e12d8bf19ab1b1aa75cec7c45619ff","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    def test_revoke_by_user_matches_trustor(self):"},{"line_number":336,"context_line":"        self._user_field_test(\u0027trustor_id\u0027)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def test_by_user_expiration(self):"},{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_6d964840","side":"PARENT","line":338,"range":{"start_line":338,"start_character":4,"end_line":338,"end_character":38},"updated":"2016-03-03 14:08:26.000000000","message":"why remove this testcase? this doesn\u0027t looks like relevant with `audit_id` or `audit_chain_id`.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dcd6418cbeefcc29872167f3acfc2c020b54a5e0","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    def test_revoke_by_user_matches_trustor(self):"},{"line_number":336,"context_line":"        self._user_field_test(\u0027trustor_id\u0027)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    def test_by_user_expiration(self):"},{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_d6ef0f1c","side":"PARENT","line":338,"range":{"start_line":338,"start_character":4,"end_line":338,"end_character":38},"in_reply_to":"7af24918_6d964840","updated":"2016-03-03 16:49:21.000000000","message":"revoking by expiration isn\u0027t supported anymore so no need to test this.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"439f31e54fde113143cd528dcc596caf7f40ef85","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"},{"line_number":342,"context_line":"        event \u003d self._revoke_by_expiration(user_id, future_time)"},{"line_number":343,"context_line":"        token_data_1 \u003d _sample_blank_token()"},{"line_number":344,"context_line":"        token_data_1[\u0027user_id\u0027] \u003d user_id"},{"line_number":345,"context_line":"        token_data_1[\u0027expires_at\u0027] \u003d future_time.replace(microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_8ab1c849","side":"PARENT","line":342,"updated":"2016-05-10 23:11:54.000000000","message":"No this should not be kept at all if revoke_by_expiration is not used.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"541f319828e12d8bf19ab1b1aa75cec7c45619ff","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"},{"line_number":342,"context_line":"        event \u003d self._revoke_by_expiration(user_id, future_time)"},{"line_number":343,"context_line":"        token_data_1 \u003d _sample_blank_token()"},{"line_number":344,"context_line":"        token_data_1[\u0027user_id\u0027] \u003d user_id"},{"line_number":345,"context_line":"        token_data_1[\u0027expires_at\u0027] \u003d future_time.replace(microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_3edd7ae0","side":"PARENT","line":342,"range":{"start_line":342,"start_character":8,"end_line":342,"end_character":64},"updated":"2016-03-03 14:08:26.000000000","message":"now that `_revoke_by_expiration` is still used by test_cleanup, should we just keep it here? otherwise remove `_revoke_by_expiration` and the reference from cleanup?","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dcd6418cbeefcc29872167f3acfc2c020b54a5e0","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"},{"line_number":342,"context_line":"        event \u003d self._revoke_by_expiration(user_id, future_time)"},{"line_number":343,"context_line":"        token_data_1 \u003d _sample_blank_token()"},{"line_number":344,"context_line":"        token_data_1[\u0027user_id\u0027] \u003d user_id"},{"line_number":345,"context_line":"        token_data_1[\u0027expires_at\u0027] \u003d future_time.replace(microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_76df1b69","side":"PARENT","line":342,"range":{"start_line":342,"start_character":8,"end_line":342,"end_character":64},"in_reply_to":"7af24918_3edd7ae0","updated":"2016-03-03 16:49:21.000000000","message":"keep what here?","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3d3cc08b1429c2541f5043a1bf932bc117787910","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        future_time \u003d _future_time()"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        user_id \u003d 1"},{"line_number":342,"context_line":"        event \u003d self._revoke_by_expiration(user_id, future_time)"},{"line_number":343,"context_line":"        token_data_1 \u003d _sample_blank_token()"},{"line_number":344,"context_line":"        token_data_1[\u0027user_id\u0027] \u003d user_id"},{"line_number":345,"context_line":"        token_data_1[\u0027expires_at\u0027] \u003d future_time.replace(microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_9bf6205b","side":"PARENT","line":342,"range":{"start_line":342,"start_character":8,"end_line":342,"end_character":64},"in_reply_to":"7af24918_76df1b69","updated":"2016-03-04 12:39:15.000000000","message":"so that _revoke_by_expiration is only referenced in the test_cleanup, don\u0027t think this is needed anymore, the method can be removed and from the test_cleanup as well.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"541f319828e12d8bf19ab1b1aa75cec7c45619ff","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        self._assertTokenNotRevoked(token_data_1)"},{"line_number":395,"context_line":"        self._assertTokenNotRevoked(token_data_2)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def test_by_user_project(self):"},{"line_number":398,"context_line":"        # When a user has a project-scoped token and the project-scoped token"},{"line_number":399,"context_line":"        # is revoked then the token is revoked."},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        user_id \u003d _new_id()"},{"line_number":402,"context_line":"        project_id \u003d _new_id()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_8db8f4c9","side":"PARENT","line":399,"range":{"start_line":397,"start_character":4,"end_line":399,"end_character":46},"updated":"2016-03-03 14:08:26.000000000","message":"same here, this is not much clear why this is removed.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dcd6418cbeefcc29872167f3acfc2c020b54a5e0","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        self._assertTokenNotRevoked(token_data_1)"},{"line_number":395,"context_line":"        self._assertTokenNotRevoked(token_data_2)"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def test_by_user_project(self):"},{"line_number":398,"context_line":"        # When a user has a project-scoped token and the project-scoped token"},{"line_number":399,"context_line":"        # is revoked then the token is revoked."},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"        user_id \u003d _new_id()"},{"line_number":402,"context_line":"        project_id \u003d _new_id()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_96b90718","side":"PARENT","line":399,"range":{"start_line":397,"start_character":4,"end_line":399,"end_character":46},"in_reply_to":"7af24918_8db8f4c9","updated":"2016-03-03 16:49:21.000000000","message":"this was testing revoking by expiration which isn\u0027t supported anymore.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"541f319828e12d8bf19ab1b1aa75cec7c45619ff","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        self._revoke_by_expiration(user_id, future_time, project_id\u003dproject_id)"},{"line_number":412,"context_line":"        self._assertTokenRevoked(token_data)"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"    def test_by_user_domain(self):"},{"line_number":415,"context_line":"        # When a user has a domain-scoped token and the domain-scoped token"},{"line_number":416,"context_line":"        # is revoked then the token is revoked."},{"line_number":417,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_cdae7c80","side":"PARENT","line":414,"range":{"start_line":414,"start_character":4,"end_line":414,"end_character":34},"updated":"2016-03-03 14:08:26.000000000","message":"same here.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"541f319828e12d8bf19ab1b1aa75cec7c45619ff","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # \u0027synchronize\u0027 should now be exercised and remove old expired events"},{"line_number":157,"context_line":"        mock_utcnow.return_value \u003d now_plus_2h"},{"line_number":158,"context_line":"        self.revoke_api.revoke_by_audit_chain_id(audit_chain_id)"},{"line_number":159,"context_line":"        # should no longer throw an exception"},{"line_number":160,"context_line":"        self.assertRaises(exception.TokenNotFound,"},{"line_number":161,"context_line":"                          self.revoke_api.check_token,"},{"line_number":162,"context_line":"                          token_values)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_971485a0","line":159,"range":{"start_line":159,"start_character":10,"end_line":159,"end_character":45},"updated":"2016-03-03 14:08:26.000000000","message":"nits: update the comments, it\u0027s no longer valid.","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"33e250f7467511a748f6e271da74a5fe84275ad8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # \u0027synchronize\u0027 should now be exercised and remove old expired events"},{"line_number":157,"context_line":"        mock_utcnow.return_value \u003d now_plus_2h"},{"line_number":158,"context_line":"        self.revoke_api.revoke_by_audit_chain_id(audit_chain_id)"},{"line_number":159,"context_line":"        # should no longer throw an exception"},{"line_number":160,"context_line":"        self.assertRaises(exception.TokenNotFound,"},{"line_number":161,"context_line":"                          self.revoke_api.check_token,"},{"line_number":162,"context_line":"                          token_values)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_9fbd7cda","line":159,"range":{"start_line":159,"start_character":10,"end_line":159,"end_character":45},"in_reply_to":"7af24918_971485a0","updated":"2016-05-22 06:53:13.000000000","message":"Done","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"}],"keystone/tests/unit/test_v3_os_revoke.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b53765309707b51f568e79388792989729e2343b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        links \u003d resp.json_body[\u0027links\u0027]"},{"line_number":72,"context_line":"        self.assertThat(links[\u0027self\u0027], matchers.EndsWith(revoked_list_url))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_revoked_token_in_list(self):"},{"line_number":75,"context_line":"        user_id \u003d uuid.uuid4().hex"},{"line_number":76,"context_line":"        expires_at \u003d provider.default_expire_time()"},{"line_number":77,"context_line":"        sample \u003d self._blank_event()"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_b4fa7873","side":"PARENT","line":74,"updated":"2016-03-02 22:18:00.000000000","message":"this test should be changed to revoke a token by audit_id since there isn\u0027t one in this class.","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8a673949ff3710ca1c7283715cf12407ab262f92","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        links \u003d resp.json_body[\u0027links\u0027]"},{"line_number":72,"context_line":"        self.assertThat(links[\u0027self\u0027], matchers.EndsWith(revoked_list_url))"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_revoked_token_in_list(self):"},{"line_number":75,"context_line":"        user_id \u003d uuid.uuid4().hex"},{"line_number":76,"context_line":"        expires_at \u003d provider.default_expire_time()"},{"line_number":77,"context_line":"        sample \u003d self._blank_event()"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_df6c7137","side":"PARENT","line":74,"in_reply_to":"7af24918_b4fa7873","updated":"2016-03-03 04:27:13.000000000","message":"Done","commit_id":"1ee14754ea1581fa57f25dfae0868c00b9bef728"}],"keystone/token/provider.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ea791e5f1d793eb31795f5a58947e3e99afcd3f8","unresolved":false,"context_lines":[{"line_number":408,"context_line":"            token_id\u003dtoken_id,"},{"line_number":409,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_75dd55df","line":411,"updated":"2016-02-29 23:09:58.000000000","message":"this should be moved down to line 423.","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"166a6e56da2114714ce58513b2616374c4f3e568","unresolved":false,"context_lines":[{"line_number":408,"context_line":"            token_id\u003dtoken_id,"},{"line_number":409,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_c1f34709","line":411,"in_reply_to":"9aed3d3a_75dd55df","updated":"2016-03-02 04:16:44.000000000","message":"Done","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ea791e5f1d793eb31795f5a58947e3e99afcd3f8","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"},{"line_number":415,"context_line":"        if token_ref.domain_scoped:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_5553f16a","line":412,"updated":"2016-02-29 23:09:58.000000000","message":"this should be moved down to line 419.","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"166a6e56da2114714ce58513b2616374c4f3e568","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"},{"line_number":415,"context_line":"        if token_ref.domain_scoped:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_61eeb323","line":412,"in_reply_to":"9aed3d3a_5553f16a","updated":"2016-03-02 04:16:44.000000000","message":"Done","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ea791e5f1d793eb31795f5a58947e3e99afcd3f8","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"},{"line_number":415,"context_line":"        if token_ref.domain_scoped:"},{"line_number":416,"context_line":"            domain_id \u003d token_ref.domain_id"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        if revoke_chain:"},{"line_number":419,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(audit_chain_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aed3d3a_f59685ee","line":416,"range":{"start_line":413,"start_character":0,"end_line":416,"end_character":43},"updated":"2016-02-29 23:09:58.000000000","message":"this should be moved into the \"if revoke_chain\" block since it\u0027s not used otherwise.","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"166a6e56da2114714ce58513b2616374c4f3e568","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        audit_id \u003d token_ref.audit_id"},{"line_number":412,"context_line":"        audit_chain_id \u003d token_ref.audit_chain_id"},{"line_number":413,"context_line":"        if token_ref.project_scoped:"},{"line_number":414,"context_line":"            project_id \u003d token_ref.project_id"},{"line_number":415,"context_line":"        if token_ref.domain_scoped:"},{"line_number":416,"context_line":"            domain_id \u003d token_ref.domain_id"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"        if revoke_chain:"},{"line_number":419,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(audit_chain_id,"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_2b912cf1","line":416,"range":{"start_line":413,"start_character":0,"end_line":416,"end_character":43},"in_reply_to":"9aed3d3a_f59685ee","updated":"2016-03-02 04:16:44.000000000","message":"Done","commit_id":"84b987d1183c54447f66ff98bed739533332d17c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b53765309707b51f568e79388792989729e2343b","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        self._validate_v3_token.invalidate(self, token_id)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    def revoke_token(self, token_id, revoke_chain\u003dFalse):"},{"line_number":421,"context_line":"        project_id \u003d None"},{"line_number":422,"context_line":"        domain_id \u003d None"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        token_ref \u003d token_model.KeystoneToken("}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_f41ec0b9","line":421,"updated":"2016-03-02 22:18:00.000000000","message":"these should be moved down into the \"if revoke_chain\" since it\u0027s only used there.","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8a673949ff3710ca1c7283715cf12407ab262f92","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        self._validate_v3_token.invalidate(self, token_id)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    def revoke_token(self, token_id, revoke_chain\u003dFalse):"},{"line_number":421,"context_line":"        project_id \u003d None"},{"line_number":422,"context_line":"        domain_id \u003d None"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        token_ref \u003d token_model.KeystoneToken("}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_3c2e43a5","line":421,"in_reply_to":"7af24918_f41ec0b9","updated":"2016-03-03 04:27:13.000000000","message":"Done","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b53765309707b51f568e79388792989729e2343b","unresolved":false,"context_lines":[{"line_number":430,"context_line":"            if token_ref.project_scoped:"},{"line_number":431,"context_line":"                project_id \u003d token_ref.project_id"},{"line_number":432,"context_line":"            if token_ref.domain_scoped:"},{"line_number":433,"context_line":"                domain_id \u003d token_ref.domain_id"},{"line_number":434,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(audit_chain_id,"},{"line_number":435,"context_line":"                                                     project_id\u003dproject_id,"},{"line_number":436,"context_line":"                                                     domain_id\u003ddomain_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_748110c3","line":433,"updated":"2016-03-02 22:18:00.000000000","message":"there\u0027s no need for any of these variables.","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8a673949ff3710ca1c7283715cf12407ab262f92","unresolved":false,"context_lines":[{"line_number":430,"context_line":"            if token_ref.project_scoped:"},{"line_number":431,"context_line":"                project_id \u003d token_ref.project_id"},{"line_number":432,"context_line":"            if token_ref.domain_scoped:"},{"line_number":433,"context_line":"                domain_id \u003d token_ref.domain_id"},{"line_number":434,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(audit_chain_id,"},{"line_number":435,"context_line":"                                                     project_id\u003dproject_id,"},{"line_number":436,"context_line":"                                                     domain_id\u003ddomain_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_ff15ed3f","line":433,"in_reply_to":"7af24918_748110c3","updated":"2016-03-03 04:27:13.000000000","message":"i\u0027m assuming you mean to just ignore the domain and project? that works, i suppose","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b53765309707b51f568e79388792989729e2343b","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                                                     project_id\u003dproject_id,"},{"line_number":436,"context_line":"                                                     domain_id\u003ddomain_id)"},{"line_number":437,"context_line":"        else:"},{"line_number":438,"context_line":"            audit_id \u003d token_ref.audit_id"},{"line_number":439,"context_line":"            self.revoke_api.revoke_by_audit_id(audit_id)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        if CONF.token.revoke_by_id and self._needs_persistence:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_3414a89e","line":438,"updated":"2016-03-02 22:18:00.000000000","message":"no need for a new variable, just use it in the next line.","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8a673949ff3710ca1c7283715cf12407ab262f92","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                                                     project_id\u003dproject_id,"},{"line_number":436,"context_line":"                                                     domain_id\u003ddomain_id)"},{"line_number":437,"context_line":"        else:"},{"line_number":438,"context_line":"            audit_id \u003d token_ref.audit_id"},{"line_number":439,"context_line":"            self.revoke_api.revoke_by_audit_id(audit_id)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"        if CONF.token.revoke_by_id and self._needs_persistence:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7af24918_dc247fc6","line":438,"in_reply_to":"7af24918_3414a89e","updated":"2016-03-03 04:27:13.000000000","message":"Done","commit_id":"842adf5cf4af12bdf3152bba4700c7b959a1474d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"439f31e54fde113143cd528dcc596caf7f40ef85","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if revoke_chain:"},{"line_number":426,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(token_ref.audit_chain_id)"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            self.revoke_api.revoke_by_audit_id(token_ref.audit_id)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_6aae24e7","line":426,"updated":"2016-05-10 23:11:54.000000000","message":"++","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dcd6418cbeefcc29872167f3acfc2c020b54a5e0","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if revoke_chain:"},{"line_number":426,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(token_ref.audit_chain_id)"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            self.revoke_api.revoke_by_audit_id(token_ref.audit_id)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_767efb19","line":426,"updated":"2016-03-03 16:49:21.000000000","message":"why doesn\u0027t this pass the token project_id and domain_id anymore? I guess there\u0027s no tests for it so not sure why the scope is needed.\n\nAlso, now revoke_by_audit_chain_id in the revoke manager should be changed to not take the project_id and domain_id.","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"33e250f7467511a748f6e271da74a5fe84275ad8","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            token_data\u003dself.validate_token(token_id))"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if revoke_chain:"},{"line_number":426,"context_line":"            self.revoke_api.revoke_by_audit_chain_id(token_ref.audit_chain_id)"},{"line_number":427,"context_line":"        else:"},{"line_number":428,"context_line":"            self.revoke_api.revoke_by_audit_id(token_ref.audit_id)"},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_7fc09850","line":426,"in_reply_to":"dab17558_6aae24e7","updated":"2016-05-22 06:53:13.000000000","message":"Done","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"}],"releasenotes/notes/removed-as-of-mitaka-9ff14f87d0b98e7e.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"33e250f7467511a748f6e271da74a5fe84275ad8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    Removed Revoke KVS backend (``keystone.revoke.backends.kvs.Revoke``)."},{"line_number":44,"context_line":"    This was deprecated in the Juno release."},{"line_number":45,"context_line":"  - \u003e"},{"line_number":46,"context_line":"    [`blueprint removed-as-of-mitaka \u003chttps://blueprints.launchpad.net/keystone/+spec/removed-as-of-mitaka\u003e`_]"},{"line_number":47,"context_line":"    The ``revoke_by_expiration`` method in ``keystone.revoke.core`` has been"},{"line_number":48,"context_line":"    removed. This was deprecated in the Juno release."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"bab6814e_dfb38408","line":48,"range":{"start_line":46,"start_character":0,"end_line":48,"end_character":53},"updated":"2016-05-22 06:53:13.000000000","message":"moved this to newton","commit_id":"f9cc3d31990382b3c838348f026974dd22efc883"}]}
