)]}'
{"keystone/common/cms.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"944c2c9dee73d816385f15af4da52bd199f08a5c","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    return signed_text"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def cms_token_to_key(token_id):"},{"line_number":141,"context_line":"    if token_id is None:"},{"line_number":142,"context_line":"        return None"},{"line_number":143,"context_line":"    if is_ans1_token(token_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F3iw%3D","line":140,"updated":"2012-10-31 17:21:34.000000000","message":"since this supports \"all\" token types, can we just call it hash_token() or token_to_hash()?","commit_id":"edbc15c8af930b6a2a07752df47c30da1c252d71"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"a2ea7ad13fb5fa10771156614d0e14d467dec8f8","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    return signed_text"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def cms_token_to_key(token_id):"},{"line_number":141,"context_line":"    if token_id is None:"},{"line_number":142,"context_line":"        return None"},{"line_number":143,"context_line":"    if is_ans1_token(token_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F3RY%3D","line":140,"in_reply_to":"AAAALn%2F%2F3iw%3D","updated":"2012-10-31 18:51:05.000000000","message":"Done","commit_id":"edbc15c8af930b6a2a07752df47c30da1c252d71"}],"keystone/token/backends/memcache.py":[{"author":{"_account_id":5995,"name":"Russell Cloran","email":"russell@nimbula.com","username":"russell"},"change_message_id":"94b4c6ee799ff29637115b69c17ad5b1ddcf0d74","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_token(self, token_id):"},{"line_number":55,"context_line":"        if token_id is None:"},{"line_number":56,"context_line":"            raise exception.TokenNotFound(token_id\u003dself.token_to_key(token_id))"},{"line_number":57,"context_line":"        ptk \u003d self._prefix_token_id(token_id)"},{"line_number":58,"context_line":"        token \u003d self.client.get(ptk)"},{"line_number":59,"context_line":"        if token is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F3hE%3D","line":56,"updated":"2012-10-31 16:33:39.000000000","message":"Seems redundant, since token_id is None here already?","commit_id":"edbc15c8af930b6a2a07752df47c30da1c252d71"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"a2ea7ad13fb5fa10771156614d0e14d467dec8f8","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def get_token(self, token_id):"},{"line_number":55,"context_line":"        if token_id is None:"},{"line_number":56,"context_line":"            raise exception.TokenNotFound(token_id\u003dself.token_to_key(token_id))"},{"line_number":57,"context_line":"        ptk \u003d self._prefix_token_id(token_id)"},{"line_number":58,"context_line":"        token \u003d self.client.get(ptk)"},{"line_number":59,"context_line":"        if token is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2F3Rc%3D","line":56,"in_reply_to":"AAAALn%2F%2F3hE%3D","updated":"2012-10-31 18:51:05.000000000","message":"Done","commit_id":"edbc15c8af930b6a2a07752df47c30da1c252d71"}],"keystone/token/core.py":[{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"d3d292840585a59bf35ea25353320571ee2c9d52","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"class Driver(object):"},{"line_number":54,"context_line":"    \"\"\"Interface description for a Token driver.\"\"\""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def token_to_key(self, token_id):"},{"line_number":57,"context_line":"        return cms.cms_hash_token(token_id)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALn%2F%2F2Rk%3D","line":55,"updated":"2012-11-01 16:11:46.000000000","message":"needs a docstring to explain what you\u0027re getting, even with a default implementation from cms.","commit_id":"f0aa30d69231004bb2be7433379aa9cc8a6187ef"}]}
