)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"b60d7cdb7bde8d57dd425c879516d6d78cf8f890","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"33bfaebf_e92893ca","updated":"2026-08-11 13:56:42.000000000","message":"In general it looks good but I\u0027ve a couple of questions on how the AZ is chosen","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"034b16fb60f353bb8720e6ee6a21c0791c15615a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7b713d0b_086b39f6","updated":"2026-08-13 13:07:50.000000000","message":"This PR was squashed in https://review.opendev.org/c/openstack/octavia/+/976100","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"}],"octavia/api/v2/controllers/load_balancer.py":[{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"b60d7cdb7bde8d57dd425c879516d6d78cf8f890","unresolved":true,"context_lines":[{"line_number":476,"context_line":"        \"\"\"Validate the availability_zones (plural) list."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        Each AZ must exist and be enabled. Unlike the automatic multizone"},{"line_number":479,"context_line":"        path, use_in_multizone is not required here because the user is"},{"line_number":480,"context_line":"        explicitly choosing which AZs to use."},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        az_names \u003d load_balancer.availability_zones"}],"source_content_type":"text/x-python","patch_set":1,"id":"361d8b7d_f0b1ef94","line":479,"updated":"2026-08-11 13:56:42.000000000","message":"Is this the right logic? As an admin it seems valuable to be able to specify some AZs as multizone capable and others as not. So then the validation should also check if the AZ is enabled for multizone","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"dbb05c037c825935cc466eea9e18ed4a15db0e4d","unresolved":true,"context_lines":[{"line_number":476,"context_line":"        \"\"\"Validate the availability_zones (plural) list."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        Each AZ must exist and be enabled. Unlike the automatic multizone"},{"line_number":479,"context_line":"        path, use_in_multizone is not required here because the user is"},{"line_number":480,"context_line":"        explicitly choosing which AZs to use."},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        az_names \u003d load_balancer.availability_zones"}],"source_content_type":"text/x-python","patch_set":1,"id":"5888855a_1b372a86","line":479,"in_reply_to":"361d8b7d_f0b1ef94","updated":"2026-08-13 10:58:45.000000000","message":"agree, looks like we missed here validation AZs against use_in_multizone option.\nIf we have in this list more than 1 AZ - we should check, that all of them have use_in_multizone\u003dTrue","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"}],"octavia/controller/worker/v2/controller_worker.py":[{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"b60d7cdb7bde8d57dd425c879516d6d78cf8f890","unresolved":true,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        master_availability_zone, backup_availability_zone \u003d None, None"},{"line_number":403,"context_line":"        if explicit_az_names:"},{"line_number":404,"context_line":"            master_availability_zone \u003d random.choice(explicit_az_names)"},{"line_number":405,"context_line":"            remaining \u003d [az for az in explicit_az_names"},{"line_number":406,"context_line":"                         if az !\u003d master_availability_zone]"},{"line_number":407,"context_line":"            backup_availability_zone \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"81f4cef3_18da4124","line":404,"updated":"2026-08-11 13:56:42.000000000","message":"Should it be random, or just the first one? It shouldn\u0027t matter in theory since MASTER and BACKUP are just roles. But it might look weird in the UX to see the BACKUP in AZ1 and MASTER in AZ2","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"},{"author":{"_account_id":38562,"name":"Richard Cruise","email":"rcruise@redhat.com","username":"rcruise"},"change_message_id":"fad92ee25194066e6463e5be011a102c924a38e0","unresolved":false,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        master_availability_zone, backup_availability_zone \u003d None, None"},{"line_number":403,"context_line":"        if explicit_az_names:"},{"line_number":404,"context_line":"            master_availability_zone \u003d random.choice(explicit_az_names)"},{"line_number":405,"context_line":"            remaining \u003d [az for az in explicit_az_names"},{"line_number":406,"context_line":"                         if az !\u003d master_availability_zone]"},{"line_number":407,"context_line":"            backup_availability_zone \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"ebac5d61_b7e5a2ec","line":404,"in_reply_to":"3b44b8e5_ddba1d6a","updated":"2026-08-13 13:06:42.000000000","message":"Acknowledged","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"dbb05c037c825935cc466eea9e18ed4a15db0e4d","unresolved":true,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        master_availability_zone, backup_availability_zone \u003d None, None"},{"line_number":403,"context_line":"        if explicit_az_names:"},{"line_number":404,"context_line":"            master_availability_zone \u003d random.choice(explicit_az_names)"},{"line_number":405,"context_line":"            remaining \u003d [az for az in explicit_az_names"},{"line_number":406,"context_line":"                         if az !\u003d master_availability_zone]"},{"line_number":407,"context_line":"            backup_availability_zone \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"3b44b8e5_ddba1d6a","line":404,"in_reply_to":"81f4cef3_18da4124","updated":"2026-08-13 10:58:45.000000000","message":"it\u0027s expected, because we want real random distribution.","commit_id":"5dcdc6d3a190d2c00c5ff001c971c1810c41eb72"}]}
