)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"b195fa67aa84724ef39af30757f7bc6d8d3833e6","unresolved":true,"context_lines":[{"line_number":10,"context_line":"use Redis Sentinel backend instead of Redis backend by configurations"},{"line_number":11,"context_line":"like the example below."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[cache]"},{"line_number":14,"context_line":"enabled \u003d True"},{"line_number":15,"context_line":"backend \u003d dogpile.cache.redis_sentinel"},{"line_number":16,"context_line":"backend_argument \u003d sentinels:192.0.2.1:6379,192.0.2.2:6379,192.0.2.3:6379"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"01f88dfc_16d9d11c","line":13,"updated":"2024-02-02 12:15:26.000000000","message":"What\u0027s a correct way of providing Redis username and password?","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"61ff684bd246692fead5b3155dfd914cbe0a7604","unresolved":true,"context_lines":[{"line_number":10,"context_line":"use Redis Sentinel backend instead of Redis backend by configurations"},{"line_number":11,"context_line":"like the example below."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[cache]"},{"line_number":14,"context_line":"enabled \u003d True"},{"line_number":15,"context_line":"backend \u003d dogpile.cache.redis_sentinel"},{"line_number":16,"context_line":"backend_argument \u003d sentinels:192.0.2.1:6379,192.0.2.2:6379,192.0.2.3:6379"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"a765f182_593c3e52","line":13,"in_reply_to":"01f88dfc_16d9d11c","updated":"2024-02-02 12:19:11.000000000","message":"Use memcache_username and memcache_password.","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"e954f9f860dec55f4dcd3a57309eab1e4639dcc7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"use Redis Sentinel backend instead of Redis backend by configurations"},{"line_number":11,"context_line":"like the example below."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[cache]"},{"line_number":14,"context_line":"enabled \u003d True"},{"line_number":15,"context_line":"backend \u003d dogpile.cache.redis_sentinel"},{"line_number":16,"context_line":"backend_argument \u003d sentinels:192.0.2.1:6379,192.0.2.2:6379,192.0.2.3:6379"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"504e5381_3a870155","line":13,"in_reply_to":"94b4fb77_7b017840","updated":"2024-02-02 12:33:45.000000000","message":"thank you","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"84ffe19e452647dfecd0b0f474ea4bc89957f215","unresolved":true,"context_lines":[{"line_number":10,"context_line":"use Redis Sentinel backend instead of Redis backend by configurations"},{"line_number":11,"context_line":"like the example below."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[cache]"},{"line_number":14,"context_line":"enabled \u003d True"},{"line_number":15,"context_line":"backend \u003d dogpile.cache.redis_sentinel"},{"line_number":16,"context_line":"backend_argument \u003d sentinels:192.0.2.1:6379,192.0.2.2:6379,192.0.2.3:6379"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"94b4fb77_7b017840","line":13,"in_reply_to":"a765f182_593c3e52","updated":"2024-02-02 12:26:29.000000000","message":"Actually memcache connections do not use username so setting memcache_password should be enough. The option name is confusing so we may want to rename it in the future.","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"efd1afc5b4b2fb6ac82a739af1d4e6f0207dbb10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a3abb7c2_25412762","updated":"2024-02-01 13:10:21.000000000","message":"I just notified Matus what he thinks about your implementation.\nI hope we can find an implementation that suits us all. @matus.jenca@dnation.cloud can you comment if this would work for us as well?\n\nThank you all.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b5d8ba71379d7ae998f36cd0ab1f661ea0dc5da8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d4ec0c50_32be1d30","updated":"2024-02-01 10:01:34.000000000","message":"Looks good to merge.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"b195fa67aa84724ef39af30757f7bc6d8d3833e6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c6f7a6f4_dc637d31","in_reply_to":"a3abb7c2_25412762","updated":"2024-02-02 12:15:26.000000000","message":"I am unable to run this with implementation in my Kolla setup. \nI did and I think username/password providing might be the issue here.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0b39ba862e730f6284cd695bb06e5901354b3efb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d4d7dece_5e0fe9b2","in_reply_to":"c6f7a6f4_dc637d31","updated":"2024-02-02 12:27:05.000000000","message":"See the previous comment","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"b195fa67aa84724ef39af30757f7bc6d8d3833e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d7dcd1e8_de042113","updated":"2024-02-02 12:15:26.000000000","message":"I cannot run this in Kolla using the example config from commit message.","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"61dda543bc4326e9077b9e29707225edf5fd9b30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b03af417_0b920464","updated":"2024-02-02 12:55:27.000000000","message":"Thank you for your update.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"5a8cb19119206db4b63566ef4906935b6566e880","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"832e0024_965843e1","updated":"2024-02-12 15:03:02.000000000","message":"I love the idea behind this patch. Globally, this patch LGTM. I made some comments but they are more suggestions than anything else.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"d9e5c686c69b04cf7e012f92f5b3bbd71dc5ab10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"6cdae548_c7495828","updated":"2024-02-07 15:54:51.000000000","message":"I\u0027m not sure if this needs additional docs or if these are auto generated.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"41ec22d49e3983ec95f4c406173c1e2da7c25a44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"c94f06ff_e5fff58a","updated":"2024-02-05 12:02:22.000000000","message":"Works for me now. Thank you.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"}],"oslo_cache/core.py":[{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"3648c0cc97f130bef05322d1af4573c66022d9a4","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _parse_sentinel(sentinel):"},{"line_number":104,"context_line":"    # IPv6 (eg. [::1]:6379 )"},{"line_number":105,"context_line":"    match \u003d re.search(\u0027\\[(\\S+)\\]:(\\d+)\u0027, sentinel)"},{"line_number":106,"context_line":"    if match:"},{"line_number":107,"context_line":"        return (match[1], int(match[2]))"},{"line_number":108,"context_line":"    # IPv4 or host (eg. 127.0.0.1:6379 or localhost:6379)"},{"line_number":109,"context_line":"    match \u003d re.search(\u0027(\\S+):(\\d+)\u0027, sentinel)"},{"line_number":110,"context_line":"    if match:"},{"line_number":111,"context_line":"        return (match[1], int(match[2]))"},{"line_number":112,"context_line":"    raise ValueError(\u0027Malformed sentinel host format\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"f4eaca76_c7723190","line":109,"range":{"start_line":105,"start_character":4,"end_line":109,"end_character":46},"updated":"2024-01-31 16:54:59.000000000","message":"I\u0027m not sure using regex to parse/validate IPv4|6 is a good idea. Why not use the standard library function for that? (it might require more work, but also provide a cleaner interface).\nhttps://docs.python.org/3/library/ipaddress.html\n\nalso this conflates \"localhost\" with IPv4, when localhost also can resolve to an IPv6 address.","commit_id":"1c654d513eab184ca4e3e3b7b0fc47270f953c01"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a2e876b8293bb12bcb298bf3dc0812a201543eb2","unresolved":true,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _parse_sentinel(sentinel):"},{"line_number":104,"context_line":"    # IPv6 (eg. [::1]:6379 )"},{"line_number":105,"context_line":"    match \u003d re.search(\u0027\\[(\\S+)\\]:(\\d+)\u0027, sentinel)"},{"line_number":106,"context_line":"    if match:"},{"line_number":107,"context_line":"        return (match[1], int(match[2]))"},{"line_number":108,"context_line":"    # IPv4 or host (eg. 127.0.0.1:6379 or localhost:6379)"},{"line_number":109,"context_line":"    match \u003d re.search(\u0027(\\S+):(\\d+)\u0027, sentinel)"},{"line_number":110,"context_line":"    if match:"},{"line_number":111,"context_line":"        return (match[1], int(match[2]))"},{"line_number":112,"context_line":"    raise ValueError(\u0027Malformed sentinel host format\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"f7a6f0ce_5a3dc8c6","line":109,"range":{"start_line":105,"start_character":4,"end_line":109,"end_character":46},"in_reply_to":"f4eaca76_c7723190","updated":"2024-01-31 17:30:56.000000000","message":"We can implement a string pattern validation for address/host part but I\u0027m not too sure if we get much benefit by complicating the logic here. The current version focus on the format how address/host and port are combined in a field and I think it\u0027s enough (or even too much ?).\n\nHere I intended hostname by localhost, instead just a host. Probably I can update the comment to explicitly show that (s/host/host name/, I mean)","commit_id":"1c654d513eab184ca4e3e3b7b0fc47270f953c01"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"d9e5c686c69b04cf7e012f92f5b3bbd71dc5ab10","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _parse_sentinel(sentinel):"},{"line_number":104,"context_line":"    # IPv6 (eg. [::1]:6379 )"},{"line_number":105,"context_line":"    match \u003d re.search(\u0027\\[(\\S+)\\]:(\\d+)\u0027, sentinel)"},{"line_number":106,"context_line":"    if match:"},{"line_number":107,"context_line":"        return (match[1], int(match[2]))"},{"line_number":108,"context_line":"    # IPv4 or host (eg. 127.0.0.1:6379 or localhost:6379)"},{"line_number":109,"context_line":"    match \u003d re.search(\u0027(\\S+):(\\d+)\u0027, sentinel)"},{"line_number":110,"context_line":"    if match:"},{"line_number":111,"context_line":"        return (match[1], int(match[2]))"},{"line_number":112,"context_line":"    raise ValueError(\u0027Malformed sentinel host format\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f4b2384_cba9cfd2","line":109,"range":{"start_line":105,"start_character":4,"end_line":109,"end_character":46},"in_reply_to":"f7a6f0ce_5a3dc8c6","updated":"2024-02-07 15:54:51.000000000","message":"I honestly see no benefit in using an at best incorrect regex to arbitrary filter allowed values when you could just parse the data structure correctly, but I think it doesn\u0027t matter that much to block the merge of this.\n\nThus marking this as resolved.","commit_id":"1c654d513eab184ca4e3e3b7b0fc47270f953c01"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b5d8ba71379d7ae998f36cd0ab1f661ea0dc5da8","unresolved":true,"context_lines":[{"line_number":243,"context_line":"                    \"FIPS mode is not supported by the %s backend\" %"},{"line_number":244,"context_line":"                    conf.cache.backend)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            c_kwargs \u003d {\u0027ssl\u0027: True}"},{"line_number":247,"context_line":"            if conf.cache.tls_cafile is not None:"},{"line_number":248,"context_line":"                _LOG.debug(\u0027Oslo Cache TLS - CA: %s\u0027, conf.cache.tls_cafile)"},{"line_number":249,"context_line":"                c_kwargs[\u0027ssl_ca_certs\u0027] \u003d conf.cache.tls_cafile"}],"source_content_type":"text/x-python","patch_set":8,"id":"a6f4fa30_05704b44","line":246,"updated":"2024-02-01 10:01:34.000000000","message":"Wondering why you change name of variable here?","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"8ad9cf8537b09d58d6f82705c8f8c1cfe3e54a68","unresolved":true,"context_lines":[{"line_number":243,"context_line":"                    \"FIPS mode is not supported by the %s backend\" %"},{"line_number":244,"context_line":"                    conf.cache.backend)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            c_kwargs \u003d {\u0027ssl\u0027: True}"},{"line_number":247,"context_line":"            if conf.cache.tls_cafile is not None:"},{"line_number":248,"context_line":"                _LOG.debug(\u0027Oslo Cache TLS - CA: %s\u0027, conf.cache.tls_cafile)"},{"line_number":249,"context_line":"                c_kwargs[\u0027ssl_ca_certs\u0027] \u003d conf.cache.tls_cafile"}],"source_content_type":"text/x-python","patch_set":8,"id":"4eb6d1ed_967e56a8","line":246,"in_reply_to":"473c1ca5_2c2c9b9c","updated":"2024-02-01 14:55:00.000000000","message":"As you prefer but to be honest I think the old name is more clear, so I prefer the old one.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1f1809970b76f0d7dbdf70de9af68ea31d043717","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                    \"FIPS mode is not supported by the %s backend\" %"},{"line_number":244,"context_line":"                    conf.cache.backend)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            c_kwargs \u003d {\u0027ssl\u0027: True}"},{"line_number":247,"context_line":"            if conf.cache.tls_cafile is not None:"},{"line_number":248,"context_line":"                _LOG.debug(\u0027Oslo Cache TLS - CA: %s\u0027, conf.cache.tls_cafile)"},{"line_number":249,"context_line":"                c_kwargs[\u0027ssl_ca_certs\u0027] \u003d conf.cache.tls_cafile"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a4c4088_444912ff","line":246,"in_reply_to":"4eb6d1ed_967e56a8","updated":"2024-02-01 16:34:04.000000000","message":"I don\u0027t have strong opinion so have reverted this.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"a28c1d9df4a83601d4974783a6102da7709bded7","unresolved":true,"context_lines":[{"line_number":243,"context_line":"                    \"FIPS mode is not supported by the %s backend\" %"},{"line_number":244,"context_line":"                    conf.cache.backend)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            c_kwargs \u003d {\u0027ssl\u0027: True}"},{"line_number":247,"context_line":"            if conf.cache.tls_cafile is not None:"},{"line_number":248,"context_line":"                _LOG.debug(\u0027Oslo Cache TLS - CA: %s\u0027, conf.cache.tls_cafile)"},{"line_number":249,"context_line":"                c_kwargs[\u0027ssl_ca_certs\u0027] \u003d conf.cache.tls_cafile"}],"source_content_type":"text/x-python","patch_set":8,"id":"c4701143_e979206a","line":246,"in_reply_to":"a6f4fa30_05704b44","updated":"2024-02-01 10:43:33.000000000","message":"I\u0027m wondering the same, I actually liked the old name more, as it\u0027s easier to understand, because there is no need to know the meaning of the abbreviation.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c829d57fb5ac40d42fee5a1658bdfc154424732f","unresolved":true,"context_lines":[{"line_number":243,"context_line":"                    \"FIPS mode is not supported by the %s backend\" %"},{"line_number":244,"context_line":"                    conf.cache.backend)"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"            c_kwargs \u003d {\u0027ssl\u0027: True}"},{"line_number":247,"context_line":"            if conf.cache.tls_cafile is not None:"},{"line_number":248,"context_line":"                _LOG.debug(\u0027Oslo Cache TLS - CA: %s\u0027, conf.cache.tls_cafile)"},{"line_number":249,"context_line":"                c_kwargs[\u0027ssl_ca_certs\u0027] \u003d conf.cache.tls_cafile"}],"source_content_type":"text/x-python","patch_set":8,"id":"473c1ca5_2c2c9b9c","line":246,"in_reply_to":"c4701143_e979206a","updated":"2024-02-01 11:07:15.000000000","message":"I shortened the name to fit L260 in 79 chars limit. I can revert this change but L260 may need to be spread to two lines.","commit_id":"87dcb1b1d0ffb47f66ddbc5721043fe774e34e99"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"b195fa67aa84724ef39af30757f7bc6d8d3833e6","unresolved":true,"context_lines":[{"line_number":258,"context_line":"            conf_dict[\u0027%s.arguments.client_kwargs\u0027 % prefix] \u003d client_kwargs"},{"line_number":259,"context_line":"            if conf.cache.backend \u003d\u003d \u0027dogpile.cache.redis_sentinel\u0027:"},{"line_number":260,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":261,"context_line":"                    client_kwargs"},{"line_number":262,"context_line":"        else:"},{"line_number":263,"context_line":"            msg \u003d _("},{"line_number":264,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":9,"id":"29745f56_b14119c2","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":33},"updated":"2024-02-02 12:15:26.000000000","message":"What is \u0027client_kwargs\u0027? AFAIK there\u0027s no such thing in [redis-py](https://github.com/search?q\u003drepo%3Aredis%2Fredis-py%20client_kwargs\u0026type\u003dcode)\nor [dogpile.cache](https://github.com/search?q\u003drepo%3Asqlalchemy%2Fdogpile.cache%20client_kwargs\u0026type\u003dcode) source code. Am I missing something here or did you mean `connection_kwargs`","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"61ff684bd246692fead5b3155dfd914cbe0a7604","unresolved":true,"context_lines":[{"line_number":258,"context_line":"            conf_dict[\u0027%s.arguments.client_kwargs\u0027 % prefix] \u003d client_kwargs"},{"line_number":259,"context_line":"            if conf.cache.backend \u003d\u003d \u0027dogpile.cache.redis_sentinel\u0027:"},{"line_number":260,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":261,"context_line":"                    client_kwargs"},{"line_number":262,"context_line":"        else:"},{"line_number":263,"context_line":"            msg \u003d _("},{"line_number":264,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":9,"id":"a2b4a6d9_9be3bc86","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":33},"in_reply_to":"29745f56_b14119c2","updated":"2024-02-02 12:19:11.000000000","message":"This needs to be connection_kwargs. I\u0027ll fix it soon.","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"84ffe19e452647dfecd0b0f474ea4bc89957f215","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            conf_dict[\u0027%s.arguments.client_kwargs\u0027 % prefix] \u003d client_kwargs"},{"line_number":259,"context_line":"            if conf.cache.backend \u003d\u003d \u0027dogpile.cache.redis_sentinel\u0027:"},{"line_number":260,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":261,"context_line":"                    client_kwargs"},{"line_number":262,"context_line":"        else:"},{"line_number":263,"context_line":"            msg \u003d _("},{"line_number":264,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":9,"id":"b8b2ab73_b0533326","line":261,"range":{"start_line":261,"start_character":20,"end_line":261,"end_character":33},"in_reply_to":"a2b4a6d9_9be3bc86","updated":"2024-02-02 12:26:29.000000000","message":"Done","commit_id":"8f1042cb39098246de8c5ccac76947559fb9d8d6"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"61dda543bc4326e9077b9e29707225edf5fd9b30","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"6b9393ce_abd30cf6","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"updated":"2024-02-02 12:55:27.000000000","message":"One more concern: it seems that Redis Sentinel requires password to be in both `connection_kwargs` and `sentinel_kwargs` at least that\u0027s what I needed to do in my PR in order for it to work. I am rebuilding my testing environment, I will test if my concern is justified, but maybe you it know better than me","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"7cf1796543051a98c74f592744f5d44a9a5b525a","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"9de36fa4_d1b560a5","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"11f489a1_e3e657e7","updated":"2024-02-03 04:45:24.000000000","message":"Hmm. I set up my local reproducer but I can\u0027t reproduce the problem you have.\nI\u0027m dumping snippets from my local files. I wonder if you can compare specifically redis and sentinel config you have in your env.\n\n```\n[cache]\nbackend\u003ddogpile.cache.redis_sentinel\nbackend_argument \u003d sentinels:127.0.0.1:26379\nenabled\u003dTrue\nmemcache_password \u003d a_big_secret\ntls_enabled \u003d true\ntls_cafile \u003d /etc/pki/tls/certs/ca-bundle.crt\ntls-replication yes\n```\n\nredis.conf\n```\nport 0\ntls-port 6379\ntls-cert-file /etc/pki/ca-trust/source/anchors/puppet_openstack.pem\ntls-key-file /etc/redis/ssl/private/localhost.localdomain.pem\ntls-ca-cert-file /etc/ssl/certs/ca-bundle.crt\ntls-auth-clients no\ntls-replication yes\n...\nrequirepass a_big_secret\n```\n\nsentinel.conf\n```\nbind 127.0.0.1\nport 0\ntls-port 26379\ndir \"/tmp\"\ndaemonize no\nsupervised systemd\npidfile \"/var/run/redis/redis-sentinel.pid\"\nprotected-mode yes\nsentinel monitor mymaster 127.0.0.1 6379 1\nsentinel auth-pass mymaster a_big_secret\nrequirepass \"a_big_secret\"\ntls-cert-file \"/etc/pki/ca-trust/source/anchors/puppet_openstack.pem\"\ntls-key-file \"/etc/redis/ssl/private/localhost.localdomain.pem\"\ntls-ca-cert-file \"/etc/ssl/certs/ca-bundle.crt\"\ntls-auth-clients no\ntls-replication yes\ntls-protocols \"TLSv1.2\"\nloglevel notice\nlogfile \"/var/log/redis/sentinel.log\"\nuser default on #a9641de0cc33e927193d784499fd85e0d155a37102075c6dccf4d74688722742 ~* \u0026* +@all\nsentinel myid 536661e1f02791cbd09086b706ac6a1728111f0e\nsentinel config-epoch mymaster 0\nsentinel leader-epoch mymaster 9\nsentinel current-epoch 9\n```","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"7cf1796543051a98c74f592744f5d44a9a5b525a","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"3907d5fb_a53f5a52","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"11f489a1_e3e657e7","updated":"2024-02-03 04:45:24.000000000","message":"I\u0027m building a reproducer now, but I guess the default value if memcache_server, which is used to set the url argument may hide user/password and I wonder if we can try\n\nmemcache_server\u003dredis://:\u003cpassword\u003e","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"e42780ba6f18ad5d75121d75f37b4a0fa10613a3","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"11f489a1_e3e657e7","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"3633e350_b2c08a12","updated":"2024-02-02 17:39:01.000000000","message":"Ok, I tried to delete the password from the above config as well and it works, so perhaps there\u0027s a problem with passing password itself. When I did my approach, I had to delete username and password from backend arguments, so maybe it\u0027s the same issue.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"4c1088fdfb550c026fb9cf0ec1880dfbac21c7f1","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"7fbce7a5_67f764c5","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"3bb92b8e_42dd0ad0","updated":"2024-02-03 13:07:05.000000000","message":"I\u0027ve not yet managed to enable ACL in my local redis but I believe the latest version works with it. I\u0027ve tested this without ACL (with/without sentinel) and verified this works.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"cb8c8527aa276db0dc66e794411f737e9d9a82e2","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"3bb92b8e_42dd0ad0","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"5a7e8f1c_adb3abe2","updated":"2024-02-03 09:56:30.000000000","message":"I wonder if you enabled ACL in Redis, which also requires username ?","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"f3604d610efa22ed08a61e99c2db17d57ec39124","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"3633e350_b2c08a12","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"5b4d9ada_98cb1cce","updated":"2024-02-02 17:12:56.000000000","message":"Unfortunately I didn\u0027t manage to get it to work, even if I disabled passwords in my Redis config \n Here\u0027s the config Kolla generates for Keystone lmk if there\u0027s something wrong\n```\n    [cache]\n    enabled \u003d \"True\"\n    backend \u003d \u0027dogpile.cache.redis_sentinel\u0027\n    backend_argument \u003d sentinels:192.168.123.230:26443\n    backend_argument \u003d service_name:kolla\n    memcache_username \u003d default\n    memcache_password \u003d E1IcJ1O30wJMW5FWCj0Vh8K59BErL6npjkha75pP\n    tls_enabled \u003d True\n    tls_certfile \u003d /etc/redis/certs/redis-cert.pem\n    tls_keyfile \u003d /etc/redis/certs/redis-key.pem\n    tls_cafile \u003d /etc/pki/tls/certs/ca-bundle.crt\n```\nI will try to find out why it doesn\u0027t work, but perhaps we can merge [mine](https://review.opendev.org/c/openstack/oslo.cache/+/907211) pull request because I can get it to work, since it\u0027s feature freeze soon and there\u0027s not much time to debug yours.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5bb43853b05930470fb2b896677cc3b8fa6d01ab","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"5b4d9ada_98cb1cce","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"6b9393ce_abd30cf6","updated":"2024-02-02 14:00:18.000000000","message":"If I read https://github.com/sqlalchemy/dogpile.cache/blob/main/dogpile/cache/backends/redis.py#L318-L324 correct, RedisSentinel should propagate its password property into connection_kwargs and sentinel_kwargs, and with the current logic the password property is set according to the memcache_password option.\n\nOne concern I\u0027m aware now is that this may not work well in case Sentinel and Redis require different passwords but I\u0027m not too sure if there is a strong requirement to achieve such pattern so I\u0027d leave it now.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":36624,"name":"Matúš Jenča","email":"matus.jenca@dnation.cloud","username":"matusjenca"},"change_message_id":"41ec22d49e3983ec95f4c406173c1e2da7c25a44","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"885dca38_bb199fd0","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"7fbce7a5_67f764c5","updated":"2024-02-05 12:02:22.000000000","message":"I works now, thank you for your time.","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b905b3b4587723d9cb1b898f467878d108be31e4","unresolved":true,"context_lines":[{"line_number":260,"context_line":"                # NOTE(tkajinam): Replicate connection_kwargs to"},{"line_number":261,"context_line":"                # sentinel_sentinel to use TLS for connections to Sentinel."},{"line_number":262,"context_line":"                conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"},{"line_number":263,"context_line":"                    conn_kwargs"},{"line_number":264,"context_line":"        else:"},{"line_number":265,"context_line":"            msg \u003d _("},{"line_number":266,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a7e8f1c_adb3abe2","line":263,"range":{"start_line":263,"start_character":20,"end_line":263,"end_character":31},"in_reply_to":"9de36fa4_d1b560a5","updated":"2024-02-03 04:47:10.000000000","message":"I installed this env from current RDO master with oslo.cache patched.\n python3-dogpile-cache-1.1.8-1.el9s.noarch\n python3-redis-4.3.4-1.el9s.noarch","commit_id":"9415450a1fccd08cdae2370d29a10945260d026b"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"50ac703420d488e4ceacbcdf263d2fee5d96430c","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"def _parse_sentinel(sentinel):"},{"line_number":106,"context_line":"    # IPv6 (eg. [::1]:6379 )"},{"line_number":107,"context_line":"    match \u003d re.search(r\u0027\\[(\\S+)\\]:(\\d+)\u0027, sentinel)"},{"line_number":108,"context_line":"    if match:"},{"line_number":109,"context_line":"        return (match[1], int(match[2]))"},{"line_number":110,"context_line":"    # IPv4 or hostname (eg. 127.0.0.1:6379 or localhost:6379)"}],"source_content_type":"text/x-python","patch_set":21,"id":"d4b4997b_55994a84","line":107,"range":{"start_line":107,"start_character":24,"end_line":107,"end_character":39},"updated":"2024-02-12 14:38:09.000000000","message":"This regex is ReDoS vulnerable (https://en.wikipedia.org/wiki/ReDoS), and the following one too.\n\nYou can check them here https://devina.io/redos-checker\n\nHowever, in the current context, I don\u0027t think that that\u0027s really an issue.\nIndeed, these checks are launch at startup so, IMO, it is unlikely that a ReDoS attack can be triggered by using this vector.\n\nIf these regex would be used on input validation each time users send something, that would be a security issue.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"36489c9ecd82ab3f47a0b33f794552240a750ff3","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"def _parse_sentinel(sentinel):"},{"line_number":106,"context_line":"    # IPv6 (eg. [::1]:6379 )"},{"line_number":107,"context_line":"    match \u003d re.search(r\u0027\\[(\\S+)\\]:(\\d+)\u0027, sentinel)"},{"line_number":108,"context_line":"    if match:"},{"line_number":109,"context_line":"        return (match[1], int(match[2]))"},{"line_number":110,"context_line":"    # IPv4 or hostname (eg. 127.0.0.1:6379 or localhost:6379)"}],"source_content_type":"text/x-python","patch_set":21,"id":"06724dda_8823e7a0","line":107,"range":{"start_line":107,"start_character":24,"end_line":107,"end_character":39},"in_reply_to":"d4b4997b_55994a84","updated":"2024-02-12 15:41:29.000000000","message":"I agree with you, Herve. This logic is used to parse config values, and is not used for any data sent from users. We can harden this technically, but at this moment I\u0027d avoid implementing too complicated logic for no use case.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":32553,"name":"Sven Kieske","email":"sven_oss@posteo.de","username":"skieske"},"change_message_id":"d9e5c686c69b04cf7e012f92f5b3bbd71dc5ab10","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            value \u003d getattr(conf.cache, \u0027redis_\u0027 + arg)"},{"line_number":180,"context_line":"            conf_dict[\u0027%s.arguments.%s\u0027 % (prefix, arg)] \u003d value"},{"line_number":181,"context_line":"        if conf.cache.redis_username:"},{"line_number":182,"context_line":"            # TODO(tkajinam): Update dogpile.cache to add username argument,"},{"line_number":183,"context_line":"            # similarly to password."},{"line_number":184,"context_line":"            conf_dict[\u0027%s.arguments.connection_kwargs\u0027 % prefix] \u003d \\"},{"line_number":185,"context_line":"                {\u0027username\u0027: conf.cache.redis_username}"},{"line_number":186,"context_line":"            conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"}],"source_content_type":"text/x-python","patch_set":21,"id":"fb41c974_004faa12","line":183,"range":{"start_line":182,"start_character":12,"end_line":183,"end_character":36},"updated":"2024-02-07 15:54:51.000000000","message":"just curious: is there a bug tracking this/are you also the dogpile maintainer?\nif there is a bug/issue tracking this it might be good practice to directly link it here in the source code comment.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1349079733ed0cd646834da12a1c75a17c3b17f8","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            value \u003d getattr(conf.cache, \u0027redis_\u0027 + arg)"},{"line_number":180,"context_line":"            conf_dict[\u0027%s.arguments.%s\u0027 % (prefix, arg)] \u003d value"},{"line_number":181,"context_line":"        if conf.cache.redis_username:"},{"line_number":182,"context_line":"            # TODO(tkajinam): Update dogpile.cache to add username argument,"},{"line_number":183,"context_line":"            # similarly to password."},{"line_number":184,"context_line":"            conf_dict[\u0027%s.arguments.connection_kwargs\u0027 % prefix] \u003d \\"},{"line_number":185,"context_line":"                {\u0027username\u0027: conf.cache.redis_username}"},{"line_number":186,"context_line":"            conf_dict[\u0027%s.arguments.sentinel_kwargs\u0027 % prefix] \u003d \\"}],"source_content_type":"text/x-python","patch_set":21,"id":"3acd7047_5cddc31d","line":183,"range":{"start_line":182,"start_character":12,"end_line":183,"end_character":36},"in_reply_to":"fb41c974_004faa12","updated":"2024-02-14 01:19:20.000000000","message":"I\u0027ve created PR for this https://github.com/sqlalchemy/dogpile.cache/pull/251 .\n\nI\u0027m hoping that a new release is created before this is swapped out from my memory...","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"5a8cb19119206db4b63566ef4906935b6566e880","unresolved":true,"context_lines":[{"line_number":294,"context_line":"                    \u0027%s.arguments.sentinel_kwargs\u0027 % prefix,"},{"line_number":295,"context_line":"                    {}).update(conn_kwargs)"},{"line_number":296,"context_line":"            else:"},{"line_number":297,"context_line":"                conf_dict.setdefault("},{"line_number":298,"context_line":"                    \u0027%s.arguments.connection_kwargs\u0027 % prefix,"},{"line_number":299,"context_line":"                    {}).update(conn_kwargs)"},{"line_number":300,"context_line":"        else:"},{"line_number":301,"context_line":"            msg \u003d _("},{"line_number":302,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":21,"id":"3d781e51_4634bb4c","line":299,"range":{"start_line":297,"start_character":16,"end_line":299,"end_character":43},"updated":"2024-02-12 15:03:02.000000000","message":"Could be defaulted before the `if` condition, to avoid 1) the duplication of init in the `if` and in the `else` part 2) the else part.\n\nWith the current version, in all the cases, `connection_kwargs` are defaulted.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1349079733ed0cd646834da12a1c75a17c3b17f8","unresolved":true,"context_lines":[{"line_number":294,"context_line":"                    \u0027%s.arguments.sentinel_kwargs\u0027 % prefix,"},{"line_number":295,"context_line":"                    {}).update(conn_kwargs)"},{"line_number":296,"context_line":"            else:"},{"line_number":297,"context_line":"                conf_dict.setdefault("},{"line_number":298,"context_line":"                    \u0027%s.arguments.connection_kwargs\u0027 % prefix,"},{"line_number":299,"context_line":"                    {}).update(conn_kwargs)"},{"line_number":300,"context_line":"        else:"},{"line_number":301,"context_line":"            msg \u003d _("},{"line_number":302,"context_line":"                \"TLS setting via [cache] tls_enabled is not supported by this \""}],"source_content_type":"text/x-python","patch_set":21,"id":"328eab68_42e764cd","line":299,"range":{"start_line":297,"start_character":16,"end_line":299,"end_character":43},"in_reply_to":"3d781e51_4634bb4c","updated":"2024-02-14 01:19:20.000000000","message":"I agree, though having this may not harm, and would help us maintain the current dirty if-else logics. I\u0027ll try to refactor the code to merge some of the existing if-else blocks, so will leave this for now.","commit_id":"7bb43bbbd58110b204c2ce9023e96d68442c21c9"}]}
