)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"74b40d49ca7c0588819bbd20e168eafc1067f7bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9eb5379d_68a28a97","updated":"2024-04-24 17:43:20.000000000","message":"I might want to squash this with mine since I wanted to backport this to yoga.","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a92287bd21e2724269c70b0f8f75c29481e61bf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d56a1c9b_d71a87be","updated":"2024-04-24 17:59:55.000000000","message":"blocking it as WIP to clarify it\u0027s a point for discussion","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b009592d1e2c5076f3a7305d3c4c58b415b085f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"44a0c730_e3d1dd3d","in_reply_to":"9eb5379d_68a28a97","updated":"2024-04-24 18:00:19.000000000","message":"Feel free to take it if you think it\u0027s of help.","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f4a85f622146def4b70625b9648d6d8a7c5dcf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cc7b8539_e4937460","updated":"2024-04-30 12:20:18.000000000","message":"recheck possible infra issue","commit_id":"8bd287f5f211ab8f221e7eac3cf05c710474dec1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f126292157e816bbadbde06689925ffe64f9925d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c354aa1a_d14e0121","updated":"2024-04-30 18:07:24.000000000","message":"@Brian thanks for working on this btw; I understand that PS1 was broken and needs more work (posted it just for reference). Thanks!","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66c3386bbf9d0ff6c06d1a41b92a6fb939d7b289","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"489b7636_5342db27","updated":"2024-04-30 17:04:25.000000000","message":"I\u0027ll look closer at the comments once we get this to pass.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6d03c3c52e84924b7f3c86b3ce37bb7e47cbcab5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bc97a724_dd65d4ab","updated":"2024-05-09 19:42:12.000000000","message":"I spent way too much time on this today, but made some progress.","commit_id":"3ce1d9729357e4811786294090d2b6b6e3fc41c5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9a1389e3f2317ae27545ef21902da08ed25d736e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a2363e80_fe0d59ce","updated":"2024-05-09 21:58:31.000000000","message":"I might merge this with the parent tomorrow, pending any failures.","commit_id":"c239071aea02a2937f0a821489b8ef0172b6515c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff0153fc5b24bc3acf018ea2828756673eb2ba24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7da09381_499fb98a","updated":"2024-05-10 00:21:19.000000000","message":"recheck possible unrelated test failure","commit_id":"9d400ce4e755514d395241945c9db1004602ac81"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"be92ab73b82a09672dcf27b62f52ddb7caf5a70c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c88520d2_f1e6745e","updated":"2024-05-11 15:39:06.000000000","message":"Squashed this into parent","commit_id":"90f6e62b29c1ec2f8d0a9e14e0f8da8c1be96f4e"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"fbf1240ee2660bedd133974ab83eebeff940d793","unresolved":true,"context_lines":[{"line_number":1430,"context_line":"        cidrs \u003d cidrs.copy() if cidrs else set()"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"        if not depth:"},{"line_number":1433,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1434,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1435,"context_line":"            return visited, cidrs"},{"line_number":1436,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"b6dc41d6_68813f92","line":1433,"updated":"2024-04-24 18:02:24.000000000","message":"this here - maybe not a good idea to log on every entrance; instead, we could bubble up a `is_loop` flag as the 3rd element of the returned tuple and let the get_v4_network_of_all_router_ports function to log it once.","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f4a85f622146def4b70625b9648d6d8a7c5dcf8","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"        cidrs \u003d cidrs.copy() if cidrs else set()"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"        if not depth:"},{"line_number":1433,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1434,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1435,"context_line":"            return visited, cidrs"},{"line_number":1436,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fdd03b4b_b09f252d","line":1433,"in_reply_to":"b6dc41d6_68813f92","updated":"2024-04-30 12:20:18.000000000","message":"My testing shows this is only done once, when it runs out of depth, at least it was when I added a print and ran the unit tests.","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"52792f73c2bf2825b0c48e06938dfc10958d9cb0","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"        cidrs \u003d cidrs.copy() if cidrs else set()"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"        if not depth:"},{"line_number":1433,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1434,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1435,"context_line":"            return visited, cidrs"},{"line_number":1436,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"db06af42_36847266","line":1433,"in_reply_to":"fdd03b4b_b09f252d","updated":"2024-04-30 16:25:32.000000000","message":"Would need to have multiple entries at the leaf level (then each entry would be entered and log).","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4d08bbc2a35bb7d95188821b7b9879084d2c4060","unresolved":true,"context_lines":[{"line_number":1448,"context_line":"                    # all cidrs as nested cidrs, they will be returned as the"},{"line_number":1449,"context_line":"                    # second return value below."},{"line_number":1450,"context_line":"                    nested, _ \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1451,"context_line":"                        context, rport[\u0027device_id\u0027], nested, visited,"},{"line_number":1452,"context_line":"                        depth - 1)"},{"line_number":1453,"context_line":"                    cidrs.update(nested)"},{"line_number":1454,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"90c7bf3c_1d85f075","line":1451,"range":{"start_line":1451,"start_character":33,"end_line":1451,"end_character":51},"updated":"2024-04-30 15:11:41.000000000","message":"This seems correct based on parent, but think the resultant _get_router() call on next recursion is failing.","commit_id":"8bd287f5f211ab8f221e7eac3cf05c710474dec1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c3b50aef66f69abd70aaf6d5914878c66f2f893b","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"                    # all cidrs as nested cidrs, they will be returned as the"},{"line_number":1449,"context_line":"                    # second return value below."},{"line_number":1450,"context_line":"                    nested, _ \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1451,"context_line":"                        context, rport[\u0027device_id\u0027], nested, visited,"},{"line_number":1452,"context_line":"                        depth - 1)"},{"line_number":1453,"context_line":"                    cidrs.update(nested)"},{"line_number":1454,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"593a0dd4_50ee8661","line":1451,"range":{"start_line":1451,"start_character":33,"end_line":1451,"end_character":51},"in_reply_to":"90c7bf3c_1d85f075","updated":"2024-04-30 16:36:08.000000000","message":"Looking in the plugin-ovn job logs I do see this:\n\n\"Possible network loop for router ...\"\n\nSo something there.\n\nWhen this was rport[\u0027id\u0027] there were \"can\u0027t find router\" tracebacks, hmm.","commit_id":"8bd287f5f211ab8f221e7eac3cf05c710474dec1"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7759fc4c9bbf08e21939465670524d757f808170","unresolved":true,"context_lines":[{"line_number":1418,"context_line":"    def get_v4_network_of_all_router_ports(self, context, router_id):"},{"line_number":1419,"context_line":"        cidrs \u003d set()"},{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1047400e_742e1174","line":1421,"updated":"2024-04-30 16:54:32.000000000","message":"can\u0027t we just... return here?","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66c3386bbf9d0ff6c06d1a41b92a6fb939d7b289","unresolved":true,"context_lines":[{"line_number":1418,"context_line":"    def get_v4_network_of_all_router_ports(self, context, router_id):"},{"line_number":1419,"context_line":"        cidrs \u003d set()"},{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dad30f6d_e614d4cc","line":1421,"in_reply_to":"1047400e_742e1174","updated":"2024-04-30 17:04:25.000000000","message":"Yes we can.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"850e423a6ca3b30f490de9c2c971348710419005","unresolved":false,"context_lines":[{"line_number":1418,"context_line":"    def get_v4_network_of_all_router_ports(self, context, router_id):"},{"line_number":1419,"context_line":"        cidrs \u003d set()"},{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"eee06681_4faa4112","line":1421,"in_reply_to":"dad30f6d_e614d4cc","updated":"2024-05-09 00:29:38.000000000","message":"Done","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7759fc4c9bbf08e21939465670524d757f808170","unresolved":true,"context_lines":[{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""},{"line_number":1425,"context_line":"    def _get_v4_network_of_all_router_ports(self, context, router_id,"},{"line_number":1426,"context_line":"                                            cidrs, visited, depth):"}],"source_content_type":"text/x-python","patch_set":5,"id":"8a371b39_6471e9d5","line":1423,"updated":"2024-04-30 16:54:32.000000000","message":"i still don\u0027t understand why we need to return nested_cidrs when they are not used anywhere except func tests (?)","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6d03c3c52e84924b7f3c86b3ce37bb7e47cbcab5","unresolved":false,"context_lines":[{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""},{"line_number":1425,"context_line":"    def _get_v4_network_of_all_router_ports(self, context, router_id,"},{"line_number":1426,"context_line":"                                            cidrs, visited, depth):"}],"source_content_type":"text/x-python","patch_set":5,"id":"b5df9a59_801ff046","line":1423,"in_reply_to":"67722b7a_fdab7111","updated":"2024-05-09 19:42:12.000000000","message":"I found the reason - the functional test adds a nested router, but plugs it into the external network. The ovn_client code didn\u0027t account for that.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66c3386bbf9d0ff6c06d1a41b92a6fb939d7b289","unresolved":true,"context_lines":[{"line_number":1420,"context_line":"        visited \u003d set()"},{"line_number":1421,"context_line":"        cidrs, nested_cidrs \u003d self._get_v4_network_of_all_router_ports("},{"line_number":1422,"context_line":"            context, router_id, cidrs, visited, depth\u003dOVN_RECURSION_DEPTH)"},{"line_number":1423,"context_line":"        return cidrs, nested_cidrs"},{"line_number":1424,"context_line":""},{"line_number":1425,"context_line":"    def _get_v4_network_of_all_router_ports(self, context, router_id,"},{"line_number":1426,"context_line":"                                            cidrs, visited, depth):"}],"source_content_type":"text/x-python","patch_set":5,"id":"67722b7a_fdab7111","line":1423,"in_reply_to":"8a371b39_6471e9d5","updated":"2024-04-30 17:04:25.000000000","message":"We\u0027ll need to find a way to make the functional tests work, I haven\u0027t yet.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7759fc4c9bbf08e21939465670524d757f808170","unresolved":true,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        if depth \u003d\u003d 0:"},{"line_number":1430,"context_line":"            # Too many nested networks"},{"line_number":1431,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1432,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1433,"context_line":"            return cidrs, nested"},{"line_number":1434,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f7920c7_893e0e10","line":1431,"updated":"2024-04-30 16:54:32.000000000","message":"this is being logged multiple times; we should log once (bubble up is_loop flag up to first layer and log there?)","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6d03c3c52e84924b7f3c86b3ce37bb7e47cbcab5","unresolved":true,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        if depth \u003d\u003d 0:"},{"line_number":1430,"context_line":"            # Too many nested networks"},{"line_number":1431,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1432,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1433,"context_line":"            return cidrs, nested"},{"line_number":1434,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cda9f88c_0aa6f851","line":1431,"in_reply_to":"0cc4431d_f2de4e93","updated":"2024-05-09 19:42:12.000000000","message":"I still need to work on this.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"30772b4d5208623b2895b3a97b1377e0b44de465","unresolved":true,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        if depth \u003d\u003d 0:"},{"line_number":1430,"context_line":"            # Too many nested networks"},{"line_number":1431,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1432,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1433,"context_line":"            return cidrs, nested"},{"line_number":1434,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"0cc4431d_f2de4e93","line":1431,"in_reply_to":"19adb778_014c717e","updated":"2024-04-30 18:06:44.000000000","message":"Is your testing involving 2+ branching on each level? if it\u0027s just a chain of resources, then yes, you\u0027ll have a single message.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66c3386bbf9d0ff6c06d1a41b92a6fb939d7b289","unresolved":true,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        if depth \u003d\u003d 0:"},{"line_number":1430,"context_line":"            # Too many nested networks"},{"line_number":1431,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1432,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1433,"context_line":"            return cidrs, nested"},{"line_number":1434,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"19adb778_014c717e","line":1431,"in_reply_to":"7f7920c7_893e0e10","updated":"2024-04-30 17:04:25.000000000","message":"I\u0027ll double-check but didn\u0027t see it in my testing just a single log.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9a1389e3f2317ae27545ef21902da08ed25d736e","unresolved":false,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        if depth \u003d\u003d 0:"},{"line_number":1430,"context_line":"            # Too many nested networks"},{"line_number":1431,"context_line":"            LOG.error(\u0027Possible network loop for router %s, \u0027"},{"line_number":1432,"context_line":"                      \u0027please check network topology.\u0027, router_id)"},{"line_number":1433,"context_line":"            return cidrs, nested"},{"line_number":1434,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"d508274c_0757f06f","line":1431,"in_reply_to":"cda9f88c_0aa6f851","updated":"2024-05-09 21:58:31.000000000","message":"Done","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7759fc4c9bbf08e21939465670524d757f808170","unresolved":true,"context_lines":[{"line_number":1442,"context_line":"                # routers on this network with an interface on another network."},{"line_number":1443,"context_line":"                for rport in self._get_subnet_router_ports(context, s_id):"},{"line_number":1444,"context_line":"                    # add to the set of ports we have visited, so we don\u0027t loop"},{"line_number":1445,"context_line":"                    visited.add(rport[\u0027id\u0027])"},{"line_number":1446,"context_line":"                    # This is not a typo! From here on down we want to collect"},{"line_number":1447,"context_line":"                    # all cidrs as nested cidrs, they will be returned as the"},{"line_number":1448,"context_line":"                    # second return value below."}],"source_content_type":"text/x-python","patch_set":5,"id":"a00ccd9c_cbb1fa28","line":1445,"updated":"2024-04-30 16:54:32.000000000","message":"(No action required) I preferred the original copy-on-write approach to keep the function more \"pure\".","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"850e423a6ca3b30f490de9c2c971348710419005","unresolved":false,"context_lines":[{"line_number":1442,"context_line":"                # routers on this network with an interface on another network."},{"line_number":1443,"context_line":"                for rport in self._get_subnet_router_ports(context, s_id):"},{"line_number":1444,"context_line":"                    # add to the set of ports we have visited, so we don\u0027t loop"},{"line_number":1445,"context_line":"                    visited.add(rport[\u0027id\u0027])"},{"line_number":1446,"context_line":"                    # This is not a typo! From here on down we want to collect"},{"line_number":1447,"context_line":"                    # all cidrs as nested cidrs, they will be returned as the"},{"line_number":1448,"context_line":"                    # second return value below."}],"source_content_type":"text/x-python","patch_set":5,"id":"9ca28c9d_13fdda93","line":1445,"in_reply_to":"5f5e6e3b_4f7768b9","updated":"2024-05-09 00:29:38.000000000","message":"Done","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"66c3386bbf9d0ff6c06d1a41b92a6fb939d7b289","unresolved":true,"context_lines":[{"line_number":1442,"context_line":"                # routers on this network with an interface on another network."},{"line_number":1443,"context_line":"                for rport in self._get_subnet_router_ports(context, s_id):"},{"line_number":1444,"context_line":"                    # add to the set of ports we have visited, so we don\u0027t loop"},{"line_number":1445,"context_line":"                    visited.add(rport[\u0027id\u0027])"},{"line_number":1446,"context_line":"                    # This is not a typo! From here on down we want to collect"},{"line_number":1447,"context_line":"                    # all cidrs as nested cidrs, they will be returned as the"},{"line_number":1448,"context_line":"                    # second return value below."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f5e6e3b_4f7768b9","line":1445,"in_reply_to":"a00ccd9c_cbb1fa28","updated":"2024-04-30 17:04:25.000000000","message":"I\u0027ll see what I can do, but it wasn\u0027t actually doing the correct thing from what I could tell.","commit_id":"d5e4b4272565e4c83018a98d2b61689d71202850"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"74b40d49ca7c0588819bbd20e168eafc1067f7bf","unresolved":true,"context_lines":[{"line_number":540,"context_line":"                    if gw_info.ip_version \u003d\u003d constants.IP_VERSION_6:"},{"line_number":541,"context_line":"                        continue"},{"line_number":542,"context_line":"                    if gw_info.router_ip and utils.is_snat_enabled(router):"},{"line_number":543,"context_line":"                        networks, _n \u003d self._ovn_client.\\"},{"line_number":544,"context_line":"                            get_v4_network_of_all_router_ports("},{"line_number":545,"context_line":"                                ctx, router[\u0027id\u0027])"},{"line_number":546,"context_line":"                        for network in networks:"}],"source_content_type":"text/x-python","patch_set":1,"id":"686991cc_8d9218b7","line":543,"range":{"start_line":543,"start_character":32,"end_line":543,"end_character":36},"updated":"2024-04-24 17:43:20.000000000","message":"Think the _n can be removed as this doesn\u0027t return a tuple, just the _get* version does","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a92287bd21e2724269c70b0f8f75c29481e61bf8","unresolved":true,"context_lines":[{"line_number":540,"context_line":"                    if gw_info.ip_version \u003d\u003d constants.IP_VERSION_6:"},{"line_number":541,"context_line":"                        continue"},{"line_number":542,"context_line":"                    if gw_info.router_ip and utils.is_snat_enabled(router):"},{"line_number":543,"context_line":"                        networks, _n \u003d self._ovn_client.\\"},{"line_number":544,"context_line":"                            get_v4_network_of_all_router_ports("},{"line_number":545,"context_line":"                                ctx, router[\u0027id\u0027])"},{"line_number":546,"context_line":"                        for network in networks:"}],"source_content_type":"text/x-python","patch_set":1,"id":"b39e39ac_e2fc3670","line":543,"range":{"start_line":543,"start_character":32,"end_line":543,"end_character":36},"in_reply_to":"686991cc_8d9218b7","updated":"2024-04-24 17:59:55.000000000","message":"yeah, I may have missed some of it, just wanted to post for your consideration.","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7f4a85f622146def4b70625b9648d6d8a7c5dcf8","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                    if gw_info.ip_version \u003d\u003d constants.IP_VERSION_6:"},{"line_number":541,"context_line":"                        continue"},{"line_number":542,"context_line":"                    if gw_info.router_ip and utils.is_snat_enabled(router):"},{"line_number":543,"context_line":"                        networks, _n \u003d self._ovn_client.\\"},{"line_number":544,"context_line":"                            get_v4_network_of_all_router_ports("},{"line_number":545,"context_line":"                                ctx, router[\u0027id\u0027])"},{"line_number":546,"context_line":"                        for network in networks:"}],"source_content_type":"text/x-python","patch_set":1,"id":"af1ec381_369b9350","line":543,"range":{"start_line":543,"start_character":32,"end_line":543,"end_character":36},"in_reply_to":"b39e39ac_e2fc3670","updated":"2024-04-30 12:20:18.000000000","message":"Done","commit_id":"ce18de7dcd8daefbae34ed4c5bfa98b6d71c06ca"}]}
