)]}'
{"keystonemiddleware/_memcache_pool.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":114,"context_line":"class MemcacheClientPool(ConnectionPool):"},{"line_number":115,"context_line":"    def __init__(self, urls, arguments, **kwargs):"},{"line_number":116,"context_line":"        ConnectionPool.__init__(self, **kwargs)"},{"line_number":117,"context_line":"        self.urls \u003d urls"},{"line_number":118,"context_line":"        self._arguments \u003d arguments"},{"line_number":119,"context_line":"        # NOTE(morganfainberg): The host objects expect an int for the"},{"line_number":120,"context_line":"        # deaduntil value. Initialize this at 0 for each host with 0 indicating"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_27b0c5f3","line":117,"updated":"2014-09-24 16:26:34.000000000","message":"self._urls?","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"}],"keystonemiddleware/auth_token.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"59895195dd6445ee7d51619c2d3954904ff7a513","unresolved":false,"context_lines":[{"line_number":1111,"context_line":"            self.append(c)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":""},{"line_number":1114,"context_line":"class _RealCachePool(object):"},{"line_number":1115,"context_line":"    \"\"\"Wrap pool from _memcached_pool module.\"\"\""},{"line_number":1116,"context_line":""},{"line_number":1117,"context_line":"    def __init__(self, memcached_servers):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_e251920f","line":1114,"updated":"2014-09-08 15:06:21.000000000","message":"(NIT): I would prefer this be named something more like \"MultiServerCachePool\" or something a bit more descriptive. But this does not need to change for this patch to be accepted.","commit_id":"3088b630acb21e71e66f2446ff32b702dd814c03"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"59895195dd6445ee7d51619c2d3954904ff7a513","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"        # import here to avoid dependency on python-memcached"},{"line_number":1119,"context_line":"        from keystonemiddleware import _memcache_pool"},{"line_number":1120,"context_line":""},{"line_number":1121,"context_line":"        # TODO(yorik-sar): move arguments to config, keep sane defaults for now"},{"line_number":1122,"context_line":"        self._pool \u003d _memcache_pool.MemcacheClientPool("},{"line_number":1123,"context_line":"            memcached_servers,"},{"line_number":1124,"context_line":"            arguments\u003d{"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_821c466c","line":1121,"updated":"2014-09-08 15:06:21.000000000","message":"This can be done in this patchset, you should at the config options before this is merged.","commit_id":"3088b630acb21e71e66f2446ff32b702dd814c03"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"59dbac151db2c88ba534a68e16a0a90d35ffe298","unresolved":false,"context_lines":[{"line_number":314,"context_line":"               default\u003d10,"},{"line_number":315,"context_line":"               help\u003d\u0027(optional) max total number of open connections to\u0027"},{"line_number":316,"context_line":"               \u0027 every memcached server\u0027),"},{"line_number":317,"context_line":"    cfg.IntOpt(\u0027memcache_pool_unuzed_timeout\u0027,"},{"line_number":318,"context_line":"               default\u003d60,"},{"line_number":319,"context_line":"               help\u003d\u0027(optional) number of seconds a connection to memcached\u0027"},{"line_number":320,"context_line":"               \u0027 is held unused in the pool before its closed\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9df570_69ee8024","line":317,"updated":"2014-09-21 03:41:31.000000000","message":"This needs to become memcache_pool_unused_timeout","commit_id":"6656a03cd2814e0fe7979888cbb92284088e3edd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6865e9e89187913f92005b29db658bd38fb1ba56","unresolved":false,"context_lines":[{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"    @contextlib.contextmanager"},{"line_number":1119,"context_line":"    def reserve(self):"},{"line_number":1120,"context_line":"        yield self._cache"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":""},{"line_number":1123,"context_line":"class _SimpleCachePool(list):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9df570_4e18e284","line":1120,"updated":"2014-09-21 02:29:03.000000000","message":"missing a return?","commit_id":"6656a03cd2814e0fe7979888cbb92284088e3edd"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":309,"context_line":"               help\u003d\u0027(optional, mandatory if memcache_security_strategy is\u0027"},{"line_number":310,"context_line":"               \u0027 defined) this string is used for key derivation.\u0027),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027memcache_pool_dead_retry\u0027,"},{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_04373f4f","line":312,"updated":"2014-09-24 16:26:34.000000000","message":"Just curious ... Why 5 * 60 instead of just 300? For readability? Just matter of coding style? Would it cost an extra clock cycle when this code is executed?","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":309,"context_line":"               help\u003d\u0027(optional, mandatory if memcache_security_strategy is\u0027"},{"line_number":310,"context_line":"               \u0027 defined) this string is used for key derivation.\u0027),"},{"line_number":311,"context_line":"    cfg.IntOpt(\u0027memcache_pool_dead_retry\u0027,"},{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_42813749","line":312,"in_reply_to":"da9df570_04373f4f","updated":"2014-09-24 16:39:34.000000000","message":"Only occurs on object instantiation, this was a sync from keystone server (mostly)","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    cfg.IntOpt(\u0027memcache_pool_dead_retry\u0027,"},{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"},{"line_number":316,"context_line":"               default\u003d10,"},{"line_number":317,"context_line":"               help\u003d\u0027(optional) max total number of open connections to\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_e47ddbe8","line":314,"updated":"2014-09-24 16:26:34.000000000","message":"before it tries again","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    cfg.IntOpt(\u0027memcache_pool_dead_retry\u0027,"},{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"},{"line_number":316,"context_line":"               default\u003d10,"},{"line_number":317,"context_line":"               help\u003d\u0027(optional) max total number of open connections to\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_02ee4f22","line":314,"in_reply_to":"da9df570_e47ddbe8","updated":"2014-09-24 16:39:34.000000000","message":"it is*","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"},{"line_number":316,"context_line":"               default\u003d10,"},{"line_number":317,"context_line":"               help\u003d\u0027(optional) max total number of open connections to\u0027"},{"line_number":318,"context_line":"               \u0027 every memcached server\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_84216ffd","line":315,"updated":"2014-09-24 16:26:34.000000000","message":"Not a big deal, may want to consider s/maxsize/max_size/ to be consistent with the rest of the naming","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":312,"context_line":"               default\u003d5 * 60,"},{"line_number":313,"context_line":"               help\u003d\u0027(optional) number of seconds memcached server is\u0027"},{"line_number":314,"context_line":"               \u0027 considered dead before its tried again\u0027),"},{"line_number":315,"context_line":"    cfg.IntOpt(\u0027memcache_pool_maxsize\u0027,"},{"line_number":316,"context_line":"               default\u003d10,"},{"line_number":317,"context_line":"               help\u003d\u0027(optional) max total number of open connections to\u0027"},{"line_number":318,"context_line":"               \u0027 every memcached server\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_62de3b6f","line":315,"in_reply_to":"da9df570_84216ffd","updated":"2014-09-24 16:39:34.000000000","message":"I\u0027d like to leave this as it\u0027s consistent with the Keystone version","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    cfg.IntOpt(\u0027memcache_pool_socket_timeout\u0027,"},{"line_number":320,"context_line":"               default\u003d3,"},{"line_number":321,"context_line":"               help\u003d\u0027(optional) socket timeout in seconds for communicating \u0027"},{"line_number":322,"context_line":"                    \u0027with a memcache server.\u0027),"},{"line_number":323,"context_line":"    cfg.IntOpt(\u0027memcache_pool_unused_timeout\u0027,"},{"line_number":324,"context_line":"               default\u003d60,"},{"line_number":325,"context_line":"               help\u003d\u0027(optional) number of seconds a connection to memcached\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_6469eb24","line":322,"updated":"2014-09-24 16:26:34.000000000","message":"s/memcache/memcached/","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    cfg.IntOpt(\u0027memcache_pool_socket_timeout\u0027,"},{"line_number":320,"context_line":"               default\u003d3,"},{"line_number":321,"context_line":"               help\u003d\u0027(optional) socket timeout in seconds for communicating \u0027"},{"line_number":322,"context_line":"                    \u0027with a memcache server.\u0027),"},{"line_number":323,"context_line":"    cfg.IntOpt(\u0027memcache_pool_unused_timeout\u0027,"},{"line_number":324,"context_line":"               default\u003d60,"},{"line_number":325,"context_line":"               help\u003d\u0027(optional) number of seconds a connection to memcached\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_a2e82311","line":322,"in_reply_to":"da9df570_6469eb24","updated":"2014-09-24 16:39:34.000000000","message":"sure in next","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":326,"context_line":"               \u0027 is held unused in the pool before its closed\u0027),"},{"line_number":327,"context_line":"    cfg.IntOpt(\u0027memcache_pool_conn_get_timeout\u0027,"},{"line_number":328,"context_line":"               default\u003d10,"},{"line_number":329,"context_line":"               help\u003d\u0027(optional) Number of seconds that an operation will wait \u0027"},{"line_number":330,"context_line":"                    \u0027to get a memcache client connection from the pool.\u0027),"},{"line_number":331,"context_line":"    cfg.BoolOpt(\u0027memcache_use_advanced_pool\u0027,"},{"line_number":332,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_24d603c6","line":329,"updated":"2014-09-24 16:26:34.000000000","message":"s/Number/number/","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":326,"context_line":"               \u0027 is held unused in the pool before its closed\u0027),"},{"line_number":327,"context_line":"    cfg.IntOpt(\u0027memcache_pool_conn_get_timeout\u0027,"},{"line_number":328,"context_line":"               default\u003d10,"},{"line_number":329,"context_line":"               help\u003d\u0027(optional) Number of seconds that an operation will wait \u0027"},{"line_number":330,"context_line":"                    \u0027to get a memcache client connection from the pool.\u0027),"},{"line_number":331,"context_line":"    cfg.BoolOpt(\u0027memcache_use_advanced_pool\u0027,"},{"line_number":332,"context_line":"                default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_c2e36731","line":329,"in_reply_to":"da9df570_24d603c6","updated":"2014-09-24 16:39:34.000000000","message":"in next","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                    \u0027to get a memcache client connection from the pool.\u0027),"},{"line_number":331,"context_line":"    cfg.BoolOpt(\u0027memcache_use_advanced_pool\u0027,"},{"line_number":332,"context_line":"                default\u003dFalse,"},{"line_number":333,"context_line":"                help\u003d\u0027(optional) Use the advanced (eventlet safe) memcache \u0027"},{"line_number":334,"context_line":"                     \u0027client pool. The advanced pool will only work under \u0027"},{"line_number":335,"context_line":"                     \u0027python 2.x.\u0027),"},{"line_number":336,"context_line":"    cfg.BoolOpt(\u0027include_service_catalog\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_c49617f0","line":333,"updated":"2014-09-24 16:26:34.000000000","message":"s/Use/use/","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                    \u0027to get a memcache client connection from the pool.\u0027),"},{"line_number":331,"context_line":"    cfg.BoolOpt(\u0027memcache_use_advanced_pool\u0027,"},{"line_number":332,"context_line":"                default\u003dFalse,"},{"line_number":333,"context_line":"                help\u003d\u0027(optional) Use the advanced (eventlet safe) memcache \u0027"},{"line_number":334,"context_line":"                     \u0027client pool. The advanced pool will only work under \u0027"},{"line_number":335,"context_line":"                     \u0027python 2.x.\u0027),"},{"line_number":336,"context_line":"    cfg.BoolOpt(\u0027include_service_catalog\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_22cc33bc","line":333,"in_reply_to":"da9df570_c49617f0","updated":"2014-09-24 16:39:34.000000000","message":"in next","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"    def __init__(self, memcache_servers, memcache_dead_retry,"},{"line_number":1229,"context_line":"                 memcache_pool_maxsize, memcache_pool_unused_timeout,"},{"line_number":1230,"context_line":"                 memcache_pool_conn_get_timeout,"},{"line_number":1231,"context_line":"                 memcache_pool_socket_timeout):"},{"line_number":1232,"context_line":"        # NOTE(morganfainberg): import here to avoid hard dependency on"},{"line_number":1233,"context_line":"        # python-memcache library."},{"line_number":1234,"context_line":"        global _memcache_pool"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_c44b7785","line":1231,"updated":"2014-09-24 16:26:34.000000000","message":"Not a big deal but you may want to consider making them kwargs since we have quite a few params.","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"                        memcache_pool_conn_get_timeout\u003dNone,"},{"line_number":1553,"context_line":"                        memcache_pool_socket_timeout\u003dNone):"},{"line_number":1554,"context_line":"        if (use_advanced_pool is True and memcache_servers and"},{"line_number":1555,"context_line":"                cache is not None):"},{"line_number":1556,"context_line":"            return _MemcacheClientPool("},{"line_number":1557,"context_line":"                memcache_servers,"},{"line_number":1558,"context_line":"                memcache_dead_retry\u003dmemcache_dead_retry,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_27cfe5b1","line":1555,"updated":"2014-09-24 16:26:34.000000000","message":"\"cache is None\" right? If cache is passed in from the request env, we would want to use that instead.","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e680f6517f759297450fd2bc1a8605298d47f833","unresolved":false,"context_lines":[{"line_number":1552,"context_line":"                        memcache_pool_conn_get_timeout\u003dNone,"},{"line_number":1553,"context_line":"                        memcache_pool_socket_timeout\u003dNone):"},{"line_number":1554,"context_line":"        if (use_advanced_pool is True and memcache_servers and"},{"line_number":1555,"context_line":"                cache is not None):"},{"line_number":1556,"context_line":"            return _MemcacheClientPool("},{"line_number":1557,"context_line":"                memcache_servers,"},{"line_number":1558,"context_line":"                memcache_dead_retry\u003dmemcache_dead_retry,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_22435315","line":1555,"in_reply_to":"da9df570_27cfe5b1","updated":"2014-09-24 16:39:34.000000000","message":"Thanks.","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"60c1afae35df8dba4b8f569ea8b9c736346b2adf","unresolved":false,"context_lines":[{"line_number":1559,"context_line":"                memcache_pool_maxsize\u003dmemcache_pool_maxsize,"},{"line_number":1560,"context_line":"                memcache_pool_unused_timeout\u003dmemcache_pool_unused_timeout,"},{"line_number":1561,"context_line":"                memcache_pool_conn_get_timeout\u003dmemcache_pool_conn_get_timeout,"},{"line_number":1562,"context_line":"                memcache_pool_socket_timeout\u003dmemcache_pool_socket_timeout)"},{"line_number":1563,"context_line":"        else:"},{"line_number":1564,"context_line":"            return _CachePool(cache, memcache_servers)"},{"line_number":1565,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da9df570_c727f9b4","line":1562,"updated":"2014-09-24 16:26:34.000000000","message":"so these are really kwargs?","commit_id":"a4c0519e150b0def894c052306be02883c6e43c1"}]}
