)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"88bfcc03e6aa4111690fe4395d2dd2ac8049526f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5e9b6d99_7b11b623","updated":"2026-01-26 13:32:56.000000000","message":"check experimental","commit_id":"6fe90ea08966e752ffb2e4037ac955f439bb3ac5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"88348e7d2f7b8796182f457ad2fed29f5a6e54fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"048a40b2_693908b9","updated":"2026-01-27 19:19:43.000000000","message":"Not sure if we need to revert this, have seen one of these new tests fail in two different changes:\n\nhttps://review.opendev.org/c/openstack/neutron/+/972166\nhttps://review.opendev.org/c/openstack/neutron/+/974829/","commit_id":"c34b7fa7cd1cb99dd571acd6d47d87a66d325d68"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"f5dab4a991dfb4622a1ab2dfba0e32b87930c357","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"39599c8e_be1adb0d","in_reply_to":"048a40b2_693908b9","updated":"2026-01-28 10:46:20.000000000","message":"being tracked in https://bugs.launchpad.net/neutron/+bug/2139271, if the fix is taking time we can consider the revert and rework.","commit_id":"c34b7fa7cd1cb99dd571acd6d47d87a66d325d68"}],"neutron/tests/functional/services/ovn_l3/test_plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6c8a70c0ac2f6914bdeec256685635f2727121ff","unresolved":true,"context_lines":[{"line_number":405,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":406,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":407,"context_line":"                    ])"},{"line_number":408,"context_line":"                assert(nb.call_count \u003c 3)"},{"line_number":409,"context_line":"            for row in self.nb_api.tables["},{"line_number":410,"context_line":"                    \u0027Logical_Router_Port\u0027].rows.values():"},{"line_number":411,"context_line":"                if (ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfd94d17_df242ad6","line":408,"range":{"start_line":408,"start_character":16,"end_line":408,"end_character":41},"updated":"2025-12-18 04:01:28.000000000","message":"s/self.assertLess(nb.call_count, 3)\n\nAlthough it looks like this mock and check is the only change from the above test?\nIt seems like we only need one test? Or this test can end here?","commit_id":"4bc7552d30896a53b79f4c9c52925603873a0ff7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"99e745b8b6535806b775efc27a5c80282af699d1","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":406,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":407,"context_line":"                    ])"},{"line_number":408,"context_line":"                assert(nb.call_count \u003c 3)"},{"line_number":409,"context_line":"            for row in self.nb_api.tables["},{"line_number":410,"context_line":"                    \u0027Logical_Router_Port\u0027].rows.values():"},{"line_number":411,"context_line":"                if (ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY"}],"source_content_type":"text/x-python","patch_set":4,"id":"d402b753_bc4f1166","line":408,"range":{"start_line":408,"start_character":16,"end_line":408,"end_character":41},"in_reply_to":"6ad2aca3_bc79bda2","updated":"2026-01-26 14:46:39.000000000","message":"Done","commit_id":"4bc7552d30896a53b79f4c9c52925603873a0ff7"},{"author":{"_account_id":35873,"name":"Daniel Failing","display_name":"Daniel Failing","email":"dev@danfai.de","username":"danfai"},"change_message_id":"364a1bddaa306a002ad0cd15d65775d38e23718a","unresolved":true,"context_lines":[{"line_number":405,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":406,"context_line":"                        {\u0027network_id\u0027: ext1[\u0027network\u0027][\u0027id\u0027]},"},{"line_number":407,"context_line":"                    ])"},{"line_number":408,"context_line":"                assert(nb.call_count \u003c 3)"},{"line_number":409,"context_line":"            for row in self.nb_api.tables["},{"line_number":410,"context_line":"                    \u0027Logical_Router_Port\u0027].rows.values():"},{"line_number":411,"context_line":"                if (ovn_const.OVN_ROUTER_NAME_EXT_ID_KEY"}],"source_content_type":"text/x-python","patch_set":4,"id":"6ad2aca3_bc79bda2","line":408,"range":{"start_line":408,"start_character":16,"end_line":408,"end_character":41},"in_reply_to":"bfd94d17_df242ad6","updated":"2025-12-18 09:56:48.000000000","message":"Sure, the other parts are tested with the test before.\nI can remove the lines after. (or add the timing constraint in the test before)\n\nIf you have a better idea for how to check the calls to ovsdbapp.\nI am also inclinced to change it or add some timing check in the test and increase the number of routers and routerports. The problem with a timing check though is the non-deterministic nature of just using timing...","commit_id":"4bc7552d30896a53b79f4c9c52925603873a0ff7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0ad05fccc99420ef3a1382b026644fe611fdf4ae","unresolved":true,"context_lines":[{"line_number":365,"context_line":"                            lrps[n],"},{"line_number":366,"context_line":"                            lrp_list[n])"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def test_gateway_chassis_least_loaded_scheduler_anti_affinity_count(self):"},{"line_number":369,"context_line":"        ovn_client \u003d self.l3_plugin._ovn_client"},{"line_number":370,"context_line":"        ovn_client._ovn_scheduler \u003d l3_sched.OVNGatewayLeastLoadedScheduler()"},{"line_number":371,"context_line":"        ext1 \u003d self._create_ext_network("}],"source_content_type":"text/x-python","patch_set":5,"id":"020cbd78_3e064a25","line":368,"updated":"2026-01-09 17:55:58.000000000","message":"Another test actually checking the gateway_chassis assignation done by the scheduler should be needed. A test checking that chassis:priority assignation is balanced.\n\nFor example, creating something similar to `test_gateway_chassis_least_loaded_scheduler` but with multigateway routers. If you have 3 GW chassis and you create a router with 6 GW networks, the gateway_chassis registers (3*6) should be balanced across all GW chassis. Each GW chassis should have:\n* 2 gateway_chassis registers associated with prio 1\n* 2 gateway_chassis registers associated with prio 2\n* 2 gateway_chassis registers associated with prio 3\n\nThat would ensure the scheduling is done properly balanced.","commit_id":"dc785d8289da9ea3d5dfc57c9fe381b18066aa1a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"91ddb63c07d4a5ba33ea018967c7cf75cfff6ce7","unresolved":true,"context_lines":[{"line_number":365,"context_line":"                            lrps[n],"},{"line_number":366,"context_line":"                            lrp_list[n])"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def test_gateway_chassis_least_loaded_scheduler_anti_affinity_count(self):"},{"line_number":369,"context_line":"        ovn_client \u003d self.l3_plugin._ovn_client"},{"line_number":370,"context_line":"        ovn_client._ovn_scheduler \u003d l3_sched.OVNGatewayLeastLoadedScheduler()"},{"line_number":371,"context_line":"        ext1 \u003d self._create_ext_network("}],"source_content_type":"text/x-python","patch_set":5,"id":"86323c23_ecc9e1cb","line":368,"in_reply_to":"020cbd78_3e064a25","updated":"2026-01-09 17:56:16.000000000","message":"I\u0027ll try to propose a patch next Monday","commit_id":"dc785d8289da9ea3d5dfc57c9fe381b18066aa1a"},{"author":{"_account_id":35873,"name":"Daniel Failing","display_name":"Daniel Failing","email":"dev@danfai.de","username":"danfai"},"change_message_id":"4b58cf7970ecd8fdd43cd1a81ff14312c1c86072","unresolved":true,"context_lines":[{"line_number":365,"context_line":"                            lrps[n],"},{"line_number":366,"context_line":"                            lrp_list[n])"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def test_gateway_chassis_least_loaded_scheduler_anti_affinity_count(self):"},{"line_number":369,"context_line":"        ovn_client \u003d self.l3_plugin._ovn_client"},{"line_number":370,"context_line":"        ovn_client._ovn_scheduler \u003d l3_sched.OVNGatewayLeastLoadedScheduler()"},{"line_number":371,"context_line":"        ext1 \u003d self._create_ext_network("}],"source_content_type":"text/x-python","patch_set":5,"id":"c23bfe80_7c6e3ada","line":368,"in_reply_to":"86323c23_ecc9e1cb","updated":"2026-01-12 07:50:22.000000000","message":"If I understand you correctly, this should be the case in test_gateway_chassis_least_loaded_scheduler_anti_affinity\n\nThis test then is separate to check the calls to the NB. Maybe this test should be called differently to reflect this better.","commit_id":"dc785d8289da9ea3d5dfc57c9fe381b18066aa1a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"cc2e341ef5c6b416b3f6ebe84a76edd237ff63f5","unresolved":false,"context_lines":[{"line_number":365,"context_line":"                            lrps[n],"},{"line_number":366,"context_line":"                            lrp_list[n])"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def test_gateway_chassis_least_loaded_scheduler_anti_affinity_count(self):"},{"line_number":369,"context_line":"        ovn_client \u003d self.l3_plugin._ovn_client"},{"line_number":370,"context_line":"        ovn_client._ovn_scheduler \u003d l3_sched.OVNGatewayLeastLoadedScheduler()"},{"line_number":371,"context_line":"        ext1 \u003d self._create_ext_network("}],"source_content_type":"text/x-python","patch_set":5,"id":"06dd0078_bd715b61","line":368,"in_reply_to":"c23bfe80_7c6e3ada","updated":"2026-01-26 12:24:03.000000000","message":"Done","commit_id":"dc785d8289da9ea3d5dfc57c9fe381b18066aa1a"}]}
