)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"69fd41080cf43122c451cc29e94500cb2301e2cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"34af6984_6d2956ba","updated":"2022-02-02 11:16:55.000000000","message":"I was able to confirm locally that the change in haproxy_query.py is covered by existing tests.","commit_id":"211d04bb13763444cb4ad795beb47b4eaf54a11a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"37500f4b8852b4d90045cc028e3f7f77cf1759ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2969e651_0b6609b0","updated":"2022-02-10 09:09:50.000000000","message":"recheck","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ddc06e2396fbdd6664fea3cee50e9e084c87ae20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3be98edb_ca523eb9","updated":"2022-02-14 07:18:42.000000000","message":"recheck","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"34649a3131ce5551e8fb26667984a96cdec5e046","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"584cce85_4e952e6f","updated":"2022-02-07 08:33:28.000000000","message":"recheck","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"8e13cd4e9327b08e416da0cf9b7872d28579d46c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"708f76b7_2f170e7a","updated":"2022-02-09 15:31:08.000000000","message":"recheck","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"c0c57d14f7c314d3ad0d2580451886759426aaf6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e5383fea_1738052c","updated":"2022-02-04 09:41:37.000000000","message":"recheck","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6b21241e5b76f64ce55af54fbd36dcb31aceadc1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9fde4acd_08a40cb1","updated":"2022-02-17 19:54:49.000000000","message":"LGTM","commit_id":"d350f0908f5111cf2791feed9ea83219c8b984fb"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ef15af792570bc2f97ee122d3b2a828e53ff25d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"62b30414_7b91bfdd","updated":"2022-02-17 10:11:08.000000000","message":"recheck","commit_id":"d350f0908f5111cf2791feed9ea83219c8b984fb"}],"octavia/amphorae/backends/utils/haproxy_query.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"64b7313a25e039ab2246d819d070a72af0d19c42","unresolved":true,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            # Due to a bug in some versions of HAProxy, DRAIN mode isn\u0027t"},{"line_number":119,"context_line":"            # calculated correctly, but we can spoof the correct value here."},{"line_number":120,"context_line":"            if line[\u0027status\u0027] \u003d\u003d consts.UP and line[\u0027weight\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":121,"context_line":"                line[\u0027status\u0027] \u003d consts.DRAIN"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if line[\u0027pxname\u0027] not in final_results:"}],"source_content_type":"text/x-python","patch_set":4,"id":"554aadef_180f7d2c","line":120,"range":{"start_line":120,"start_character":65,"end_line":120,"end_character":69},"updated":"2022-02-02 13:36:04.000000000","message":"good catch","commit_id":"b2bb481e1cb97967606b42f854afa16f84a367d9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5c0c0d046e400443cb0f16c236206c6a287dd407","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            # Due to a bug in some versions of HAProxy, DRAIN mode isn\u0027t"},{"line_number":119,"context_line":"            # calculated correctly, but we can spoof the correct value here."},{"line_number":120,"context_line":"            if line[\u0027status\u0027] \u003d\u003d consts.UP and line[\u0027weight\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":121,"context_line":"                line[\u0027status\u0027] \u003d consts.DRAIN"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if line[\u0027pxname\u0027] not in final_results:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dcd378f8_1e4e5472","line":120,"range":{"start_line":120,"start_character":65,"end_line":120,"end_character":69},"in_reply_to":"554aadef_180f7d2c","updated":"2022-02-03 09:48:33.000000000","message":"Done","commit_id":"b2bb481e1cb97967606b42f854afa16f84a367d9"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"30c9911cba1e81f86cd9ce508905c087ff97833e","unresolved":true,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            # Due to a bug in some versions of HAProxy, DRAIN mode isn\u0027t"},{"line_number":119,"context_line":"            # calculated correctly, but we can spoof the correct value here."},{"line_number":120,"context_line":"            if line[\u0027status\u0027] \u003d\u003d consts.UP and line[\u0027weight\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":121,"context_line":"                line[\u0027status\u0027] \u003d consts.DRAIN"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if line[\u0027pxname\u0027] not in final_results:"}],"source_content_type":"text/x-python","patch_set":8,"id":"e2b1782d_9c5c2224","line":120,"updated":"2022-02-14 08:26:04.000000000","message":"\"results\" contains also the status for the backend (the pool in Octavia terminology), setting line[\u0027status\u0027] to DRAIN should only apply to members.\nI think this block should be moved at the beginning the else block that starts at line 131","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"33bc6f23f6d01a8242a6d536ad48d77e1348a35a","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"            # Due to a bug in some versions of HAProxy, DRAIN mode isn\u0027t"},{"line_number":119,"context_line":"            # calculated correctly, but we can spoof the correct value here."},{"line_number":120,"context_line":"            if line[\u0027status\u0027] \u003d\u003d consts.UP and line[\u0027weight\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":121,"context_line":"                line[\u0027status\u0027] \u003d consts.DRAIN"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"            if line[\u0027pxname\u0027] not in final_results:"}],"source_content_type":"text/x-python","patch_set":8,"id":"e44b46f1_008d6778","line":120,"in_reply_to":"e2b1782d_9c5c2224","updated":"2022-02-16 14:33:49.000000000","message":"You\u0027re right. Thanks!","commit_id":"7558cbe850e2573f27829eff204a4562e5496051"}],"octavia/tests/unit/amphorae/backends/utils/test_haproxy_query.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"64b7313a25e039ab2246d819d070a72af0d19c42","unresolved":true,"context_lines":[{"line_number":100,"context_line":"        query_mock.return_value \u003d STATS_SOCKET_SAMPLE"},{"line_number":101,"context_line":"        self.assertEqual("},{"line_number":102,"context_line":"            {\u0027tcp-servers:listener-id\u0027: {"},{"line_number":103,"context_line":"                \u0027status\u0027: constants.DRAIN,"},{"line_number":104,"context_line":"                \u0027listener_uuid\u0027: \u0027listener-id\u0027,"},{"line_number":105,"context_line":"                \u0027pool_uuid\u0027: \u0027tcp-servers\u0027,"},{"line_number":106,"context_line":"                \u0027members\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"402b05fd_edef5407","line":103,"range":{"start_line":103,"start_character":26,"end_line":103,"end_character":41},"updated":"2022-02-02 13:36:04.000000000","message":"Nit: I don\u0027t think that having a listener in DRAIN changes something with the hm.","commit_id":"b2bb481e1cb97967606b42f854afa16f84a367d9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5c0c0d046e400443cb0f16c236206c6a287dd407","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        query_mock.return_value \u003d STATS_SOCKET_SAMPLE"},{"line_number":101,"context_line":"        self.assertEqual("},{"line_number":102,"context_line":"            {\u0027tcp-servers:listener-id\u0027: {"},{"line_number":103,"context_line":"                \u0027status\u0027: constants.DRAIN,"},{"line_number":104,"context_line":"                \u0027listener_uuid\u0027: \u0027listener-id\u0027,"},{"line_number":105,"context_line":"                \u0027pool_uuid\u0027: \u0027tcp-servers\u0027,"},{"line_number":106,"context_line":"                \u0027members\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"47218cea_a7be5cb6","line":103,"range":{"start_line":103,"start_character":26,"end_line":103,"end_character":41},"in_reply_to":"402b05fd_edef5407","updated":"2022-02-03 09:48:33.000000000","message":"The name \"tcp-servers:listener-id\" comes from the HAProxy proxy name \"pxname\" and is not related to a listener. It\u0027s the pool state that is in DRAIN now, which seems correct with the change that I\u0027ve made.","commit_id":"b2bb481e1cb97967606b42f854afa16f84a367d9"}]}
