)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"10d7bb6643e334bbc720d06f2599cb13ac8d0bed","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Slawek Kaplonski \u003cskaplons@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-04-21 11:07:40 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[DVR] Recofigure re-created physical bridges for dvr routers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In case when physical bridge is removed and created again it"},{"line_number":10,"context_line":"is initialized by neutron-ovs-agent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f493fa4_665ad2f3","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":16},"updated":"2020-04-22 18:47:08.000000000","message":"s/Reconfigure","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9e765330579f92b5a07ac88ddc5d6b12b0721ad","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Slawek Kaplonski \u003cskaplons@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-05-14 13:48:23 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[DVR] Recofigure re-created physical bridges for dvr routers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In case when physical bridge is removed and created again it"},{"line_number":10,"context_line":"is initialized by neutron-ovs-agent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff570b3c_c0c98e59","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":16},"updated":"2020-05-18 13:43:30.000000000","message":"s/Reconfigure","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"41ccdbcc0cd8e0c3d35d0840048cec0c83ee8ffd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Slawek Kaplonski \u003cskaplons@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-05-14 13:48:23 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[DVR] Recofigure re-created physical bridges for dvr routers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In case when physical bridge is removed and created again it"},{"line_number":10,"context_line":"is initialized by neutron-ovs-agent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff570b3c_4d26cbb9","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":16},"in_reply_to":"ff570b3c_c0c98e59","updated":"2020-05-26 11:13:29.000000000","message":"Done","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38bfe558949f26ff572a4fe1bfc383cf1bb1f7aa","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def setup_dvr_flows(self, bridge_mappings\u003dNone):"},{"line_number":146,"context_line":"        bridge_mappings \u003d bridge_mappings or self.bridge_mappings"},{"line_number":147,"context_line":"        self.setup_dvr_flows_on_integ_br()"},{"line_number":148,"context_line":"        self.setup_dvr_flows_on_tun_br()"},{"line_number":149,"context_line":"        self.setup_dvr_flows_on_phys_br(bridge_mappings)"},{"line_number":150,"context_line":"        self.setup_dvr_mac_flows_on_all_brs()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_ca2ac18e","line":147,"updated":"2020-05-26 11:01:24.000000000","message":"In the case of reconfiguring a phys bridge again, I don\u0027t think we need to configure again the br-int and br-tun flows. Or the DVR macs for other than the recreated br-phys.\n\nHowever, I think those flow commands will be fast enough and that will keep this part of the code untouched.","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"41ccdbcc0cd8e0c3d35d0840048cec0c83ee8ffd","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def setup_dvr_flows(self, bridge_mappings\u003dNone):"},{"line_number":146,"context_line":"        bridge_mappings \u003d bridge_mappings or self.bridge_mappings"},{"line_number":147,"context_line":"        self.setup_dvr_flows_on_integ_br()"},{"line_number":148,"context_line":"        self.setup_dvr_flows_on_tun_br()"},{"line_number":149,"context_line":"        self.setup_dvr_flows_on_phys_br(bridge_mappings)"},{"line_number":150,"context_line":"        self.setup_dvr_mac_flows_on_all_brs()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_6d562f09","line":147,"in_reply_to":"ff570b3c_ca2ac18e","updated":"2020-05-26 11:13:29.000000000","message":"actually if ofport of patch port will change, we need to change some flows too - see L234","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":15907,"name":"Wei Hui","email":"huiweics@gmail.com","username":"huiweics"},"change_message_id":"9e4f1741f823ecbf7c8843355a116d747557e0ce","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"                    bridge_mappings[phys_net] \u003d bridge"},{"line_number":1449,"context_line":"        if bridge_mappings:"},{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_6dbbc1c3","line":1451,"updated":"2020-04-23 11:22:42.000000000","message":"setup_physical_bridges delete veth pair between physical bridge and br-int, then re-create this veth pair，ofport may change, i think dvr flows on br-int also should be set, why not call setup_dvr_flows?","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"728e68428d31369dd9538b579ed8b9a2ec26a022","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"                    bridge_mappings[phys_net] \u003d bridge"},{"line_number":1449,"context_line":"        if bridge_mappings:"},{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_37044c7b","line":1451,"in_reply_to":"1f493fa4_6dbbc1c3","updated":"2020-04-24 10:09:13.000000000","message":"setup_physical_bridge will check if patch ports or veth pairs exists and will not delete them if it\u0027s already there. So I don\u0027t think it will change anything in br-int.\nI don\u0027t think we should do more than is really needed to address the issue which was reported so for me such change seems to be good one.","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"454b3e736fe150eb1c680cbbd3db3dac517a2b5c","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"},{"line_number":1455,"context_line":"                                                    self.phys_brs,"},{"line_number":1456,"context_line":"                                                    self.patch_int_ofport,"},{"line_number":1457,"context_line":"                                                    self.patch_tun_ofport)"},{"line_number":1458,"context_line":"                self.dvr_agent.reset_dvr_parameters()"},{"line_number":1459,"context_line":"                self.dvr_agent.setup_dvr_flows_on_phys_br(bridge_mappings)"},{"line_number":1460,"context_line":"        return sync"},{"line_number":1461,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_4de6fb46","line":1458,"range":{"start_line":1453,"start_character":16,"end_line":1458,"end_character":53},"updated":"2020-04-21 09:56:19.000000000","message":"Why reset int and tun bridges if only phys bridges changed?","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"6ccb21f8f9c9aff453cc6e0f798b31c14f682a35","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"},{"line_number":1455,"context_line":"                                                    self.phys_brs,"},{"line_number":1456,"context_line":"                                                    self.patch_int_ofport,"},{"line_number":1457,"context_line":"                                                    self.patch_tun_ofport)"},{"line_number":1458,"context_line":"                self.dvr_agent.reset_dvr_parameters()"},{"line_number":1459,"context_line":"                self.dvr_agent.setup_dvr_flows_on_phys_br(bridge_mappings)"},{"line_number":1460,"context_line":"        return sync"},{"line_number":1461,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_564848cb","line":1458,"range":{"start_line":1453,"start_character":16,"end_line":1458,"end_character":53},"in_reply_to":"1f493fa4_33bcae04","updated":"2020-04-21 13:09:41.000000000","message":"I see, thanks. It\u0027s just not quite obvious that only phys bridges are changed in fact. Anyway I\u0027d incapsulate this logic (1453-1459) in one dvr_agent function handling phys bridges reconfiguration.","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"380a405183e44df7f0abb4549eb706313a6aee50","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"},{"line_number":1455,"context_line":"                                                    self.phys_brs,"},{"line_number":1456,"context_line":"                                                    self.patch_int_ofport,"},{"line_number":1457,"context_line":"                                                    self.patch_tun_ofport)"},{"line_number":1458,"context_line":"                self.dvr_agent.reset_dvr_parameters()"},{"line_number":1459,"context_line":"                self.dvr_agent.setup_dvr_flows_on_phys_br(bridge_mappings)"},{"line_number":1460,"context_line":"        return sync"},{"line_number":1461,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_33bcae04","line":1458,"range":{"start_line":1453,"start_character":16,"end_line":1458,"end_character":53},"in_reply_to":"1f493fa4_4de6fb46","updated":"2020-04-21 11:53:49.000000000","message":"this reset_ovs_parameters method is simply setting those values in dvr_agent class, see https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py#L152\nSo in fact it changes nothing, except physical_bridges. I can change it but I\u0027m not sure if that is really worth to do.","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":15907,"name":"Wei Hui","email":"huiweics@gmail.com","username":"huiweics"},"change_message_id":"19671a030ece3f8cd13bc8246f7933b31ea69efd","unresolved":false,"context_lines":[{"line_number":1537,"context_line":"                    self.int_br.delete_port(int_if_name)"},{"line_number":1538,"context_line":"                    br.delete_port(phys_if_name)"},{"line_number":1539,"context_line":"                device \u003d ip_lib.IPDevice(int_if_name)"},{"line_number":1540,"context_line":"                if device.exists():"},{"line_number":1541,"context_line":"                    device.link.delete()"},{"line_number":1542,"context_line":"                    # Give udev a chance to process its rules here, to avoid"},{"line_number":1543,"context_line":"                    # race conditions between commands launched by udev rules"},{"line_number":1544,"context_line":"                    # and the subsequent call to ip_wrapper.add_veth"},{"line_number":1545,"context_line":"                    utils.execute([\u0027udevadm\u0027, \u0027settle\u0027, \u0027--timeout\u003d10\u0027])"},{"line_number":1546,"context_line":"                int_veth, phys_veth \u003d ip_wrapper.add_veth(int_if_name,"},{"line_number":1547,"context_line":"                                                          phys_if_name)"},{"line_number":1548,"context_line":"                int_ofport \u003d self.int_br.add_port(int_if_name)"},{"line_number":1549,"context_line":"                phys_ofport \u003d br.add_port(phys_if_name)"},{"line_number":1550,"context_line":"            else:"},{"line_number":1551,"context_line":"                # Drop ports if the interface type doesn\u0027t match the"},{"line_number":1552,"context_line":"                # configuration value"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_5a5bfdf5","line":1549,"range":{"start_line":1540,"start_character":16,"end_line":1549,"end_character":55},"updated":"2020-04-24 10:47:42.000000000","message":"delete veth pair port, re-create veth pair port, and port to br-int, so int_ofport changed. setup_dvr_flows_on_integ_br add flow match int_ofport. assume I delete physical bridge accidenly, then I re-create it, all flows on physical bridge lost, not only setup_dvr_flows_on_phys_br but also setup_dvr_mac_flows_on_all_brs should be called to restore flows on physical bridge.","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95072fdb1666772bf295924347501df225598211","unresolved":false,"context_lines":[{"line_number":1537,"context_line":"                    self.int_br.delete_port(int_if_name)"},{"line_number":1538,"context_line":"                    br.delete_port(phys_if_name)"},{"line_number":1539,"context_line":"                device \u003d ip_lib.IPDevice(int_if_name)"},{"line_number":1540,"context_line":"                if device.exists():"},{"line_number":1541,"context_line":"                    device.link.delete()"},{"line_number":1542,"context_line":"                    # Give udev a chance to process its rules here, to avoid"},{"line_number":1543,"context_line":"                    # race conditions between commands launched by udev rules"},{"line_number":1544,"context_line":"                    # and the subsequent call to ip_wrapper.add_veth"},{"line_number":1545,"context_line":"                    utils.execute([\u0027udevadm\u0027, \u0027settle\u0027, \u0027--timeout\u003d10\u0027])"},{"line_number":1546,"context_line":"                int_veth, phys_veth \u003d ip_wrapper.add_veth(int_if_name,"},{"line_number":1547,"context_line":"                                                          phys_if_name)"},{"line_number":1548,"context_line":"                int_ofport \u003d self.int_br.add_port(int_if_name)"},{"line_number":1549,"context_line":"                phys_ofport \u003d br.add_port(phys_if_name)"},{"line_number":1550,"context_line":"            else:"},{"line_number":1551,"context_line":"                # Drop ports if the interface type doesn\u0027t match the"},{"line_number":1552,"context_line":"                # configuration value"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_6e99291e","line":1549,"range":{"start_line":1540,"start_character":16,"end_line":1549,"end_character":55},"in_reply_to":"1f493fa4_5a5bfdf5","updated":"2020-05-11 10:15:06.000000000","message":"Ok, You\u0027re right that in case of veth pairs used for bridge interconnection it is like that. So I changed my patch to reconfigure everything in such case.\nBut during my tests I found that in case of usage of veth pairs recovery from ovs restart don\u0027t work as expected. I opened separate bug for that https://bugs.launchpad.net/neutron/+bug/1877977","commit_id":"2320daa197b22dcee996fd6b5db304668d3fa1be"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"154a5058c036dd09f3ca665a220cefa082ba7487","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"},{"line_number":1455,"context_line":"                                                    self.phys_brs,"},{"line_number":1456,"context_line":"                                                    self.patch_int_ofport,"},{"line_number":1457,"context_line":"                                                    self.patch_tun_ofport)"},{"line_number":1458,"context_line":"                self.dvr_agent.reset_dvr_parameters()"},{"line_number":1459,"context_line":"                self.dvr_agent.setup_dvr_flows(bridge_mappings)"},{"line_number":1460,"context_line":"        return sync"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"    def _check_bridge_datapath_id(self, bridge, datapath_ids_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_c46c5438","line":1459,"range":{"start_line":1453,"start_character":16,"end_line":1459,"end_character":63},"updated":"2020-05-13 15:50:47.000000000","message":"almost duplicates lines 2504-2510, I think it\u0027s worth adding dvr_agent.reset_flows() to avoid duplication and for better separation of conserns","commit_id":"aa383a9444844e55b888a9dcd511e5d71ad1f02f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"824d5312e79d8625791416e2c0c839c5fc5ab7af","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_ovs_parameters(self.int_br,"},{"line_number":1454,"context_line":"                                                    self.tun_br,"},{"line_number":1455,"context_line":"                                                    self.phys_brs,"},{"line_number":1456,"context_line":"                                                    self.patch_int_ofport,"},{"line_number":1457,"context_line":"                                                    self.patch_tun_ofport)"},{"line_number":1458,"context_line":"                self.dvr_agent.reset_dvr_parameters()"},{"line_number":1459,"context_line":"                self.dvr_agent.setup_dvr_flows(bridge_mappings)"},{"line_number":1460,"context_line":"        return sync"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"    def _check_bridge_datapath_id(self, bridge, datapath_ids_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_cbd73c4f","line":1459,"range":{"start_line":1453,"start_character":16,"end_line":1459,"end_character":63},"in_reply_to":"ff570b3c_c46c5438","updated":"2020-05-13 21:18:21.000000000","message":"Good idea - Done :)","commit_id":"aa383a9444844e55b888a9dcd511e5d71ad1f02f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"38bfe558949f26ff572a4fe1bfc383cf1bb1f7aa","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_dvr_flows("},{"line_number":1454,"context_line":"                    self.int_br, self.tun_br, self.phys_brs,"},{"line_number":1455,"context_line":"                    self.patch_int_ofport, self.patch_tun_ofport,"},{"line_number":1456,"context_line":"                    bridge_mappings)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_0a99591e","line":1453,"updated":"2020-05-26 11:01:24.000000000","message":"nit, only question: Will it imply a connectivity lost in other physical bridges if we reset, for example, self.local_ports? Or when we reset the br-int flows?","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"41ccdbcc0cd8e0c3d35d0840048cec0c83ee8ffd","unresolved":false,"context_lines":[{"line_number":1450,"context_line":"            sync \u003d True"},{"line_number":1451,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1452,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1453,"context_line":"                self.dvr_agent.reset_dvr_flows("},{"line_number":1454,"context_line":"                    self.int_br, self.tun_br, self.phys_brs,"},{"line_number":1455,"context_line":"                    self.patch_int_ofport, self.patch_tun_ofport,"},{"line_number":1456,"context_line":"                    bridge_mappings)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_ad3fa7b3","line":1453,"in_reply_to":"ff570b3c_0a99591e","updated":"2020-05-26 11:13:29.000000000","message":"no, it just sets parameters in dvr_agent class. Nothing else. And for bridges which weren\u0027t touched nothing will change really.","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f00255ffda9b766a9c16570cd612f3a867cd7aea","unresolved":false,"context_lines":[{"line_number":2557,"context_line":"                added_bridges)"},{"line_number":2558,"context_line":"            if bridges_recreated:"},{"line_number":2559,"context_line":"                # In case when any bridge was \"re-created\", we need to"},{"line_number":2560,"context_line":"                # ensure that there is no any stale flows in bridges left"},{"line_number":2561,"context_line":"                need_clean_stale_flow \u003d True"},{"line_number":2562,"context_line":"            sync |\u003d bridges_recreated"},{"line_number":2563,"context_line":"            # Notify the plugin of tunnel IP"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_aaa14d98","line":2560,"range":{"start_line":2560,"start_character":18,"end_line":2560,"end_character":24},"updated":"2020-05-26 10:27:50.000000000","message":"nit: this seems to be unrelated","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"41ccdbcc0cd8e0c3d35d0840048cec0c83ee8ffd","unresolved":false,"context_lines":[{"line_number":2557,"context_line":"                added_bridges)"},{"line_number":2558,"context_line":"            if bridges_recreated:"},{"line_number":2559,"context_line":"                # In case when any bridge was \"re-created\", we need to"},{"line_number":2560,"context_line":"                # ensure that there is no any stale flows in bridges left"},{"line_number":2561,"context_line":"                need_clean_stale_flow \u003d True"},{"line_number":2562,"context_line":"            sync |\u003d bridges_recreated"},{"line_number":2563,"context_line":"            # Notify the plugin of tunnel IP"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_ed1b5f70","line":2560,"range":{"start_line":2560,"start_character":18,"end_line":2560,"end_character":24},"in_reply_to":"ff570b3c_aaa14d98","updated":"2020-05-26 11:13:29.000000000","message":"Done","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f00255ffda9b766a9c16570cd612f3a867cd7aea","unresolved":false,"context_lines":[{"line_number":3986,"context_line":"            except TypeError:"},{"line_number":3987,"context_line":"                pass"},{"line_number":3988,"context_line":"        # Setup bridges should be called once even if it will raise Runtime"},{"line_number":3989,"context_line":"        # Error because there is raised TypeError in _agent_has_updates to stop"},{"line_number":3990,"context_line":"        # agent after first loop iteration"},{"line_number":3991,"context_line":"        setup_physical_bridges.assert_called_once_with({\u0027physnet0\u0027: \u0027br-ex0\u0027})"},{"line_number":3992,"context_line":"        # Ensure dvr_agent methods were called correctly"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_ca69218c","line":3989,"range":{"start_line":3989,"start_character":24,"end_line":3989,"end_character":49},"updated":"2020-05-26 10:27:50.000000000","message":"nit: TypeError is raised","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"41ccdbcc0cd8e0c3d35d0840048cec0c83ee8ffd","unresolved":false,"context_lines":[{"line_number":3986,"context_line":"            except TypeError:"},{"line_number":3987,"context_line":"                pass"},{"line_number":3988,"context_line":"        # Setup bridges should be called once even if it will raise Runtime"},{"line_number":3989,"context_line":"        # Error because there is raised TypeError in _agent_has_updates to stop"},{"line_number":3990,"context_line":"        # agent after first loop iteration"},{"line_number":3991,"context_line":"        setup_physical_bridges.assert_called_once_with({\u0027physnet0\u0027: \u0027br-ex0\u0027})"},{"line_number":3992,"context_line":"        # Ensure dvr_agent methods were called correctly"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff570b3c_6d210fa0","line":3989,"range":{"start_line":3989,"start_character":24,"end_line":3989,"end_character":49},"in_reply_to":"ff570b3c_ca69218c","updated":"2020-05-26 11:13:29.000000000","message":"Done","commit_id":"2a6c6873d72d1cd332262e35514bc3b12712b945"}]}
