)]}'
{"oslo_cache/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b71f2b908e0ef1c62b1a616ab59f6be38174c0fa","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"_LOG \u003d log.getLogger(__name__)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"_MANGLE_MAX_STR_LEN \u003d (hashlib.sha512().digest_size * 2 / 3)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"class _DebugProxy(proxy.ProxyBackend):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_94bbd00e","line":67,"updated":"2016-08-05 00:16:30.000000000","message":"Where does this come from? Typically memcached keys can be 250 bytes: https://github.com/memcached/memcached/blob/7c93898d525229efa9c3cdf3e9f7a012383c1b2b/memcached.h#L29","commit_id":"f2dd27c5c14163cd5871f89a0492fbdc08709898"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3d2f8b84ffe1b58a33af6bbde618154e52f38c58","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"_LOG \u003d log.getLogger(__name__)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"_MANGLE_MAX_STR_LEN \u003d (hashlib.sha512().digest_size * 2 / 3)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"class _DebugProxy(proxy.ProxyBackend):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_2c821653","line":67,"in_reply_to":"bacf61ea_94bbd00e","updated":"2016-08-08 21:45:39.000000000","message":"Added some comments. I could find some way to use all 250 chars if that\u0027s desired. I thought that keeping the keys short would be better since would use less memory in the case of in-memory cache.","commit_id":"f2dd27c5c14163cd5871f89a0492fbdc08709898"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b71f2b908e0ef1c62b1a616ab59f6be38174c0fa","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    # The key cannot have spaces or control characters when using memcached,"},{"line_number":147,"context_line":"    # so just escape these chars."},{"line_number":148,"context_line":"    # urllib.quote_plus replaces spaces and control characters so go with that."},{"line_number":149,"context_line":"    return urllib_parse.quote_plus(key)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def _mangle_key(key):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_f4420c0e","line":149,"updated":"2016-08-05 00:16:30.000000000","message":"I like this. I normally just do str.replace for things I know to be in the keyspace. I think in the case of keystone it\u0027s only spaces.","commit_id":"f2dd27c5c14163cd5871f89a0492fbdc08709898"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3d2f8b84ffe1b58a33af6bbde618154e52f38c58","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    # The key cannot have spaces or control characters when using memcached,"},{"line_number":147,"context_line":"    # so just escape these chars."},{"line_number":148,"context_line":"    # urllib.quote_plus replaces spaces and control characters so go with that."},{"line_number":149,"context_line":"    return urllib_parse.quote_plus(key)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"def _mangle_key(key):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_cc8d3a7d","line":149,"in_reply_to":"bacf61ea_f4420c0e","updated":"2016-08-08 21:45:39.000000000","message":"Keystone can also have keys with newlines e.g., if your name was \"johnny\\ntables\", which needs to be escaped.","commit_id":"f2dd27c5c14163cd5871f89a0492fbdc08709898"}]}
