)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"526f7bce_fd273d27","updated":"2021-11-16 15:10:04.000000000","message":"This should be squashed into the patch that actually uses the flags. Couple of comments for when you do that","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa79895e961cd4f6a900cfc961b35b2957dc38c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"b962774f_c4fb8879","updated":"2021-11-25 16:23:24.000000000","message":"Almost there. Couple of nits. -1 because the patch below needs work anyway","commit_id":"b5f73be44acef1c2672684c6842893ceb8c8a8e0"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"578372ed75e147f3adf087d561edcf39b593e000","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c698bfd3_4815a9bc","updated":"2021-12-01 11:54:55.000000000","message":"Done","commit_id":"e15d36a68be454482c65757eff446452729418cf"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"e5d039e722b9e9594b12b455e5748cba53e38034","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3f1da527_a07f0d1f","updated":"2021-12-01 15:31:32.000000000","message":"recheck","commit_id":"e15d36a68be454482c65757eff446452729418cf"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"21dceea31c5aaea53c0ba87a548c47c7f5eede3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"76e3fbf3_fa011d0d","updated":"2021-12-14 13:23:38.000000000","message":"recheck","commit_id":"447c3d0ce8b9f2bcb01036a71e49f2494f3c08de"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5ad565323f5594f59cc3c88517303586e06eac3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3e2014d9_cde40ffe","updated":"2022-01-24 17:26:31.000000000","message":"ty!","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"}],"oslo_cache/_opts.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"707f6c8bf44093920d8ba00bf08bb92484b2e794","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        cfg.IntOpt(\u0027retry_attempts\u0027,"},{"line_number":173,"context_line":"                   default\u003d2,"},{"line_number":174,"context_line":"                   help\u003d\u0027how many times to attempt an action before failing.\u0027"},{"line_number":175,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":176,"context_line":"        cfg.IntOpt(\u0027retry_delay\u0027,"},{"line_number":177,"context_line":"                   default\u003d0,"},{"line_number":178,"context_line":"                   help\u003d\u0027optional int|float, how many seconds to sleep\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"28a33a4f_238ee9b9","line":175,"range":{"start_line":175,"start_character":21,"end_line":175,"end_character":40},"updated":"2021-09-08 11:01:20.000000000","message":"How about adding min\u003d1 to enforce this ?","commit_id":"ceb1e70fa67da3bfb89b08dee9b67420d8a3650d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"707f6c8bf44093920d8ba00bf08bb92484b2e794","unresolved":true,"context_lines":[{"line_number":175,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":176,"context_line":"        cfg.IntOpt(\u0027retry_delay\u0027,"},{"line_number":177,"context_line":"                   default\u003d0,"},{"line_number":178,"context_line":"                   help\u003d\u0027optional int|float, how many seconds to sleep\u0027"},{"line_number":179,"context_line":"                   \u0027 between each attempt. Defaults to 0.\u0027),"},{"line_number":180,"context_line":"        cfg.ListOpt(\u0027retry_for\u0027,"},{"line_number":181,"context_line":"                    default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"a435bf28_e31b132d","line":178,"range":{"start_line":178,"start_character":38,"end_line":178,"end_character":43},"updated":"2021-09-08 11:01:20.000000000","message":"This parameter is defined as an IntOpt thus float is always converted to int.","commit_id":"ceb1e70fa67da3bfb89b08dee9b67420d8a3650d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"707f6c8bf44093920d8ba00bf08bb92484b2e794","unresolved":true,"context_lines":[{"line_number":179,"context_line":"                   \u0027 between each attempt. Defaults to 0.\u0027),"},{"line_number":180,"context_line":"        cfg.ListOpt(\u0027retry_for\u0027,"},{"line_number":181,"context_line":"                    default\u003dNone,"},{"line_number":182,"context_line":"                    help\u003d\u0027optional None|tuple|set|list, what exceptions to\u0027"},{"line_number":183,"context_line":"                    \u0027 allow retries for. Will allow retries for all exceptions\u0027"},{"line_number":184,"context_line":"                    \u0027 if None. Example: `(MemcacheClientError,\u0027"},{"line_number":185,"context_line":"                    \u0027 MemcacheUnexpectedCloseError)` Accepts any class that is\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"a352f345_e084fd4e","line":182,"range":{"start_line":182,"start_character":35,"end_line":182,"end_character":54},"updated":"2021-09-08 11:01:20.000000000","message":"This parameter is defined as a ListOpt, and accepts only the comma-separted list.\nI don\u0027t think this parameter can accept the tuple expression in the example described below.","commit_id":"ceb1e70fa67da3bfb89b08dee9b67420d8a3650d"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"5d3ed28739a923fc403e80e113aabb457c895faf","unresolved":true,"context_lines":[{"line_number":179,"context_line":"                   \u0027 between each attempt. Defaults to 0.\u0027),"},{"line_number":180,"context_line":"        cfg.ListOpt(\u0027retry_for\u0027,"},{"line_number":181,"context_line":"                    default\u003dNone,"},{"line_number":182,"context_line":"                    help\u003d\u0027optional None|tuple|set|list, what exceptions to\u0027"},{"line_number":183,"context_line":"                    \u0027 allow retries for. Will allow retries for all exceptions\u0027"},{"line_number":184,"context_line":"                    \u0027 if None. Example: `(MemcacheClientError,\u0027"},{"line_number":185,"context_line":"                    \u0027 MemcacheUnexpectedCloseError)` Accepts any class that is\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"b87d688a_a82b1787","line":182,"range":{"start_line":182,"start_character":35,"end_line":182,"end_character":54},"in_reply_to":"a352f345_e084fd4e","updated":"2021-09-13 14:13:21.000000000","message":"You are right. To be honest I don\u0027t think we need it to solve our issue. We tested these changes downstream and only enabling retry helped us to clean stale connections.\n\nWe can\u0027t pass module or python class from this parameter so let\u0027s continue with basic retrying mechanismes for now.","commit_id":"ceb1e70fa67da3bfb89b08dee9b67420d8a3650d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"707f6c8bf44093920d8ba00bf08bb92484b2e794","unresolved":true,"context_lines":[{"line_number":186,"context_line":"                    \u0027 a subclass of Exception.  Defaults to None.\u0027),"},{"line_number":187,"context_line":"        cfg.ListOpt(\u0027do_not_retry_for\u0027,"},{"line_number":188,"context_line":"                    default\u003dNone,"},{"line_number":189,"context_line":"                    help\u003d\u0027optional None|tuple|set|list, what exceptions should\u0027"},{"line_number":190,"context_line":"                    \u0027 be retried. Will not block retries for any Exception if\u0027"},{"line_number":191,"context_line":"                    \u0027 None. Example: `(IOError, MemcacheIllegalInputError)`\u0027"},{"line_number":192,"context_line":"                    \u0027 Accepts any class that is a subclass of Exception.\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"706f618d_4f6de10b","line":189,"range":{"start_line":189,"start_character":35,"end_line":189,"end_character":54},"updated":"2021-09-08 11:01:20.000000000","message":"ditto","commit_id":"ceb1e70fa67da3bfb89b08dee9b67420d8a3650d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":true,"context_lines":[{"line_number":165,"context_line":"                   help\u003d\u0027The maximum number of keepalive probes TCP should\u0027"},{"line_number":166,"context_line":"                   \u0027 send before dropping the connection. Should be a\u0027"},{"line_number":167,"context_line":"                   \u0027 positive integer most greater than zero.\u0027),"},{"line_number":168,"context_line":"        cfg.BoolOpt(\u0027enable_retry_client\u0027,"},{"line_number":169,"context_line":"                    default\u003dFalse,"},{"line_number":170,"context_line":"                    help\u003d\u0027optional flag to enable retry client mechanisms to\u0027"},{"line_number":171,"context_line":"                    \u0027 handle failure.\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"44b271b0_98f73e25","line":168,"updated":"2021-11-16 15:10:04.000000000","message":"Same comment regarding indentation, e.g.\n\n  cfg.BoolOpt(\n      \u0027enable_retry_client\u0027,\n      ...\n  ),","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":true,"context_lines":[{"line_number":167,"context_line":"                   \u0027 positive integer most greater than zero.\u0027),"},{"line_number":168,"context_line":"        cfg.BoolOpt(\u0027enable_retry_client\u0027,"},{"line_number":169,"context_line":"                    default\u003dFalse,"},{"line_number":170,"context_line":"                    help\u003d\u0027optional flag to enable retry client mechanisms to\u0027"},{"line_number":171,"context_line":"                    \u0027 handle failure.\u0027),"},{"line_number":172,"context_line":"        cfg.IntOpt(\u0027retry_attempts\u0027,"},{"line_number":173,"context_line":"                   min\u003d1,"}],"source_content_type":"text/x-python","patch_set":9,"id":"350aa41e_92ce1a76","line":170,"range":{"start_line":170,"start_character":26,"end_line":170,"end_character":44},"updated":"2021-11-16 15:10:04.000000000","message":"It\u0027s clearly optional because it\u0027s an option 😉 How about just\n\n  Enable retry client mechanisms to handle failure.\n\nA larger text explaining what exactly is involved here would be hugely helpful too. Perhaps you could expand on this with such a text?","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":true,"context_lines":[{"line_number":172,"context_line":"        cfg.IntOpt(\u0027retry_attempts\u0027,"},{"line_number":173,"context_line":"                   min\u003d1,"},{"line_number":174,"context_line":"                   default\u003d2,"},{"line_number":175,"context_line":"                   help\u003d\u0027how many times to attempt an action before failing.\u0027"},{"line_number":176,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":177,"context_line":"        cfg.FloatOpt(\u0027retry_delay\u0027,"},{"line_number":178,"context_line":"                     default\u003d0,"}],"source_content_type":"text/x-python","patch_set":9,"id":"f1916868_22460349","line":175,"range":{"start_line":175,"start_character":25,"end_line":175,"end_character":33},"updated":"2021-11-16 15:10:04.000000000","message":"nit:\n\n  Number of times","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":true,"context_lines":[{"line_number":173,"context_line":"                   min\u003d1,"},{"line_number":174,"context_line":"                   default\u003d2,"},{"line_number":175,"context_line":"                   help\u003d\u0027how many times to attempt an action before failing.\u0027"},{"line_number":176,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":177,"context_line":"        cfg.FloatOpt(\u0027retry_delay\u0027,"},{"line_number":178,"context_line":"                     default\u003d0,"},{"line_number":179,"context_line":"                     help\u003d\u0027optional int|float, how many seconds to sleep\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"0a587ac8_b7194dc1","line":176,"range":{"start_line":176,"start_character":20,"end_line":176,"end_character":55},"updated":"2021-11-16 15:10:04.000000000","message":"nit: This is unnecessary. The documentation generators will emit this and the code will check it.","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64d112d4dd0dc99d9b6383506c5b6e3d70f6025a","unresolved":true,"context_lines":[{"line_number":176,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":177,"context_line":"        cfg.FloatOpt(\u0027retry_delay\u0027,"},{"line_number":178,"context_line":"                     default\u003d0,"},{"line_number":179,"context_line":"                     help\u003d\u0027optional int|float, how many seconds to sleep\u0027"},{"line_number":180,"context_line":"                     \u0027 between each attempt. Defaults to 0.\u0027),"},{"line_number":181,"context_line":"    ],"},{"line_number":182,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":9,"id":"2f850ff6_81821c40","line":179,"range":{"start_line":179,"start_character":27,"end_line":179,"end_character":48},"updated":"2021-11-16 15:10:04.000000000","message":"Again, this is clearly optional and we can read from the type that it\u0027s a float.\n\nIs a float actually necessary? Do we expect users to configure this to e.g. 0.5? If not, maybe we can forgo some accuracy and use IntOpt? Also, this should have a minimum value","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"292d08ab41d5fb274ce8c014990a75b56bf338c8","unresolved":true,"context_lines":[{"line_number":176,"context_line":"                   \u0027 Must be 1 or above. Defaults to 2.\u0027),"},{"line_number":177,"context_line":"        cfg.FloatOpt(\u0027retry_delay\u0027,"},{"line_number":178,"context_line":"                     default\u003d0,"},{"line_number":179,"context_line":"                     help\u003d\u0027optional int|float, how many seconds to sleep\u0027"},{"line_number":180,"context_line":"                     \u0027 between each attempt. Defaults to 0.\u0027),"},{"line_number":181,"context_line":"    ],"},{"line_number":182,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":9,"id":"21fc95a7_703f3b6c","line":179,"range":{"start_line":179,"start_character":27,"end_line":179,"end_character":48},"in_reply_to":"2f850ff6_81821c40","updated":"2021-11-17 12:40:05.000000000","message":"The pymemcache side of the retry mechanism can consume integer and float for the `retry_delay`.\nFor this reason I think we need to keep a float for this option.\nConcerning the default value, the pymemcache lib set this one to zero too, so I think we need to stick to this value by default. It will mean no retry delay.\n\nhttps://github.com/pinterest/pymemcache/commit/75fe5c81c35d2bcfc8e6a697aef948efbfebe8ba#diff-2e774306ab487e034e9dbae7be949cfed6d55f9bfa066bc35678d88124ff1cbeR69","commit_id":"058c25a0e1033233c4f2179eef8a0f66a920a8fd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa79895e961cd4f6a900cfc961b35b2957dc38c0","unresolved":true,"context_lines":[{"line_number":173,"context_line":"            \u0027enable_retry_client\u0027,"},{"line_number":174,"context_line":"            default\u003dFalse,"},{"line_number":175,"context_line":"            help\u003d\u0027Enable retry client mechanisms to handle failure. \u0027"},{"line_number":176,"context_line":"            \u0027Those mechanims can be used to wrap all kind of pymemcache \u0027"},{"line_number":177,"context_line":"            \u0027clients. The wrapper allow you to define how many attempts \u0027"},{"line_number":178,"context_line":"            \u0027to make and how long to wait between attemots.\u0027),"},{"line_number":179,"context_line":"        cfg.IntOpt("}],"source_content_type":"text/x-python","patch_set":12,"id":"545e6456_a82950c0","line":176,"range":{"start_line":176,"start_character":19,"end_line":176,"end_character":28},"updated":"2021-11-25 16:23:24.000000000","message":"mechanisms","commit_id":"b5f73be44acef1c2672684c6842893ceb8c8a8e0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa79895e961cd4f6a900cfc961b35b2957dc38c0","unresolved":true,"context_lines":[{"line_number":174,"context_line":"            default\u003dFalse,"},{"line_number":175,"context_line":"            help\u003d\u0027Enable retry client mechanisms to handle failure. \u0027"},{"line_number":176,"context_line":"            \u0027Those mechanims can be used to wrap all kind of pymemcache \u0027"},{"line_number":177,"context_line":"            \u0027clients. The wrapper allow you to define how many attempts \u0027"},{"line_number":178,"context_line":"            \u0027to make and how long to wait between attemots.\u0027),"},{"line_number":179,"context_line":"        cfg.IntOpt("},{"line_number":180,"context_line":"            \u0027retry_attempts\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"02ed8962_b3bff6df","line":177,"range":{"start_line":177,"start_character":34,"end_line":177,"end_character":39},"updated":"2021-11-25 16:23:24.000000000","message":"allows","commit_id":"b5f73be44acef1c2672684c6842893ceb8c8a8e0"}],"oslo_cache/core.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"aa79895e961cd4f6a900cfc961b35b2957dc38c0","unresolved":true,"context_lines":[{"line_number":213,"context_line":"    if conf.cache.enable_retry_client:"},{"line_number":214,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":215,"context_line":"        conf_dict.setdefault(\u0027%s.arguments.retry_attempts\u0027 % prefix,"},{"line_number":216,"context_line":"                             conf.cache.retry_attempts)"},{"line_number":217,"context_line":"        conf_dict.setdefault(\u0027%s.arguments.retry_delay\u0027 % prefix,"},{"line_number":218,"context_line":"                             conf.cache.retry_delay)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5518315e_4f799386","line":216,"updated":"2021-11-25 16:23:24.000000000","message":"nit: why do we use setdefault here instead of explicitly setting it like we do above? Not saying it\u0027s wrong: I\u0027m just curious about the difference\n\n  conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\\n      conf.cache.retry_attempts","commit_id":"b5f73be44acef1c2672684c6842893ceb8c8a8e0"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"cb04cd1f218faccd3a1a51397a402a3fc4f7873c","unresolved":true,"context_lines":[{"line_number":213,"context_line":"    if conf.cache.enable_retry_client:"},{"line_number":214,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":215,"context_line":"        conf_dict.setdefault(\u0027%s.arguments.retry_attempts\u0027 % prefix,"},{"line_number":216,"context_line":"                             conf.cache.retry_attempts)"},{"line_number":217,"context_line":"        conf_dict.setdefault(\u0027%s.arguments.retry_delay\u0027 % prefix,"},{"line_number":218,"context_line":"                             conf.cache.retry_delay)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"a44b65da_be379aad","line":216,"in_reply_to":"5518315e_4f799386","updated":"2021-12-01 11:51:55.000000000","message":"Good question, I don\u0027t think it will lead to a difference but for the sake of uniformity I\u0027ll set it explicitly like we do above.\nIt will avoid to call a method to do a simple assignment.","commit_id":"b5f73be44acef1c2672684c6842893ceb8c8a8e0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f3821c6dd29789647a96c3f94f49163b8e478a77","unresolved":true,"context_lines":[{"line_number":210,"context_line":"    # allow you to define how many attempts to make and how long to wait"},{"line_number":211,"context_line":"    # between attempts. The section below will pass our config"},{"line_number":212,"context_line":"    # to dogpile.cache to setup the pymemcache retry client wrapper."},{"line_number":213,"context_line":"    if conf.cache.enable_retry_client:"},{"line_number":214,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":215,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":216,"context_line":"            conf.cache.retry_attempts"}],"source_content_type":"text/x-python","patch_set":19,"id":"9cdf180a_0e3cf90d","line":213,"updated":"2021-12-20 19:15:44.000000000","message":"As with the previous check, can we warn if the user is trying to configure this for non-pymemcache backends?","commit_id":"e5ea8034fc3e371b3201bbac1484c3cf34dd409a"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"e56b2a1452b61cf5cf417db5a6d26cac55bac3e1","unresolved":true,"context_lines":[{"line_number":227,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":228,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":229,"context_line":"            conf.cache.retry_attempts"},{"line_number":230,"context_line":"        conf_dict[\u0027%s.arguments.retry_delay\u0027 % prefix] \u003d \\"},{"line_number":231,"context_line":"            conf.cache.retry_delay"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    return conf_dict"}],"source_content_type":"text/x-python","patch_set":20,"id":"de54cae0_de0cc355","line":230,"updated":"2022-01-12 09:37:55.000000000","message":"Maybe we can start to use f-strings?","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"cf03107aa6c1199d0da343e574f4e5918cfc6933","unresolved":true,"context_lines":[{"line_number":227,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":228,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":229,"context_line":"            conf.cache.retry_attempts"},{"line_number":230,"context_line":"        conf_dict[\u0027%s.arguments.retry_delay\u0027 % prefix] \u003d \\"},{"line_number":231,"context_line":"            conf.cache.retry_delay"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    return conf_dict"}],"source_content_type":"text/x-python","patch_set":20,"id":"f13cfb12_8fcd57a8","line":230,"in_reply_to":"08ca252d_878b8cb5","updated":"2022-01-14 10:36:00.000000000","message":"Ok I see. Yes if it\u0027s a backport we can\u0027t use f-strings.","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"d303da34c60a967e0c48431a17e8807677fa117c","unresolved":true,"context_lines":[{"line_number":227,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":228,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":229,"context_line":"            conf.cache.retry_attempts"},{"line_number":230,"context_line":"        conf_dict[\u0027%s.arguments.retry_delay\u0027 % prefix] \u003d \\"},{"line_number":231,"context_line":"            conf.cache.retry_delay"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    return conf_dict"}],"source_content_type":"text/x-python","patch_set":20,"id":"73333eea_4f204142","line":230,"in_reply_to":"40f211cd_20f1142e","updated":"2022-01-19 11:47:10.000000000","message":"Yes I see.","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"fa2fec207aca255d78c899d5a0b634b9b86562c9","unresolved":true,"context_lines":[{"line_number":227,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":228,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":229,"context_line":"            conf.cache.retry_attempts"},{"line_number":230,"context_line":"        conf_dict[\u0027%s.arguments.retry_delay\u0027 % prefix] \u003d \\"},{"line_number":231,"context_line":"            conf.cache.retry_delay"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    return conf_dict"}],"source_content_type":"text/x-python","patch_set":20,"id":"08ca252d_878b8cb5","line":230,"in_reply_to":"de54cae0_de0cc355","updated":"2022-01-13 15:23:52.000000000","message":"Indeed, it\u0027s a good idea, but for now let\u0027s wait to switch to fstring later as this patch aim to fix an issue on OSP16 (train) that have been introduced by the TLS changes below, as TLS is only supported by dogpile.cache.pymemcache.\n\nTrain still support python 2.7 and f-strings are not supported by this version of python.\nOur goal is to fix this issue before the next release of OSP16.2 and switching to f-string now will surely delay us as we\u0027ll have to rewrite the patch between backports.\n\nhttps://opendev.org/openstack/oslo.cache/src/branch/stable/train/setup.cfg#L17","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"3bfea22973c07e050d54172038e32e972c96596a","unresolved":true,"context_lines":[{"line_number":227,"context_line":"        conf_dict[\u0027%s.arguments.enable_retry_client\u0027 % prefix] \u003d True"},{"line_number":228,"context_line":"        conf_dict[\u0027%s.arguments.retry_attempts\u0027 % prefix] \u003d \\"},{"line_number":229,"context_line":"            conf.cache.retry_attempts"},{"line_number":230,"context_line":"        conf_dict[\u0027%s.arguments.retry_delay\u0027 % prefix] \u003d \\"},{"line_number":231,"context_line":"            conf.cache.retry_delay"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    return conf_dict"}],"source_content_type":"text/x-python","patch_set":20,"id":"40f211cd_20f1142e","line":230,"in_reply_to":"f13cfb12_8fcd57a8","updated":"2022-01-17 14:19:19.000000000","message":"That\u0027s not yet a backport but it will become a backport soon :)","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"}],"oslo_cache/tests/unit/test_cache_basics.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"41c0a1c0b726f5b5429bf18dac0bbb0ee6cde2c4","unresolved":true,"context_lines":[{"line_number":444,"context_line":"        self.config_fixture.config(group\u003d\u0027cache\u0027,"},{"line_number":445,"context_line":"                                   enabled\u003dTrue,"},{"line_number":446,"context_line":"                                   config_prefix\u003d\u0027test_prefix\u0027,"},{"line_number":447,"context_line":"                                   backend\u003d\u0027oslo_cache.dict\u0027,"},{"line_number":448,"context_line":"                                   enable_retry_client\u003dTrue,"},{"line_number":449,"context_line":"                                   retry_attempts\u003d2,"},{"line_number":450,"context_line":"                                   retry_delay\u003d2)"}],"source_content_type":"text/x-python","patch_set":20,"id":"0ac90d16_52c1c1fc","line":447,"range":{"start_line":447,"start_character":44,"end_line":447,"end_character":59},"updated":"2022-01-13 15:51:32.000000000","message":"I voluntarily use a wrong backend to trigger the configurationError exception.","commit_id":"42bf82d5505a0def3d22972d67fde836f5091ed1"}]}
