)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"277ce6e3a5937065f60f1a8cd2685cd49e216db7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c6aef533_cab5cbc2","updated":"2023-07-19 19:55:40.000000000","message":"Needs a rebase as a caller of one of the functions I\u0027m changing got added.","commit_id":"f2f4ca8ca92264477f7880b363da100f82ac6eee"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"08c8d4bc951739f8af6be3938845933d101922d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0c2dbdbe_49acaab0","updated":"2023-07-20 13:11:46.000000000","message":"recheck unrelated ssh failure","commit_id":"649c3c47a90eda8f118b0af731dc2b4595c7e66d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1f2c950c9820b301a5b346e7b322b30987197824","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"704ea982_bda3ff34","updated":"2023-11-09 09:37:23.000000000","message":"Thanks Brian for cleaning up these methods a bit","commit_id":"29505104aa21a607b752faf3d2a68764f7a71270"}],"neutron/common/ovn/utils.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"98133652d8a78bf221caabcf9cc01e22e42f8ee4","unresolved":true,"context_lines":[{"line_number":866,"context_line":"    one for IPv4 and one for IPv6)."},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"    :param context: neutron api request context"},{"line_number":869,"context_line":"    :param subnets_by_id: (list of dict) subnet dictionaries"},{"line_number":870,"context_line":"    :param fixed_ips: (list of dict) fixed IPs of several subnets (usually"},{"line_number":871,"context_line":"                      belonging to a network but not mandatory)"},{"line_number":872,"context_line":"    :param ml2_plugin: (``Ml2Plugin``) ML2 plugin instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"ec8f086e_93a4a1e8","line":869,"range":{"start_line":869,"start_character":27,"end_line":869,"end_character":60},"updated":"2023-06-02 14:58:27.000000000","message":"now this is a dict of {IDs:subnets}","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2b2713b6f4fce5e64df7bdb29e5ae3a549dee63c","unresolved":false,"context_lines":[{"line_number":866,"context_line":"    one for IPv4 and one for IPv6)."},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"    :param context: neutron api request context"},{"line_number":869,"context_line":"    :param subnets_by_id: (list of dict) subnet dictionaries"},{"line_number":870,"context_line":"    :param fixed_ips: (list of dict) fixed IPs of several subnets (usually"},{"line_number":871,"context_line":"                      belonging to a network but not mandatory)"},{"line_number":872,"context_line":"    :param ml2_plugin: (``Ml2Plugin``) ML2 plugin instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"a9da4141_3cc7dedf","line":869,"range":{"start_line":869,"start_character":27,"end_line":869,"end_character":60},"in_reply_to":"ec8f086e_93a4a1e8","updated":"2023-06-07 23:51:16.000000000","message":"Done","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"98133652d8a78bf221caabcf9cc01e22e42f8ee4","unresolved":true,"context_lines":[{"line_number":975,"context_line":"                                      port_id, nb_idl):"},{"line_number":976,"context_line":"    \"\"\"Returns if a port is type virtual and its corresponding parents."},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    :param subnets_by_id: (list of dict) subnet dictionaries"},{"line_number":979,"context_line":"    :param fixed_ips: (list of dict) fixed IPs of several subnets (usually"},{"line_number":980,"context_line":"                      belonging to a network but not mandatory)"},{"line_number":981,"context_line":"    :param network_id: (string) network ID"}],"source_content_type":"text/x-python","patch_set":1,"id":"a1e6c53b_15bacc49","line":978,"range":{"start_line":978,"start_character":26,"end_line":978,"end_character":60},"updated":"2023-06-02 14:58:27.000000000","message":"ditto","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8e043e6cee4cad770d36d9fbf742ead54b5eadb1","unresolved":false,"context_lines":[{"line_number":975,"context_line":"                                      port_id, nb_idl):"},{"line_number":976,"context_line":"    \"\"\"Returns if a port is type virtual and its corresponding parents."},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    :param subnets_by_id: (list of dict) subnet dictionaries"},{"line_number":979,"context_line":"    :param fixed_ips: (list of dict) fixed IPs of several subnets (usually"},{"line_number":980,"context_line":"                      belonging to a network but not mandatory)"},{"line_number":981,"context_line":"    :param network_id: (string) network ID"}],"source_content_type":"text/x-python","patch_set":1,"id":"6e91b2f9_7e1fa655","line":978,"range":{"start_line":978,"start_character":26,"end_line":978,"end_character":60},"in_reply_to":"a1e6c53b_15bacc49","updated":"2023-07-19 16:11:07.000000000","message":"Done","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"98133652d8a78bf221caabcf9cc01e22e42f8ee4","unresolved":true,"context_lines":[{"line_number":309,"context_line":"                context, filters\u003d{\u0027id\u0027: subnet_ids})"},{"line_number":310,"context_line":"            subnets_by_id \u003d {subnet[\u0027id\u0027]: subnet for subnet in subnets}"},{"line_number":311,"context_line":"            if subnets_by_id:"},{"line_number":312,"context_line":"                address4_scope_id, address6_scope_id \u003d ("},{"line_number":313,"context_line":"                    utils.get_subnets_address_scopes(context, subnets_by_id,"},{"line_number":314,"context_line":"                                                     port_fixed_ips,"},{"line_number":315,"context_line":"                                                     self._plugin))"},{"line_number":316,"context_line":"                p_type, virtual_ip, virtual_parents \u003d ("},{"line_number":317,"context_line":"                    utils.get_port_type_virtual_and_parents("},{"line_number":318,"context_line":"                        subnets_by_id, port_fixed_ips, port[\u0027network_id\u0027],"},{"line_number":319,"context_line":"                        port[\u0027id\u0027], self._nb_idl))"},{"line_number":320,"context_line":"                if p_type:"},{"line_number":321,"context_line":"                    port_type \u003d ovn_const.LSP_TYPE_VIRTUAL"},{"line_number":322,"context_line":"                    options[ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY] \u003d virtual_ip"}],"source_content_type":"text/x-python","patch_set":1,"id":"15f6c21c_d8a6d79e","line":319,"range":{"start_line":312,"start_character":16,"end_line":319,"end_character":50},"updated":"2023-06-02 14:58:27.000000000","message":"I know these two methods depend on the subnets, but this check is explicitly done inside them. I would take out of this \"if subnets_by_id\" branch and execute always. These methods can change in future patches and we need to be sure that we are always executing them.","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2b2713b6f4fce5e64df7bdb29e5ae3a549dee63c","unresolved":false,"context_lines":[{"line_number":309,"context_line":"                context, filters\u003d{\u0027id\u0027: subnet_ids})"},{"line_number":310,"context_line":"            subnets_by_id \u003d {subnet[\u0027id\u0027]: subnet for subnet in subnets}"},{"line_number":311,"context_line":"            if subnets_by_id:"},{"line_number":312,"context_line":"                address4_scope_id, address6_scope_id \u003d ("},{"line_number":313,"context_line":"                    utils.get_subnets_address_scopes(context, subnets_by_id,"},{"line_number":314,"context_line":"                                                     port_fixed_ips,"},{"line_number":315,"context_line":"                                                     self._plugin))"},{"line_number":316,"context_line":"                p_type, virtual_ip, virtual_parents \u003d ("},{"line_number":317,"context_line":"                    utils.get_port_type_virtual_and_parents("},{"line_number":318,"context_line":"                        subnets_by_id, port_fixed_ips, port[\u0027network_id\u0027],"},{"line_number":319,"context_line":"                        port[\u0027id\u0027], self._nb_idl))"},{"line_number":320,"context_line":"                if p_type:"},{"line_number":321,"context_line":"                    port_type \u003d ovn_const.LSP_TYPE_VIRTUAL"},{"line_number":322,"context_line":"                    options[ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY] \u003d virtual_ip"}],"source_content_type":"text/x-python","patch_set":1,"id":"1d8b717d_6f1b75a3","line":319,"range":{"start_line":312,"start_character":16,"end_line":319,"end_character":50},"in_reply_to":"15f6c21c_d8a6d79e","updated":"2023-06-07 23:51:16.000000000","message":"Done","commit_id":"3a989362e527243225c5d7af24365e2bdf4dde53"}]}
