)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"844ffd4352a3a51d06fb17fbba6fd2d26856f7a0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"of priorities scheduled per router is equal over all routers. This means"},{"line_number":39,"context_line":"it will perform suboptimally if some phyiscal network is available on 5"},{"line_number":40,"context_line":"gateway chassis, while another one is only available on 2. (It is"},{"line_number":41,"context_line":"however unclear if the previous implmentation would have been better"},{"line_number":42,"context_line":"there)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In this commit we also the testcases in test_l3_ovn_scheduler to match"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"64bdc8f6_3bafd4fa","line":41,"range":{"start_line":41,"start_character":32,"end_line":41,"end_character":45},"updated":"2023-09-15 16:10:46.000000000","message":"micro-nit: implementation","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"34043909093bb21ccdd7c431cd12ac444e4782b9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"of priorities scheduled per router is equal over all routers. This means"},{"line_number":39,"context_line":"it will perform suboptimally if some phyiscal network is available on 5"},{"line_number":40,"context_line":"gateway chassis, while another one is only available on 2. (It is"},{"line_number":41,"context_line":"however unclear if the previous implmentation would have been better"},{"line_number":42,"context_line":"there)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In this commit we also the testcases in test_l3_ovn_scheduler to match"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5da2eef9_e15d5b96","line":41,"range":{"start_line":41,"start_character":32,"end_line":41,"end_character":45},"in_reply_to":"64bdc8f6_3bafd4fa","updated":"2023-09-18 09:37:56.000000000","message":"fixed","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7aca6e65cd7e1a53cd34199ac08de96088c2ab44","unresolved":true,"context_lines":[{"line_number":41,"context_line":"however unclear if the previous implementation would have been better"},{"line_number":42,"context_line":"there)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In this commit we also the testcases in test_l3_ovn_scheduler to match"},{"line_number":45,"context_line":"to this assumption. Previously the distribution data used for testing"},{"line_number":46,"context_line":"had been unrelasitic as it mostly scheduled one gateway chassis for each"},{"line_number":47,"context_line":"router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"cacbab9d_d78c3252","line":44,"updated":"2023-10-09 07:28:09.000000000","message":"nit: we also adopt the testcases....","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":41,"context_line":"however unclear if the previous implementation would have been better"},{"line_number":42,"context_line":"there)."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In this commit we also the testcases in test_l3_ovn_scheduler to match"},{"line_number":45,"context_line":"to this assumption. Previously the distribution data used for testing"},{"line_number":46,"context_line":"had been unrelasitic as it mostly scheduled one gateway chassis for each"},{"line_number":47,"context_line":"router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"e1d6ba9a_3ad0e066","line":44,"in_reply_to":"cacbab9d_d78c3252","updated":"2023-12-13 06:59:55.000000000","message":"thanks done","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"de6112156ae14bc67ab2d89369ce5ec5947478f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4efa96b2_53794303","updated":"2023-09-06 07:07:00.000000000","message":"Thanks for the review","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"51aef08f23cad9088db2f8f2fa3b28fe86792118","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"28a1e01a_5335526a","updated":"2023-09-06 09:54:10.000000000","message":"recheck: completely different test failed","commit_id":"1859f2f8048ef5dd0f8759cb990941f2c335f638"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"081ec9aca1ffdbfa965d294cfc1ae696b16fc2a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a11dee0f_fa1a56e8","updated":"2023-09-08 09:49:19.000000000","message":"1) You need to add more detail on the new implementation. I still don\u0027t know what this new algorithm does and why the other was not valid.\n2) You need to add, at least, unit tests to cover this new algorithm. The tests should be auto explanatory and should help us to understand this new implementation and rationale.","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7d5599384936a0885db8f4a78bc62ae97714913f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7fd57452_8acefca4","updated":"2023-09-07 19:04:48.000000000","message":"I\u0027m just trying to understand the changes here, along with the follow-on patches, hence all the questions.","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"009be912_7a0610f9","in_reply_to":"7fd57452_8acefca4","updated":"2023-09-08 14:02:00.000000000","message":"no problem, thanks a lot for the questions","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b23f57b4_c90694a4","in_reply_to":"a11dee0f_fa1a56e8","updated":"2023-09-08 14:02:00.000000000","message":"Thanks for the review.\n\n1) I have significantly expanded the commit message which should make this now a lot clearer\n2) I have adapted the existing tests and added new ones\n\nNote that i significatly adapted the testdata in test_l3_ovn_scheduler.\n\nThe previous data was from my perspective unrealistic, since it contained mostly one scheduled gateway chassis for each router, even though more would have been available. I have added realistic dummy data there, for the testcases to make sense again.","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"844ffd4352a3a51d06fb17fbba6fd2d26856f7a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f71c13b0_e2a7ca55","updated":"2023-09-15 16:10:46.000000000","message":"Minor nits, I think this is a good improvement.\n\nNOTE: after the OVN L3 refactor, the documentation must be updated.","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"7d3869258a492864f93e41e1c61917598e6743e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4a6224ea_47ee7bd1","updated":"2023-10-02 09:48:44.000000000","message":"recheck https://bugs.launchpad.net/neutron/+bug/2037239 but does seem less then previously","commit_id":"cd11a919c0cdb3a077942e10e87cb17e6f326386"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3fa869e19fc9017e09cb34b38c5b66f58c956412","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9a23e369_b1f577fb","updated":"2023-09-25 07:39:14.000000000","message":"recheck neutron-ovs-grenade-dvr-multinode","commit_id":"cd11a919c0cdb3a077942e10e87cb17e6f326386"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7e5caee8db4745462a32ba19d74acc66de8722a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b10e5195_9e1117b0","updated":"2023-09-21 14:26:33.000000000","message":"recheck neutron-ovs-tempest-multinode-full unrelated error","commit_id":"cd11a919c0cdb3a077942e10e87cb17e6f326386"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8e084bcb0ba0b11f2118cc292cb519ecb8697de2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a4d7d5e1_b388b34d","updated":"2023-09-25 10:11:29.000000000","message":"recheck neutron-tempest-plugin-openvswitch","commit_id":"cd11a919c0cdb3a077942e10e87cb17e6f326386"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9414d2f9ac90fba96489d1234a84b03252264154","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d1536f59_239e044c","updated":"2023-12-12 21:27:28.000000000","message":"This has been sitting so long looks like it needs a rebase.","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7aca6e65cd7e1a53cd34199ac08de96088c2ab44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"30d2b289_43567faa","updated":"2023-10-09 07:28:09.000000000","message":"recheck\nhttps://review.opendev.org/c/openstack/neutron/+/897332 fixed the n-t-p failures with router not active on any l3 agents","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8d6c7c1819e53e6f38a7aae6539660cea648a419","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0ecaf83d_54a9380b","updated":"2023-10-12 08:37:40.000000000","message":"recheck: timeout seems unrelated","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7ad34690_f60d09d4","in_reply_to":"d1536f59_239e044c","updated":"2023-12-13 06:59:55.000000000","message":"done. lets hope there was no change in the meantime that broke it","commit_id":"6a18d7667dcf9374e04d11e9040f324ef10fde31"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9329500e66aa8aabc8f62af9cc9d519793837c2c","unresolved":true,"context_lines":[{"line_number":476,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":2,"id":"c0f14b2c_91806083","line":479,"updated":"2023-09-05 16:43:58.000000000","message":"Missing new param","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":476,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":2,"id":"5e7af583_14ce3fbf","line":479,"in_reply_to":"8f798e77_9e69f5e2","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"de6112156ae14bc67ab2d89369ce5ec5947478f4","unresolved":true,"context_lines":[{"line_number":476,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":2,"id":"8f798e77_9e69f5e2","line":479,"in_reply_to":"c0f14b2c_91806083","updated":"2023-09-06 07:07:00.000000000","message":"thanks, fixed","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9329500e66aa8aabc8f62af9cc9d519793837c2c","unresolved":true,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"},{"line_number":483,"context_line":"        # supported or user is using old schema, then use old schema for"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfc13732_be0158dd","line":480,"updated":"2023-09-05 16:43:58.000000000","message":"And this should be updated as if priority is passed it will only return gateway chassis with that priority","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"},{"line_number":483,"context_line":"        # supported or user is using old schema, then use old schema for"}],"source_content_type":"text/x-python","patch_set":2,"id":"a38e8adc_9c807a8c","line":480,"in_reply_to":"02aa5478_338cf2af","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"de6112156ae14bc67ab2d89369ce5ec5947478f4","unresolved":true,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        @param   lrp: logical router port"},{"line_number":479,"context_line":"        @type    lrp: Logical_Router_Port row"},{"line_number":480,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority"},{"line_number":481,"context_line":"        \"\"\""},{"line_number":482,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"},{"line_number":483,"context_line":"        # supported or user is using old schema, then use old schema for"}],"source_content_type":"text/x-python","patch_set":2,"id":"02aa5478_338cf2af","line":480,"in_reply_to":"bfc13732_be0158dd","updated":"2023-09-06 07:07:00.000000000","message":"thanks fixed","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7d5599384936a0885db8f4a78bc62ae97714913f","unresolved":true,"context_lines":[{"line_number":480,"context_line":"        @param   priority: a gateway chassis priority to search for"},{"line_number":481,"context_line":"        @type    priority: int"},{"line_number":482,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority. If"},{"line_number":483,"context_line":"                 ``priorty`` is set then only chassis matching that priority"},{"line_number":484,"context_line":"                 are returned."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":4,"id":"91c60f0b_a7963610","line":483,"range":{"start_line":483,"start_character":19,"end_line":483,"end_character":26},"updated":"2023-09-07 19:04:48.000000000","message":"s/priority","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        @param   priority: a gateway chassis priority to search for"},{"line_number":481,"context_line":"        @type    priority: int"},{"line_number":482,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority. If"},{"line_number":483,"context_line":"                 ``priorty`` is set then only chassis matching that priority"},{"line_number":484,"context_line":"                 are returned."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":4,"id":"14a73533_fbbb1370","line":483,"range":{"start_line":483,"start_character":19,"end_line":483,"end_character":26},"in_reply_to":"72241c91_3a50cfa2","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":true,"context_lines":[{"line_number":480,"context_line":"        @param   priority: a gateway chassis priority to search for"},{"line_number":481,"context_line":"        @type    priority: int"},{"line_number":482,"context_line":"        @return: List of tuples (chassis_name, priority) sorted by priority. If"},{"line_number":483,"context_line":"                 ``priorty`` is set then only chassis matching that priority"},{"line_number":484,"context_line":"                 are returned."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        # Try retrieving gateway_chassis with new schema. If new schema is not"}],"source_content_type":"text/x-python","patch_set":4,"id":"72241c91_3a50cfa2","line":483,"range":{"start_line":483,"start_character":19,"end_line":483,"end_character":26},"in_reply_to":"91c60f0b_a7963610","updated":"2023-09-08 14:02:00.000000000","message":"thanks fixed","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7d5599384936a0885db8f4a78bc62ae97714913f","unresolved":true,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"    def get_all_chassis_gateway_bindings(self,"},{"line_number":503,"context_line":"                                         chassis_candidate_list\u003dNone,"},{"line_number":504,"context_line":"                                         priority\u003dNone):"},{"line_number":505,"context_line":"        chassis_bindings \u003d {}"},{"line_number":506,"context_line":"        for chassis_name in chassis_candidate_list or []:"},{"line_number":507,"context_line":"            chassis_bindings.setdefault(chassis_name, [])"}],"source_content_type":"text/x-python","patch_set":4,"id":"38f5513d_00b34e14","line":504,"updated":"2023-09-07 19:04:48.000000000","message":"Does it make more sense to pass a list of priorities here, so we only make a single call to _get_logical_router_port_gateway_chassis() ?","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":true,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"    def get_all_chassis_gateway_bindings(self,"},{"line_number":503,"context_line":"                                         chassis_candidate_list\u003dNone,"},{"line_number":504,"context_line":"                                         priority\u003dNone):"},{"line_number":505,"context_line":"        chassis_bindings \u003d {}"},{"line_number":506,"context_line":"        for chassis_name in chassis_candidate_list or []:"},{"line_number":507,"context_line":"            chassis_bindings.setdefault(chassis_name, [])"}],"source_content_type":"text/x-python","patch_set":4,"id":"431f5df3_fae1dd8e","line":504,"in_reply_to":"38f5513d_00b34e14","updated":"2023-09-08 14:02:00.000000000","message":"thats a really good idea, thanks for that. I implemented it this way","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":501,"context_line":""},{"line_number":502,"context_line":"    def get_all_chassis_gateway_bindings(self,"},{"line_number":503,"context_line":"                                         chassis_candidate_list\u003dNone,"},{"line_number":504,"context_line":"                                         priority\u003dNone):"},{"line_number":505,"context_line":"        chassis_bindings \u003d {}"},{"line_number":506,"context_line":"        for chassis_name in chassis_candidate_list or []:"},{"line_number":507,"context_line":"            chassis_bindings.setdefault(chassis_name, [])"}],"source_content_type":"text/x-python","patch_set":4,"id":"4e6377e9_305f43a6","line":504,"in_reply_to":"431f5df3_fae1dd8e","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7d5599384936a0885db8f4a78bc62ae97714913f","unresolved":true,"context_lines":[{"line_number":510,"context_line":"                continue"},{"line_number":511,"context_line":"            chassis \u003d self._get_logical_router_port_gateway_chassis("},{"line_number":512,"context_line":"                lrp, priority\u003dpriority)"},{"line_number":513,"context_line":"            for chassis_name, prio in chassis:"},{"line_number":514,"context_line":"                if (not chassis_candidate_list or"},{"line_number":515,"context_line":"                        chassis_name in chassis_candidate_list):"},{"line_number":516,"context_line":"                    routers_hosted \u003d chassis_bindings.setdefault(chassis_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"55882c61_0e454016","line":513,"updated":"2023-09-07 19:04:48.000000000","message":"Then here it could just skip the ones it doesn\u0027t want:\n\nif prio not in priorities:\n    continue","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":true,"context_lines":[{"line_number":510,"context_line":"                continue"},{"line_number":511,"context_line":"            chassis \u003d self._get_logical_router_port_gateway_chassis("},{"line_number":512,"context_line":"                lrp, priority\u003dpriority)"},{"line_number":513,"context_line":"            for chassis_name, prio in chassis:"},{"line_number":514,"context_line":"                if (not chassis_candidate_list or"},{"line_number":515,"context_line":"                        chassis_name in chassis_candidate_list):"},{"line_number":516,"context_line":"                    routers_hosted \u003d chassis_bindings.setdefault(chassis_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"d11625ed_f0079a7a","line":513,"in_reply_to":"55882c61_0e454016","updated":"2023-09-08 14:02:00.000000000","message":"I now pushed that to _get_logical_router_port_gateway_chassis","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":510,"context_line":"                continue"},{"line_number":511,"context_line":"            chassis \u003d self._get_logical_router_port_gateway_chassis("},{"line_number":512,"context_line":"                lrp, priority\u003dpriority)"},{"line_number":513,"context_line":"            for chassis_name, prio in chassis:"},{"line_number":514,"context_line":"                if (not chassis_candidate_list or"},{"line_number":515,"context_line":"                        chassis_name in chassis_candidate_list):"},{"line_number":516,"context_line":"                    routers_hosted \u003d chassis_bindings.setdefault(chassis_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"dcf10f78_d1e5ee49","line":513,"in_reply_to":"d11625ed_f0079a7a","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ad4ec4b0fdd0e276ffccfb1ae43cc29ee3dc98c8","unresolved":true,"context_lines":[{"line_number":467,"context_line":"                                         if_exists)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def delete_address_set(self, name, if_exists\u003dTrue, **columns):"},{"line_number":470,"context_line":"        return cmd.DelAddrSetCommand(self, name, if_exists)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _get_logical_router_port_gateway_chassis(self, lrp, priorities\u003dNone):"},{"line_number":473,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."}],"source_content_type":"text/x-python","patch_set":10,"id":"ad48a087_b7a521d1","line":470,"updated":"2024-01-17 10:55:27.000000000","message":"Where is this method being used ? I don\u0027t see it being used in this patch (nor in the next ones in the series). We should move this method to the patch where it\u0027s actually being used.\n\nAlso, I don\u0027t see where the DelAddrSetCommand is implemented. The ovsdbapp project already have a equivalent command [0]\n\n[0] https://github.com/openstack/ovsdbapp/blob/374bf64068418e5111f6e2f3e2bf1bd4e3d84b15/ovsdbapp/schema/ovn_northbound/commands.py#L272","commit_id":"f5cd600e31038bb126751106617daac8253e6e08"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"249537f956417a5bc694cc4e8babf0065a22b01a","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                                         if_exists)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def delete_address_set(self, name, if_exists\u003dTrue, **columns):"},{"line_number":470,"context_line":"        return cmd.DelAddrSetCommand(self, name, if_exists)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _get_logical_router_port_gateway_chassis(self, lrp, priorities\u003dNone):"},{"line_number":473,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."}],"source_content_type":"text/x-python","patch_set":10,"id":"69d2360f_50105b82","line":470,"in_reply_to":"83c7d35e_a000f5ba","updated":"2024-01-17 11:08:20.000000000","message":"Done","commit_id":"f5cd600e31038bb126751106617daac8253e6e08"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"ce68066128ff2d89cd0767742e60e919dd05e175","unresolved":true,"context_lines":[{"line_number":467,"context_line":"                                         if_exists)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def delete_address_set(self, name, if_exists\u003dTrue, **columns):"},{"line_number":470,"context_line":"        return cmd.DelAddrSetCommand(self, name, if_exists)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _get_logical_router_port_gateway_chassis(self, lrp, priorities\u003dNone):"},{"line_number":473,"context_line":"        \"\"\"Get the list of chassis hosting this gateway port."}],"source_content_type":"text/x-python","patch_set":10,"id":"83c7d35e_a000f5ba","line":470,"in_reply_to":"ad48a087_b7a521d1","updated":"2024-01-17 11:04:59.000000000","message":"sorry, i messed this up during a rebase. fixed now","commit_id":"f5cd600e31038bb126751106617daac8253e6e08"}],"neutron/scheduler/l3_ovn_scheduler.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9329500e66aa8aabc8f62af9cc9d519793837c2c","unresolved":true,"context_lines":[{"line_number":73,"context_line":"            LOG.warning(\u0027Gateway %s was not scheduled on any chassis, no \u0027"},{"line_number":74,"context_line":"                        \u0027candidates are available\u0027, gateway_name)"},{"line_number":75,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":76,"context_line":"        chassis_count \u003d ovn_const.MAX_GW_CHASSIS - len(existing_chassis)"},{"line_number":77,"context_line":"        # The actual binding of the gateway to a chassis via the options"},{"line_number":78,"context_line":"        # column or gateway_chassis column in the OVN_Northbound is done"},{"line_number":79,"context_line":"        # by the caller"}],"source_content_type":"text/x-python","patch_set":2,"id":"28dbdc83_7553caa6","line":76,"range":{"start_line":76,"start_character":8,"end_line":76,"end_character":21},"updated":"2023-09-05 16:43:58.000000000","message":"Can this be zero? If so the [::priority_max] syntax on L108 won\u0027t like it.\n\n\u003e\u003e\u003e a[::0]\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nValueError: slice step cannot be zero","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"de6112156ae14bc67ab2d89369ce5ec5947478f4","unresolved":true,"context_lines":[{"line_number":73,"context_line":"            LOG.warning(\u0027Gateway %s was not scheduled on any chassis, no \u0027"},{"line_number":74,"context_line":"                        \u0027candidates are available\u0027, gateway_name)"},{"line_number":75,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":76,"context_line":"        chassis_count \u003d ovn_const.MAX_GW_CHASSIS - len(existing_chassis)"},{"line_number":77,"context_line":"        # The actual binding of the gateway to a chassis via the options"},{"line_number":78,"context_line":"        # column or gateway_chassis column in the OVN_Northbound is done"},{"line_number":79,"context_line":"        # by the caller"}],"source_content_type":"text/x-python","patch_set":2,"id":"a0be2101_a7e4df0b","line":76,"range":{"start_line":76,"start_character":8,"end_line":76,"end_character":21},"in_reply_to":"28dbdc83_7553caa6","updated":"2023-09-06 07:07:00.000000000","message":"It could only be zero if len(existing_chassis) is 5. This should however cause us to early return in line 71 above.","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            LOG.warning(\u0027Gateway %s was not scheduled on any chassis, no \u0027"},{"line_number":74,"context_line":"                        \u0027candidates are available\u0027, gateway_name)"},{"line_number":75,"context_line":"            return [ovn_const.OVN_GATEWAY_INVALID_CHASSIS]"},{"line_number":76,"context_line":"        chassis_count \u003d ovn_const.MAX_GW_CHASSIS - len(existing_chassis)"},{"line_number":77,"context_line":"        # The actual binding of the gateway to a chassis via the options"},{"line_number":78,"context_line":"        # column or gateway_chassis column in the OVN_Northbound is done"},{"line_number":79,"context_line":"        # by the caller"}],"source_content_type":"text/x-python","patch_set":2,"id":"614a1bb1_f1fcca3c","line":76,"range":{"start_line":76,"start_character":8,"end_line":76,"end_character":21},"in_reply_to":"a0be2101_a7e4df0b","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9329500e66aa8aabc8f62af9cc9d519793837c2c","unresolved":true,"context_lines":[{"line_number":105,"context_line":"                                priority_min, priority_max):"},{"line_number":106,"context_line":"        candidates \u003d copy.deepcopy(candidates)"},{"line_number":107,"context_line":"        random.shuffle(candidates)"},{"line_number":108,"context_line":"        return candidates[::priority_max]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class OVNGatewayLeastLoadedScheduler(OVNGatewayScheduler):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7eefc4ca_33c4bf8a","line":108,"updated":"2023-09-05 16:43:58.000000000","message":"So I understand \u0027priority_max\u0027 here is the step, but why return just some subset of candidates?","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"de6112156ae14bc67ab2d89369ce5ec5947478f4","unresolved":true,"context_lines":[{"line_number":105,"context_line":"                                priority_min, priority_max):"},{"line_number":106,"context_line":"        candidates \u003d copy.deepcopy(candidates)"},{"line_number":107,"context_line":"        random.shuffle(candidates)"},{"line_number":108,"context_line":"        return candidates[::priority_max]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class OVNGatewayLeastLoadedScheduler(OVNGatewayScheduler):"}],"source_content_type":"text/x-python","patch_set":2,"id":"8ea21076_28774fa0","line":108,"in_reply_to":"7eefc4ca_33c4bf8a","updated":"2023-09-06 07:07:00.000000000","message":"you are right, that actually does not cause any difference besides an additional diff. I have removed it","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                priority_min, priority_max):"},{"line_number":106,"context_line":"        candidates \u003d copy.deepcopy(candidates)"},{"line_number":107,"context_line":"        random.shuffle(candidates)"},{"line_number":108,"context_line":"        return candidates[::priority_max]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"class OVNGatewayLeastLoadedScheduler(OVNGatewayScheduler):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f76cf5af_cb1d00c6","line":108,"in_reply_to":"8ea21076_28774fa0","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"6bda577eb2b585bba7937af8e33b915f80ec4068"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7d5599384936a0885db8f4a78bc62ae97714913f","unresolved":true,"context_lines":[{"line_number":135,"context_line":"                [chassis for chassis, load in chassis_load"},{"line_number":136,"context_line":"                 if load \u003d\u003d leastload])"},{"line_number":137,"context_line":"            selected_chassis.append(chassis)"},{"line_number":138,"context_line":"        return selected_chassis"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"OVN_SCHEDULER_STR_TO_CLASS \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"3e76d230_8795be43","line":138,"updated":"2023-09-07 19:04:48.000000000","message":"So it looks like this used to return chassis in order of load, and now it only returns those least-loaded?","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":true,"context_lines":[{"line_number":135,"context_line":"                [chassis for chassis, load in chassis_load"},{"line_number":136,"context_line":"                 if load \u003d\u003d leastload])"},{"line_number":137,"context_line":"            selected_chassis.append(chassis)"},{"line_number":138,"context_line":"        return selected_chassis"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"OVN_SCHEDULER_STR_TO_CLASS \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"d0c1a75e_c1f0bdd9","line":138,"in_reply_to":"3e76d230_8795be43","updated":"2023-09-08 14:02:00.000000000","message":"Yes, but in the order that `selected_chassis[0]` maps to the priority `priority_max`.\n\nI adapted the function docstring in `OVNGatewayScheduler`","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                [chassis for chassis, load in chassis_load"},{"line_number":136,"context_line":"                 if load \u003d\u003d leastload])"},{"line_number":137,"context_line":"            selected_chassis.append(chassis)"},{"line_number":138,"context_line":"        return selected_chassis"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"OVN_SCHEDULER_STR_TO_CLASS \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f69a008_4dc4e712","line":138,"in_reply_to":"d0c1a75e_c1f0bdd9","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"00b31ae5439f0ce1a8ecbe9f5c2319821db00aaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"844ffd4352a3a51d06fb17fbba6fd2d26856f7a0","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        return self._schedule_gateway(nb_idl, gateway_name,"},{"line_number":126,"context_line":"                                      candidates, existing_chassis)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _select_gateway_chassis(self, nb_idl, candidates,"},{"line_number":129,"context_line":"                                priority_min, priority_max):"},{"line_number":130,"context_line":"        selected_chassis \u003d []"},{"line_number":131,"context_line":"        priorities \u003d list(range(priority_max, priority_min - 1, -1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"21c6ec4d_922571ba","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":31},"updated":"2023-09-15 16:10:46.000000000","message":"This method should keep the description. In this case updated, saying something like \"This method is returning a list of chassis, ordered by priority (highest first). Each chassis in every priority will be selected because is the least loaded for this specific priority\"\n\n^^ that summarizes, if I\u0027m not wrong, this refactor and the new algorithm.","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"34043909093bb21ccdd7c431cd12ac444e4782b9","unresolved":true,"context_lines":[{"line_number":125,"context_line":"        return self._schedule_gateway(nb_idl, gateway_name,"},{"line_number":126,"context_line":"                                      candidates, existing_chassis)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _select_gateway_chassis(self, nb_idl, candidates,"},{"line_number":129,"context_line":"                                priority_min, priority_max):"},{"line_number":130,"context_line":"        selected_chassis \u003d []"},{"line_number":131,"context_line":"        priorities \u003d list(range(priority_max, priority_min - 1, -1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"48078553_5d957afd","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":31},"in_reply_to":"21c6ec4d_922571ba","updated":"2023-09-18 09:37:56.000000000","message":"Thanks, fixed","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        return self._schedule_gateway(nb_idl, gateway_name,"},{"line_number":126,"context_line":"                                      candidates, existing_chassis)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def _select_gateway_chassis(self, nb_idl, candidates,"},{"line_number":129,"context_line":"                                priority_min, priority_max):"},{"line_number":130,"context_line":"        selected_chassis \u003d []"},{"line_number":131,"context_line":"        priorities \u003d list(range(priority_max, priority_min - 1, -1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"13715e03_8ea0c3d0","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":31},"in_reply_to":"48078553_5d957afd","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"}],"neutron/tests/unit/scheduler/test_l3_ovn_scheduler.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7332163e2c681211df6d0c6b2fbc143862e60785","unresolved":true,"context_lines":[{"line_number":229,"context_line":"                              candidates\u003dmapping[\u0027Chassis\u0027])"},{"line_number":230,"context_line":"        self.assertEqual(ovn_const.MAX_GW_CHASSIS, len(chassis))"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def test__get_chassis_load_by_prios_several_ports(self):"},{"line_number":233,"context_line":"        # Adding 5 ports of prio 1 and 5 ports of prio 2"},{"line_number":234,"context_line":"        chassis_info \u003d []"},{"line_number":235,"context_line":"        for i in range(1, 6):"}],"source_content_type":"text/x-python","patch_set":4,"id":"e1cb37d6_decb4d32","side":"PARENT","line":232,"range":{"start_line":232,"start_character":8,"end_line":232,"end_character":53},"updated":"2023-09-08 09:46:13.000000000","message":"Please explain why are you removing these tests.","commit_id":"8cba9a2ee86cb3b65645674ef315c14cfb261143"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"8a7e2a68841975750c975fde7e78462c27a69aef","unresolved":true,"context_lines":[{"line_number":229,"context_line":"                              candidates\u003dmapping[\u0027Chassis\u0027])"},{"line_number":230,"context_line":"        self.assertEqual(ovn_const.MAX_GW_CHASSIS, len(chassis))"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def test__get_chassis_load_by_prios_several_ports(self):"},{"line_number":233,"context_line":"        # Adding 5 ports of prio 1 and 5 ports of prio 2"},{"line_number":234,"context_line":"        chassis_info \u003d []"},{"line_number":235,"context_line":"        for i in range(1, 6):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fff9ee43_641ae757","side":"PARENT","line":232,"range":{"start_line":232,"start_character":8,"end_line":232,"end_character":53},"in_reply_to":"e1cb37d6_decb4d32","updated":"2023-09-08 14:02:00.000000000","message":"the function has been removed in neutron/scheduler/l3_ovn_scheduler.py as it was no longer user","commit_id":"8cba9a2ee86cb3b65645674ef315c14cfb261143"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"69c7a984b67bdacb7a7233c4f80b0f3521410279","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                              candidates\u003dmapping[\u0027Chassis\u0027])"},{"line_number":230,"context_line":"        self.assertEqual(ovn_const.MAX_GW_CHASSIS, len(chassis))"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def test__get_chassis_load_by_prios_several_ports(self):"},{"line_number":233,"context_line":"        # Adding 5 ports of prio 1 and 5 ports of prio 2"},{"line_number":234,"context_line":"        chassis_info \u003d []"},{"line_number":235,"context_line":"        for i in range(1, 6):"}],"source_content_type":"text/x-python","patch_set":4,"id":"a18f6cf3_5303cb52","side":"PARENT","line":232,"range":{"start_line":232,"start_character":8,"end_line":232,"end_character":53},"in_reply_to":"fff9ee43_641ae757","updated":"2023-12-13 06:59:55.000000000","message":"Done","commit_id":"8cba9a2ee86cb3b65645674ef315c14cfb261143"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"844ffd4352a3a51d06fb17fbba6fd2d26856f7a0","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        self.assertIn(chassis[4], [\u0027hv3\u0027, \u0027hv4\u0027])"},{"line_number":257,"context_line":"        self.assertNotEqual(chassis[1], chassis[4])"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    def test_least_loaded_chassis_per_priority2(self):"},{"line_number":260,"context_line":"        mapping \u003d self.fake_chassis_gateway_mappings[\u0027Multiple6\u0027]"},{"line_number":261,"context_line":"        gateway_name \u003d self.new_gateway_name"},{"line_number":262,"context_line":"        chassis \u003d self.select(mapping, gateway_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"b8fabc3a_fee4cfd2","line":259,"range":{"start_line":259,"start_character":8,"end_line":259,"end_character":47},"updated":"2023-09-15 16:10:46.000000000","message":"+1 nice test","commit_id":"c3676712c54a2655a1d50adcd58a9b6080503356"}]}
