)]}'
{"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ed03a78805fc5e356831b3920f320adbad7ccad9","unresolved":true,"context_lines":[{"line_number":1450,"context_line":"                    bridge_mappings[phys_net] \u003d bridge"},{"line_number":1451,"context_line":"        if bridge_mappings:"},{"line_number":1452,"context_line":"            sync \u003d True"},{"line_number":1453,"context_line":"            self.setup_physical_bridges(bridge_mappings)"},{"line_number":1454,"context_line":"            if self.enable_distributed_routing:"},{"line_number":1455,"context_line":"                self.dvr_agent.reset_dvr_flows("},{"line_number":1456,"context_line":"                    self.int_br, self.tun_br, self.phys_brs,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fb7f9468_44d13dc9","side":"PARENT","line":1453,"range":{"start_line":1453,"start_character":12,"end_line":1453,"end_character":56},"updated":"2021-05-25 17:43:46.000000000","message":"right, we are calling \"setup_physical_bridges\" only with \"bridge_mappings\", that comes from \"bridges\". This parameter \"bridges\" contains only the added bridges [1].\n\nI think this patch makes sense.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/793015/1/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#2594","commit_id":"dd24662e5316a72fc5b9cbfe36bec1705ce2c505"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ed03a78805fc5e356831b3920f320adbad7ccad9","unresolved":true,"context_lines":[{"line_number":1628,"context_line":"                             self.agent.phys_ofports[\"physnet1\"])"},{"line_number":1629,"context_line":"            physnets \u003d (set([\"physnet1\", \"physnet2\"]) if recreate else"},{"line_number":1630,"context_line":"                        set([\"physnet1\"]))"},{"line_number":1631,"context_line":"            self.assertEqual(physnets, set(self.agent.phys_brs.keys()))"},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"    def test_setup_physical_bridges(self):"},{"line_number":1634,"context_line":"        self._test_setup_physical_bridges()"}],"source_content_type":"text/x-python","patch_set":1,"id":"05380983_ea2a6db2","line":1631,"updated":"2021-05-25 17:43:46.000000000","message":"why don\u0027t you also check the other vars? \"int_ofports\" and \"phys_ofports\".\n\nYou should check that when this method is called, the info related to other bridges (in this case for br-physnet2) is not modified or deleted.","commit_id":"5ec641093d7fa103237cd02d8b61c24fe1b8cdd3"},{"author":{"_account_id":28722,"name":"Anton Kurbatov","email":"anton.kurbatov@acronis.com","username":"akurbatov"},"change_message_id":"46c749bd1b5b199f0e0884312b966dc92fe55b7a","unresolved":true,"context_lines":[{"line_number":1628,"context_line":"                             self.agent.phys_ofports[\"physnet1\"])"},{"line_number":1629,"context_line":"            physnets \u003d (set([\"physnet1\", \"physnet2\"]) if recreate else"},{"line_number":1630,"context_line":"                        set([\"physnet1\"]))"},{"line_number":1631,"context_line":"            self.assertEqual(physnets, set(self.agent.phys_brs.keys()))"},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"    def test_setup_physical_bridges(self):"},{"line_number":1634,"context_line":"        self._test_setup_physical_bridges()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8b688d2e_eb1b45a0","line":1631,"in_reply_to":"05380983_ea2a6db2","updated":"2021-05-25 18:36:26.000000000","message":"Thanks, will do","commit_id":"5ec641093d7fa103237cd02d8b61c24fe1b8cdd3"},{"author":{"_account_id":28722,"name":"Anton Kurbatov","email":"anton.kurbatov@acronis.com","username":"akurbatov"},"change_message_id":"825bd5d4372c83801ca21f137d68bb364e4cd81f","unresolved":false,"context_lines":[{"line_number":1628,"context_line":"                             self.agent.phys_ofports[\"physnet1\"])"},{"line_number":1629,"context_line":"            physnets \u003d (set([\"physnet1\", \"physnet2\"]) if recreate else"},{"line_number":1630,"context_line":"                        set([\"physnet1\"]))"},{"line_number":1631,"context_line":"            self.assertEqual(physnets, set(self.agent.phys_brs.keys()))"},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"    def test_setup_physical_bridges(self):"},{"line_number":1634,"context_line":"        self._test_setup_physical_bridges()"}],"source_content_type":"text/x-python","patch_set":1,"id":"f22392a4_9e15583c","line":1631,"in_reply_to":"8b688d2e_eb1b45a0","updated":"2021-05-26 10:34:52.000000000","message":"Done","commit_id":"5ec641093d7fa103237cd02d8b61c24fe1b8cdd3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7dc27b57f21a68804c4b95e233e55cb2b7fdeb9f","unresolved":true,"context_lines":[{"line_number":1554,"context_line":"            int_ofports[\"physnet2\"] \u003d \"int_ofport2\""},{"line_number":1555,"context_line":"            phys_ofports[\"physnet2\"] \u003d \"phy_ofport2\""},{"line_number":1556,"context_line":"            # Pre-setting that the agent already contains bridges and ofports:"},{"line_number":1557,"context_line":"            self.agent.phys_brs \u003d phys_brs"},{"line_number":1558,"context_line":"            self.agent.int_ofports \u003d int_ofports"},{"line_number":1559,"context_line":"            self.agent.phys_ofports \u003d phys_ofports"},{"line_number":1560,"context_line":""},{"line_number":1561,"context_line":"        with mock.patch.object(ip_lib.IPDevice, \"exists\") as devex_fn,\\"},{"line_number":1562,"context_line":"                mock.patch.object(sys, \"exit\"),\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"f5b9fdee_e4b3c002","line":1559,"range":{"start_line":1557,"start_character":0,"end_line":1559,"end_character":50},"updated":"2021-05-27 11:01:35.000000000","message":"hold on: you are assigning the mutable object reference. If you change \"self.agent.phys_brs\", that will change \"phys_brs\" because is the same object. Please, do a deepcopy here:\n\nimport copy\nself.agent.phys_brs \u003d copy.deepcopy(phys_brs)\nself.agent.int_ofports \u003d copy.deepcopy(int_ofports)\nself.agent.phys_ofports \u003d copy.deepcopy(phys_ofports)","commit_id":"a8cb9375758c5f341d7a058ec8b4e447437f3b4f"},{"author":{"_account_id":28722,"name":"Anton Kurbatov","email":"anton.kurbatov@acronis.com","username":"akurbatov"},"change_message_id":"aed29f613dc98f57860ae9a4863343e144f456a5","unresolved":false,"context_lines":[{"line_number":1554,"context_line":"            int_ofports[\"physnet2\"] \u003d \"int_ofport2\""},{"line_number":1555,"context_line":"            phys_ofports[\"physnet2\"] \u003d \"phy_ofport2\""},{"line_number":1556,"context_line":"            # Pre-setting that the agent already contains bridges and ofports:"},{"line_number":1557,"context_line":"            self.agent.phys_brs \u003d phys_brs"},{"line_number":1558,"context_line":"            self.agent.int_ofports \u003d int_ofports"},{"line_number":1559,"context_line":"            self.agent.phys_ofports \u003d phys_ofports"},{"line_number":1560,"context_line":""},{"line_number":1561,"context_line":"        with mock.patch.object(ip_lib.IPDevice, \"exists\") as devex_fn,\\"},{"line_number":1562,"context_line":"                mock.patch.object(sys, \"exit\"),\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9a47d81_92495f08","line":1559,"range":{"start_line":1557,"start_character":0,"end_line":1559,"end_character":50},"in_reply_to":"f5b9fdee_e4b3c002","updated":"2021-05-27 13:35:02.000000000","message":"Thnks a lot. Done","commit_id":"a8cb9375758c5f341d7a058ec8b4e447437f3b4f"}]}
