)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"150c378a88eec3904a2f13ad2035fc44af263d5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8ed87b4d_9c868ed2","updated":"2026-10-11 17:27:47.000000000","message":"The change looks reasonable. A few suggestions about testing.","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"}],"tooz/drivers/redis.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"150c378a88eec3904a2f13ad2035fc44af263d5f","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                # NOTE(harlowja): this will delete nothing if the key doesn\u0027t"},{"line_number":664,"context_line":"                # exist in the first place, which is fine/expected/desired..."},{"line_number":665,"context_line":"                self._client.delete(beat_id)"},{"line_number":666,"context_line":"            except exceptions.RedisError:"},{"line_number":667,"context_line":"                # The key expires by itself."},{"line_number":668,"context_line":"                LOG.warning("},{"line_number":669,"context_line":"                    \"Unable to delete heartbeat key \u0027%s\u0027\","}],"source_content_type":"text/x-python","patch_set":2,"id":"384092d9_002d84b8","line":666,"range":{"start_line":666,"start_character":19,"end_line":666,"end_character":40},"updated":"2026-10-11 17:27:47.000000000","message":"This removes retry for delete operation, but we can leave the key for expiration, as stated in the commit message.","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"}],"tooz/tests/drivers/test_redis_errors.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"150c378a88eec3904a2f13ad2035fc44af263d5f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"0c55fa8e_aa75d7b3","line":1,"updated":"2026-10-11 17:27:47.000000000","message":"can we name this file test_redis.py so that we can add happy-path later ?","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"d789e6972db4a2b3a8851ff5a98c676a6b745471","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"a17f0445_b715d911","line":1,"in_reply_to":"0c55fa8e_aa75d7b3","updated":"2026-10-11 17:48:57.000000000","message":"Sure, done","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"150c378a88eec3904a2f13ad2035fc44af263d5f","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        )"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class TestRedisClientCleanup(testcase.TestCase):"},{"line_number":129,"context_line":"    def _sentinel_driver(self, manager):"},{"line_number":130,"context_line":"        master \u003d manager.master_for.return_value"},{"line_number":131,"context_line":"        master.info.return_value \u003d {\"redis_version\": \"7.0.15\"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"8ad2ed14_047e4a3d","line":128,"range":{"start_line":128,"start_character":6,"end_line":128,"end_character":28},"updated":"2026-10-11 17:27:47.000000000","message":"The class name indicates that this covers all client cleanup case but in fact it only covers sentinel. Maybe we should rename the class ? In addition we could probably squash these two classes.","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"d789e6972db4a2b3a8851ff5a98c676a6b745471","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        )"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class TestRedisClientCleanup(testcase.TestCase):"},{"line_number":129,"context_line":"    def _sentinel_driver(self, manager):"},{"line_number":130,"context_line":"        master \u003d manager.master_for.return_value"},{"line_number":131,"context_line":"        master.info.return_value \u003d {\"redis_version\": \"7.0.15\"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"b4e3a42e_b1bafd6d","line":128,"range":{"start_line":128,"start_character":6,"end_line":128,"end_character":28},"in_reply_to":"8ad2ed14_047e4a3d","updated":"2026-10-11 17:48:57.000000000","message":"Yeah sorry, should be done","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"2fa0515791ff7b0ec6e2be65599637d3980d3d05","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        )"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class TestRedisClientCleanup(testcase.TestCase):"},{"line_number":129,"context_line":"    def _sentinel_driver(self, manager):"},{"line_number":130,"context_line":"        master \u003d manager.master_for.return_value"},{"line_number":131,"context_line":"        master.info.return_value \u003d {\"redis_version\": \"7.0.15\"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"55fa5489_06252224","line":128,"range":{"start_line":128,"start_character":6,"end_line":128,"end_character":28},"in_reply_to":"b4e3a42e_b1bafd6d","updated":"2026-10-11 17:52:24.000000000","message":"Ok I guess it’s still just named Redis but the tests are clearly labeled as sentinel now, I can tweak it further if you’d like","commit_id":"c84d853e3022ec0d29568ec2b27c7f732f918393"}]}
