)]}'
{"keystone/token/backends/memcache.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"6f933bfdfb0bf0af13bb0d181fcb051c572ce7a0","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def create_token(self, token_id, data):"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        def update_index(user_id, token_data):"},{"line_number":67,"context_line":"            user_key \u003d self._prefix_user_id(user_id)"},{"line_number":68,"context_line":"            if not self.client.append(user_key, \u0027,%s\u0027 % token_data):"},{"line_number":69,"context_line":"                if not self.client.add(user_key, token_data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FzE4%3D","line":66,"updated":"2014-02-24 19:22:15.000000000","message":"Is this just updating the user_key in the cached copy of token_data?  Am I reading this correctly???","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"921ee8ad2c9699348e0e3ecd0ce4482b0f5ae899","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def create_token(self, token_id, data):"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        def update_index(user_id, token_data):"},{"line_number":67,"context_line":"            user_key \u003d self._prefix_user_id(user_id)"},{"line_number":68,"context_line":"            if not self.client.append(user_key, \u0027,%s\u0027 % token_data):"},{"line_number":69,"context_line":"                if not self.client.add(user_key, token_data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fx0U%3D","line":66,"in_reply_to":"AAAAU3%2F%2FzE4%3D","updated":"2014-02-24 20:47:13.000000000","message":"This is updating the memcache index.","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"75e1937d49862d713a78670ab2a35bc20020b510","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            kwargs[\u0027time\u0027] \u003d expires_ts"},{"line_number":84,"context_line":"        self.client.set(ptk, data_copy, **kwargs)"},{"line_number":85,"context_line":"        token_data \u003d jsonutils.dumps(token_id)"},{"line_number":86,"context_line":"        if \u0027id\u0027 in data[\u0027user\u0027]:"},{"line_number":87,"context_line":"            user_id \u003d data[\u0027user\u0027][\u0027id\u0027]"},{"line_number":88,"context_line":"            update_index(user_id, token_data)"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Ftuw%3D","line":86,"updated":"2014-03-04 14:38:12.000000000","message":"trivially true?","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"6f933bfdfb0bf0af13bb0d181fcb051c572ce7a0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        token_data \u003d jsonutils.dumps(token_id)"},{"line_number":86,"context_line":"        if \u0027id\u0027 in data[\u0027user\u0027]:"},{"line_number":87,"context_line":"            user_id \u003d data[\u0027user\u0027][\u0027id\u0027]"},{"line_number":88,"context_line":"            update_index(user_id, token_data)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if CONF.trust.enabled and data.get(\u0027trust_id\u0027):"},{"line_number":91,"context_line":"            if \u0027access\u0027 in data_copy:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fyj0%3D","line":88,"updated":"2014-02-24 19:22:15.000000000","message":"so you refactored this because you now call it twice?  Nice!!!  Also this is where you update the trustor, correct?","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"921ee8ad2c9699348e0e3ecd0ce4482b0f5ae899","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        token_data \u003d jsonutils.dumps(token_id)"},{"line_number":86,"context_line":"        if \u0027id\u0027 in data[\u0027user\u0027]:"},{"line_number":87,"context_line":"            user_id \u003d data[\u0027user\u0027][\u0027id\u0027]"},{"line_number":88,"context_line":"            update_index(user_id, token_data)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        if CONF.trust.enabled and data.get(\u0027trust_id\u0027):"},{"line_number":91,"context_line":"            if \u0027access\u0027 in data_copy:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fx0I%3D","line":88,"in_reply_to":"AAAAU3%2F%2Fyj0%3D","updated":"2014-02-24 20:47:13.000000000","message":"This is the standard user (trustor in the case of impersonation)","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"6f933bfdfb0bf0af13bb0d181fcb051c572ce7a0","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            else:"},{"line_number":95,"context_line":"                trustee_user_id \u003d data_copy[\u0027OS-TRUST:trust\u0027]["},{"line_number":96,"context_line":"                    \u0027trustee_user_id\u0027]"},{"line_number":97,"context_line":"            update_index(trustee_user_id, token_data)"},{"line_number":98,"context_line":"        return copy.deepcopy(data_copy)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _add_to_revocation_list(self, token_id, token_data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fyjw%3D","line":97,"updated":"2014-02-24 19:22:15.000000000","message":"And here is where you update the trustee, correct?","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"921ee8ad2c9699348e0e3ecd0ce4482b0f5ae899","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            else:"},{"line_number":95,"context_line":"                trustee_user_id \u003d data_copy[\u0027OS-TRUST:trust\u0027]["},{"line_number":96,"context_line":"                    \u0027trustee_user_id\u0027]"},{"line_number":97,"context_line":"            update_index(trustee_user_id, token_data)"},{"line_number":98,"context_line":"        return copy.deepcopy(data_copy)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def _add_to_revocation_list(self, token_id, token_data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fxzw%3D","line":97,"in_reply_to":"AAAAU3%2F%2Fyjw%3D","updated":"2014-02-24 20:47:13.000000000","message":"Yep","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"}],"tests/test_backend.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"6f933bfdfb0bf0af13bb0d181fcb051c572ce7a0","unresolved":false,"context_lines":[{"line_number":2314,"context_line":"                                           {\u0027id\u0027: \u0027browser\u0027}])"},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"        token_id \u003d self.create_token_sample_data("},{"line_number":2317,"context_line":"            tenant_id\u003dself.tenant_bar[\u0027id\u0027],"},{"line_number":2318,"context_line":"            trust_id\u003dtrust_id,"},{"line_number":2319,"context_line":"            user_id\u003dtrustor[\u0027id\u0027],"},{"line_number":2320,"context_line":"            trustee_user_id\u003dtrustee[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2FzII%3D","line":2317,"updated":"2014-02-24 19:22:15.000000000","message":"did this really need to start on a new line? eyeballing it it looked like it was under 79 chars if on the line above","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"921ee8ad2c9699348e0e3ecd0ce4482b0f5ae899","unresolved":false,"context_lines":[{"line_number":2314,"context_line":"                                           {\u0027id\u0027: \u0027browser\u0027}])"},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"        token_id \u003d self.create_token_sample_data("},{"line_number":2317,"context_line":"            tenant_id\u003dself.tenant_bar[\u0027id\u0027],"},{"line_number":2318,"context_line":"            trust_id\u003dtrust_id,"},{"line_number":2319,"context_line":"            user_id\u003dtrustor[\u0027id\u0027],"},{"line_number":2320,"context_line":"            trustee_user_id\u003dtrustee[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Fxx0%3D","line":2317,"in_reply_to":"AAAAU3%2F%2FzII%3D","updated":"2014-02-24 20:47:13.000000000","message":"Yes, tenant_id\u003d\u003cblah\u003e was 2 characters over. It was easier to line-wrap it there and make it clear what was being done than assign into other values and pass it through.","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"}],"tests/test_backend_memcache.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"75e1937d49862d713a78670ab2a35bc20020b510","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from keystone import test"},{"line_number":25,"context_line":"from keystone.token.backends import memcache as token_memcache"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"import test_backend"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class MemcacheClient(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FtsY%3D","line":27,"updated":"2014-03-04 14:38:12.000000000","message":"should really be imported down here, as a relative import","commit_id":"a411c944af78c36f2fdb87d305ba452dc52d7ed3"}]}
