)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"287d48a37375b23e2d3602cbc14a2266d42deaea","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix memcache pool issue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1562250"},{"line_number":10,"context_line":"Change-Id: I085f6f62ba293375f4e3502685c188d87e758b0f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f287b81_6a8d1e30","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":20},"updated":"2017-08-24 21:07:15.000000000","message":"I don\u0027t think this is the correct bug number, it links to a PEP8 issue.","commit_id":"ee6855fda4e6fc8e9b58cb10b45e413c8b0894c9"}],"keystonemiddleware/auth_token/_memcache_pool.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"48ce2b0590a867ad4fddfc6a09bd87c3b12f47ed","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        # the host is not dead."},{"line_number":124,"context_line":"        self._hosts_deaduntil \u003d [0] * len(urls)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        # NOTE(morganfainberg): Lazy import to allow middleware to work with"},{"line_number":127,"context_line":"        # python 3k even if memcache will not due to python 3k"},{"line_number":128,"context_line":"        # incompatibilities within the python-memcache library."},{"line_number":129,"context_line":"        global memcache"},{"line_number":130,"context_line":"        import memcache"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # This \u0027class\u0027 is taken from http://stackoverflow.com/a/22520633/238308"},{"line_number":133,"context_line":"        # Don\u0027t inherit client from threading.local so that we can reuse"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_65806cc0","side":"PARENT","line":130,"range":{"start_line":126,"start_character":0,"end_line":130,"end_character":23},"updated":"2017-08-28 17:13:53.000000000","message":"Do not remove/move this import. See other comments.","commit_id":"6f63f0973545fadb53eec8879c82f727dfdb54f3"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"48ce2b0590a867ad4fddfc6a09bd87c3b12f47ed","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import itertools"},{"line_number":24,"context_line":"import time"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import memcache"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":"from six.moves import queue"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_25fb8479","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":15},"updated":"2017-08-28 17:13:53.000000000","message":"Since memcache is not in the requirements (we really should move to oslo.cache in general), this cannot be moved here. The import still needs to be done lazy in the class\u0027s __init__. See below comments.","commit_id":"809995b085a4ad947a087900cb6ab939e55bc367"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"48ce2b0590a867ad4fddfc6a09bd87c3b12f47ed","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            self._destroy_connection(conn)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class _MemcacheClient(memcache.Client):"},{"line_number":116,"context_line":"    \"\"\"Thread global memcache client."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    As client is inherited from threading.local we have to restore object"},{"line_number":119,"context_line":"    methods overloaded by threading.local so we can reuse clients in"},{"line_number":120,"context_line":"    different threads"},{"line_number":121,"context_line":"    \"\"\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    __delattr__ \u003d object.__delattr__"},{"line_number":124,"context_line":"    __getattribute__ \u003d object.__getattribute__"},{"line_number":125,"context_line":"    __new__ \u003d object.__new__"},{"line_number":126,"context_line":"    __setattr__ \u003d object.__setattr__"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def __del__(self):"},{"line_number":129,"context_line":"        pass"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class MemcacheClientPool(ConnectionPool):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_4510d0a8","line":129,"range":{"start_line":115,"start_character":0,"end_line":129,"end_character":12},"updated":"2017-08-28 17:13:53.000000000","message":"Define this class in the MemecacheClientPool __init__ (line 130) and assign it to the _memcache_client_class attribute directly.\n\nIn short, don\u0027t remove the imports below and define the class in the __init__","commit_id":"809995b085a4ad947a087900cb6ab939e55bc367"}]}
