)]}'
{"keystone/contrib/revoke/model.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2275842e9479a91d0eab797e9073bb4be8c1d823","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# Alternative names to be checked in token for every field in"},{"line_number":48,"context_line":"# revoke tree."},{"line_number":49,"context_line":"ALTERNATIVES \u003d {"},{"line_number":50,"context_line":"    \u0027user_id\u0027: [\u0027user_id\u0027, \u0027trustor_id\u0027, \u0027trustee_id\u0027],"},{"line_number":51,"context_line":"    \u0027domain_id\u0027: [\u0027identity_domain_id\u0027, \u0027assignment_domain_id\u0027],"},{"line_number":52,"context_line":"    # For a domain-scoped token, the domain is in assignment_domain_id."},{"line_number":53,"context_line":"    \u0027domain_scope_id\u0027: [\u0027assignment_domain_id\u0027, ],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_62decc40","line":50,"updated":"2015-06-08 20:54:48.000000000","message":"i know it\u0027s not new here, but these should probably be tuples","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"76ee86886751c14dd5b11b261052820c7c79935c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# Alternative names to be checked in token for every field in"},{"line_number":48,"context_line":"# revoke tree."},{"line_number":49,"context_line":"ALTERNATIVES \u003d {"},{"line_number":50,"context_line":"    \u0027user_id\u0027: [\u0027user_id\u0027, \u0027trustor_id\u0027, \u0027trustee_id\u0027],"},{"line_number":51,"context_line":"    \u0027domain_id\u0027: [\u0027identity_domain_id\u0027, \u0027assignment_domain_id\u0027],"},{"line_number":52,"context_line":"    # For a domain-scoped token, the domain is in assignment_domain_id."},{"line_number":53,"context_line":"    \u0027domain_scope_id\u0027: [\u0027assignment_domain_id\u0027, ],"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_3cb0cc89","line":50,"in_reply_to":"3afb71cf_62decc40","updated":"2015-06-09 16:48:54.000000000","message":"Made a new CR for it: https://review.openstack.org/189810","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3d7e4e2e83e4da017f6458d1f1ac1b69ffdd6a2b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            for alt_name in ALTERNATIVES.get(name, [name]):"},{"line_number":209,"context_line":"                yield token_data[alt_name]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _search(self, revoke_map, names, token_data):"},{"line_number":212,"context_line":"        \"\"\"Search for revocation event by token_data"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        Traverse the revocation events tree looking for event matching token"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_0510424d","line":211,"updated":"2015-06-08 21:12:38.000000000","message":"token_data never changes, might be the case to add it in a global var to avoid copying it in every recursion?","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"b399432c2180c2647069c86d287c6273cd3eb5ba","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            for alt_name in ALTERNATIVES.get(name, [name]):"},{"line_number":209,"context_line":"                yield token_data[alt_name]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _search(self, revoke_map, names, token_data):"},{"line_number":212,"context_line":"        \"\"\"Search for revocation event by token_data"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        Traverse the revocation events tree looking for event matching token"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_23b7a4f6","line":211,"in_reply_to":"3afb71cf_0510424d","updated":"2015-06-09 09:21:44.000000000","message":"This will make _search non-reentrant - I always try to avoid it. Never know when somebody run your code using multi-threaded setup :)","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"401e30c9c5841e96f88b689297747b4b42f7929d","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            for alt_name in ALTERNATIVES.get(name, [name]):"},{"line_number":209,"context_line":"                yield token_data[alt_name]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _search(self, revoke_map, names, token_data):"},{"line_number":212,"context_line":"        \"\"\"Search for revocation event by token_data"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        Traverse the revocation events tree looking for event matching token"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_517dd86c","line":211,"in_reply_to":"3afb71cf_0510424d","updated":"2015-06-08 23:00:05.000000000","message":"surely you don\u0027t actually mean a global variable?\n\nbut besides, token_data is never copied.","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"6ac56c410628cdf4b89a500526bec0336a4b8970","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            for alt_name in ALTERNATIVES.get(name, [name]):"},{"line_number":209,"context_line":"                yield token_data[alt_name]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _search(self, revoke_map, names, token_data):"},{"line_number":212,"context_line":"        \"\"\"Search for revocation event by token_data"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        Traverse the revocation events tree looking for event matching token"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_45385d3d","line":211,"in_reply_to":"3afb71cf_23b7a4f6","updated":"2015-06-09 12:36:02.000000000","message":"++ Dolph, just meant for the variable not being copied over recursion calls which makes it no-reentrant (as Alexander pointed out).\n\nYou are right Alexander, forgot to consider this case, thanks for the clarification.","commit_id":"a1e4ada9a4794c22e15923fa4d50c6cc877a55c2"}]}
