)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38298,"name":"Helen Chen","display_name":"Helen Chen","email":"ichen@redhat.com","username":"ingwherchen"},"change_message_id":"e75d1c55f1cf7911cccccd1fe666b9028e86f6fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cb4a2f28_9daaa153","updated":"2025-11-10 15:47:54.000000000","message":"Functional test failure due to bug 2131023.   https://bugs.launchpad.net/neutron/+bug/2131023","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":38298,"name":"Helen Chen","display_name":"Helen Chen","email":"ichen@redhat.com","username":"ingwherchen"},"change_message_id":"1f14a0d7078e3f2bae6e7bda908f5335eba80562","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"08c3c8a0_8fe63c3a","updated":"2025-11-17 15:38:27.000000000","message":"Patch to fix functional test failure https://review.opendev.org/c/openstack/neutron/+/966789\n\nbug 2131023 is duplicated to https://launchpad.net/bugs/2130622","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"f11ca381f027b7bd48c86f49d4a8115bce66ba6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"29577830_7dd56647","updated":"2026-03-03 13:06:29.000000000","message":"We are doing 1 or 2 additional requests per record, instead of just trying to delete, and handling NotFound (see linked patch in my previous comment).\n\nBesides, you still may leave orphans in your current implementation when only some records were deleted out of band.","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"710c1502af879c3fc3af131f3a887d598f0343b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9a305de6_5424a83b","updated":"2026-03-03 12:22:59.000000000","message":"alternative, a bit simpler approach - \"ask for forgiveness, not for permission\"\nhttps://review.opendev.org/c/openstack/neutron/+/978567","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"4ce4299e66414bce9522f3dc5bc0e173722e0b5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f32747a1_f80ec988","updated":"2026-04-28 12:17:18.000000000","message":"https://review.opendev.org/c/openstack/neutron/+/978567 was merged, this can be abandoned now","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a7109b73bf85bc01d738164e250ae1b336681a40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d1091ed9_232ba90d","updated":"2025-11-21 08:48:21.000000000","message":"recheck\nfunctional fix is already merged","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"}],"neutron/services/externaldns/drivers/designate/driver.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"f11ca381f027b7bd48c86f49d4a8115bce66ba6b","unresolved":true,"context_lines":[{"line_number":156,"context_line":"        try:"},{"line_number":157,"context_line":"            names_to_delete, zones_to_delete \u003d \\"},{"line_number":158,"context_line":"                self._get_ptrs_to_delete(records, admin_client)"},{"line_number":159,"context_line":"        except dns_exc.DNSDomainNotFound:"},{"line_number":160,"context_line":"            # Try whether we have admin powers and can see all projects"},{"line_number":161,"context_line":"            admin_client \u003d get_all_projects_client(context)"},{"line_number":162,"context_line":"            names_to_delete, zones_to_delete \u003d \\"},{"line_number":163,"context_line":"                self._get_ptrs_to_delete(records, admin_client)"},{"line_number":164,"context_line":"        for i in range(0, len(names_to_delete)):"},{"line_number":165,"context_line":"            admin_client.recordsets.delete(zones_to_delete[i],"},{"line_number":166,"context_line":"                                           names_to_delete[i])"}],"source_content_type":"text/x-python","patch_set":1,"id":"f5c4ea40_465283d8","line":163,"range":{"start_line":159,"start_character":0,"end_line":163,"end_character":63},"updated":"2026-03-03 13:06:29.000000000","message":"this is not needed. The ptr we want to delete is always created by admin_client in the project corresponding to its auth in designate config, there\u0027s no need to search for it with all project client (which is needed in the case when admin deletes smth created by other user).","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"f11ca381f027b7bd48c86f49d4a8115bce66ba6b","unresolved":true,"context_lines":[{"line_number":161,"context_line":"            admin_client \u003d get_all_projects_client(context)"},{"line_number":162,"context_line":"            names_to_delete, zones_to_delete \u003d \\"},{"line_number":163,"context_line":"                self._get_ptrs_to_delete(records, admin_client)"},{"line_number":164,"context_line":"        for i in range(0, len(names_to_delete)):"},{"line_number":165,"context_line":"            admin_client.recordsets.delete(zones_to_delete[i],"},{"line_number":166,"context_line":"                                           names_to_delete[i])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def _get_ids_ips_to_delete(self, dns_domain, name, records,"},{"line_number":169,"context_line":"                               designate_client):"}],"source_content_type":"text/x-python","patch_set":1,"id":"501e8fa1_d8036621","line":166,"range":{"start_line":164,"start_character":0,"end_line":166,"end_character":62},"updated":"2026-03-03 13:06:29.000000000","message":"```\nfor zone, name in zip(zones_to_delete, names_to_delete):\n    ...delete(zone, name)\n\n```","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"f11ca381f027b7bd48c86f49d4a8115bce66ba6b","unresolved":true,"context_lines":[{"line_number":192,"context_line":"                    in_addr_names.append(in_addr_name)"},{"line_number":193,"context_line":"                    in_addr_zone_names.append(in_addr_zone_name)"},{"line_number":194,"context_line":"            except (d_exc.NotFound, d_exc.Forbidden):"},{"line_number":195,"context_line":"                raise dns_exc.DNSDomainNotFound(dns_domain\u003din_addr_name)"},{"line_number":196,"context_line":"        return in_addr_names, in_addr_zone_names"}],"source_content_type":"text/x-python","patch_set":1,"id":"4d52fc1e_dcba7244","line":195,"updated":"2026-03-03 13:06:29.000000000","message":"if something is not found, you won\u0027t be searching for the rest, and those will be left orphaned.","commit_id":"f83da1235fd2b3248ad0f1fc0d4b3a686253e9f7"}]}
