)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3a0740ce8d5b124edbffa6811ab9687db1233d11","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, we would list all tokens that going to be deleted before"},{"line_number":10,"context_line":"deleting tokens to invalidate cache. There are two issues here:"},{"line_number":11,"context_line":"1. Tokens got before may not equal with tokens that deleted"},{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a80dd14_0937dce3","line":11,"updated":"2015-03-16 12:22:22.000000000","message":"suggest rephrase to \"Previously fetched tokens may not be equal to deleted tokens\"","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ef6b90a6800d4cd06e5ad58f45758ecace3d4191","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, we would list all tokens that going to be deleted before"},{"line_number":10,"context_line":"deleting tokens to invalidate cache. There are two issues here:"},{"line_number":11,"context_line":"1. Tokens got before may not equal with tokens that deleted"},{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6ced46_3a399341","line":11,"in_reply_to":"9a80dd14_0937dce3","updated":"2015-03-25 19:27:05.000000000","message":"Done","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3a0740ce8d5b124edbffa6811ab9687db1233d11","unresolved":false,"context_lines":[{"line_number":10,"context_line":"deleting tokens to invalidate cache. There are two issues here:"},{"line_number":11,"context_line":"1. Tokens got before may not equal with tokens that deleted"},{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We can make delete_tokens method return the tokens deleted to void"},{"line_number":16,"context_line":"listing tokens."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a80dd14_49447446","line":13,"updated":"2015-03-16 12:22:22.000000000","message":"Rephrase to \"The current code lists tokens twice both using sql and kvs backends\"","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ef6b90a6800d4cd06e5ad58f45758ecace3d4191","unresolved":false,"context_lines":[{"line_number":10,"context_line":"deleting tokens to invalidate cache. There are two issues here:"},{"line_number":11,"context_line":"1. Tokens got before may not equal with tokens that deleted"},{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We can make delete_tokens method return the tokens deleted to void"},{"line_number":16,"context_line":"listing tokens."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6ced46_9a47e7bb","line":13,"in_reply_to":"9a80dd14_49447446","updated":"2015-03-25 19:27:05.000000000","message":"Done","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3a0740ce8d5b124edbffa6811ab9687db1233d11","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We can make delete_tokens method return the tokens deleted to void"},{"line_number":16,"context_line":"listing tokens."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Id6c1272915f03d6eeccf9b3e0a326ab35286bdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a80dd14_e969a8be","line":15,"updated":"2015-03-16 12:22:22.000000000","message":"s/void/avoid","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ef6b90a6800d4cd06e5ad58f45758ecace3d4191","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2. According to current code, we do list twice both in sql and kvs"},{"line_number":13,"context_line":"   backends"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"We can make delete_tokens method return the tokens deleted to void"},{"line_number":16,"context_line":"listing tokens."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Id6c1272915f03d6eeccf9b3e0a326ab35286bdfd"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6ced46_da14ffa1","line":15,"in_reply_to":"9a80dd14_e969a8be","updated":"2015-03-25 19:27:05.000000000","message":"Done","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"}],"keystone/token/persistence/core.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"604d7e84dd92c21dac4ec01d93517e83fc607abd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if not CONF.token.revoke_by_id:"},{"line_number":113,"context_line":"            return"},{"line_number":114,"context_line":"        token_list \u003d self.driver.delete_tokens(user_id, tenant_id, trust_id,"},{"line_number":115,"context_line":"                                               consumer_id)"},{"line_number":116,"context_line":"        for token_id in token_list:"},{"line_number":117,"context_line":"            unique_id \u003d self.token_provider_api.unique_id(token_id)"},{"line_number":118,"context_line":"            self._invalidate_individual_token_cache(unique_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_d1af5d29","line":115,"updated":"2015-02-18 23:42:11.000000000","message":"This changes the definition of delete_tokens() as described in https://github.com/openstack/keystone/blob/master/keystone/token/persistence/core.py#L300","commit_id":"808114b607b5bacd153ae274c075cbb9051753b5"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"fd997f64398ed3aa12c6bd654c8db4a44546a1fd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        if not CONF.token.revoke_by_id:"},{"line_number":113,"context_line":"            return"},{"line_number":114,"context_line":"        token_list \u003d self.driver.delete_tokens(user_id, tenant_id, trust_id,"},{"line_number":115,"context_line":"                                               consumer_id)"},{"line_number":116,"context_line":"        for token_id in token_list:"},{"line_number":117,"context_line":"            unique_id \u003d self.token_provider_api.unique_id(token_id)"},{"line_number":118,"context_line":"            self._invalidate_individual_token_cache(unique_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_e93f31b2","line":115,"in_reply_to":"da86d52c_d1af5d29","updated":"2015-02-25 04:05:05.000000000","message":"I will change the docstring.","commit_id":"808114b607b5bacd153ae274c075cbb9051753b5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"604d7e84dd92c21dac4ec01d93517e83fc607abd","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            return"},{"line_number":114,"context_line":"        token_list \u003d self.driver.delete_tokens(user_id, tenant_id, trust_id,"},{"line_number":115,"context_line":"                                               consumer_id)"},{"line_number":116,"context_line":"        for token_id in token_list:"},{"line_number":117,"context_line":"            unique_id \u003d self.token_provider_api.unique_id(token_id)"},{"line_number":118,"context_line":"            self._invalidate_individual_token_cache(unique_id)"},{"line_number":119,"context_line":"        self.invalidate_revocation_list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_11a65554","line":116,"updated":"2015-02-18 23:42:11.000000000","message":"Can\u0027t we just add the self.delete_token(token_id) call here?","commit_id":"808114b607b5bacd153ae274c075cbb9051753b5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"ecaf3ae81c57336be2a5ad1b8872ae100f1fda94","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            return"},{"line_number":114,"context_line":"        token_list \u003d self.driver.delete_tokens(user_id, tenant_id, trust_id,"},{"line_number":115,"context_line":"                                               consumer_id)"},{"line_number":116,"context_line":"        for token_id in token_list:"},{"line_number":117,"context_line":"            unique_id \u003d self.token_provider_api.unique_id(token_id)"},{"line_number":118,"context_line":"            self._invalidate_individual_token_cache(unique_id)"},{"line_number":119,"context_line":"        self.invalidate_revocation_list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_34f0b9fd","line":116,"in_reply_to":"ba7be1f8_8e423b66","updated":"2015-02-25 07:17:37.000000000","message":"ah right, we\u0027ll lose the performance benefit of the SQL implementation.","commit_id":"808114b607b5bacd153ae274c075cbb9051753b5"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"fd997f64398ed3aa12c6bd654c8db4a44546a1fd","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            return"},{"line_number":114,"context_line":"        token_list \u003d self.driver.delete_tokens(user_id, tenant_id, trust_id,"},{"line_number":115,"context_line":"                                               consumer_id)"},{"line_number":116,"context_line":"        for token_id in token_list:"},{"line_number":117,"context_line":"            unique_id \u003d self.token_provider_api.unique_id(token_id)"},{"line_number":118,"context_line":"            self._invalidate_individual_token_cache(unique_id)"},{"line_number":119,"context_line":"        self.invalidate_revocation_list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_8e423b66","line":116,"in_reply_to":"da86d52c_11a65554","updated":"2015-02-25 04:05:05.000000000","message":"This would reduce the performance of sql. And actually, this is how kvs implements delete_tokens.","commit_id":"808114b607b5bacd153ae274c075cbb9051753b5"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"00e3915ec3f7116ff9f500aeae84573268218e79","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                self.delete_token(token)"},{"line_number":334,"context_line":"            except exception.NotFound:"},{"line_number":335,"context_line":"                pass"},{"line_number":336,"context_line":"        return token_list"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    @abc.abstractmethod"},{"line_number":339,"context_line":"    def _list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_cacfb854","line":336,"updated":"2015-02-25 08:49:34.000000000","message":"I already make this method return the deleted tokens, so the delete_tokens method in kvs driver https://github.com/openstack/keystone/blob/master/keystone/token/persistence/backends/kvs.py#L260 would return it too.","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2a6ceaaeded6179723aa7deaf7ca63bbba01b706","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                self.delete_token(token)"},{"line_number":334,"context_line":"            except exception.NotFound:"},{"line_number":335,"context_line":"                pass"},{"line_number":336,"context_line":"        return token_list"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    @abc.abstractmethod"},{"line_number":339,"context_line":"    def _list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_54aef498","line":336,"in_reply_to":"ba7be1f8_cacfb854","updated":"2015-02-25 16:36:21.000000000","message":"You\u0027re right, this covers the case I was thinking.","commit_id":"f4964529bba0f10df03cb4bc956a6b5cbbf6efd1"}]}
