)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"75550664be1a7fb9628ccd946abcb1d14c56d98a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When VM is deleted or migrated to other compute node, the function"},{"line_number":10,"context_line":"\u0027delete_accepted_egress_direct_flow()\u0027 in process_deleted_ports()"},{"line_number":11,"context_line":"was not executed. This will resule in stale flows in table 61."},{"line_number":12,"context_line":"So create a seperate method for this and also call it inside the"},{"line_number":13,"context_line":"port_unbound() by default to ensure delete these flows."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"bf51134e_fdd0aaf9","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":34},"updated":"2020-07-13 11:25:53.000000000","message":"nit: result","commit_id":"d5a6828aaf988b0ac9bc6c117a2f6762a6a33c91"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"75550664be1a7fb9628ccd946abcb1d14c56d98a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When VM is deleted or migrated to other compute node, the function"},{"line_number":10,"context_line":"\u0027delete_accepted_egress_direct_flow()\u0027 in process_deleted_ports()"},{"line_number":11,"context_line":"was not executed. This will resule in stale flows in table 61."},{"line_number":12,"context_line":"So create a seperate method for this and also call it inside the"},{"line_number":13,"context_line":"port_unbound() by default to ensure delete these flows."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In addition, use \u0027br_int\u0027 instead of \u0027self\u0027 to call delete_flows()"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"bf51134e_5d7ef6e3","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":64},"updated":"2020-07-13 11:25:53.000000000","message":"This was only true ~ps5, am I right?","commit_id":"d5a6828aaf988b0ac9bc6c117a2f6762a6a33c91"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8ca293802894dd58c79995a5ea7f4aa7984f2245","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When VM is deleted or migrated to other compute node, the function"},{"line_number":10,"context_line":"\u0027delete_accepted_egress_direct_flow()\u0027 in process_deleted_ports()"},{"line_number":11,"context_line":"was not executed. This will result in stale flows in table 61."},{"line_number":12,"context_line":"So create a seperate method for this and also call it inside the"},{"line_number":13,"context_line":"port_unbound() by default to ensure delete these flows."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In addition, use \u0027br_int\u0027 instead of \u0027self\u0027 to call delete_flows()"},{"line_number":16,"context_line":"in delete_accepted_egress_direct_flow()."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"9f560f44_7eb713da","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":55},"updated":"2020-07-27 13:11:58.000000000","message":"Please delete this line as there is no extra method now (PS21) in this patch","commit_id":"817029f4ab9faab365f5f94b73e00e90296e7c50"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"36800a527aabc87a43bbe66ed4daf27a4b8cfac2","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1261,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1262,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1263,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1264,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1265,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1266,"context_line":"                               agent_firewall.NoopFirewallDriver) or"},{"line_number":1267,"context_line":"                        not agent_sg_rpc.is_firewall_enabled()):"},{"line_number":1268,"context_line":"                    try:"},{"line_number":1269,"context_line":"                        self.delete_accepted_egress_direct_flow("},{"line_number":1270,"context_line":"                            int_br,"},{"line_number":1271,"context_line":"                            vif_port.ofport,"},{"line_number":1272,"context_line":"                            vif_port.vif_mac,"},{"line_number":1273,"context_line":"                            self._get_port_local_vlan(vif_id))"},{"line_number":1274,"context_line":"                    except Exception as err:"},{"line_number":1275,"context_line":"                        LOG.debug(\"Failed to remove accepted egress flows \""},{"line_number":1276,"context_line":"                                  \"for port %s, error: %s\", vif_id, err)"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        lvm.vif_ports.pop(vif_id, None)"},{"line_number":1279,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0198f018","line":1276,"range":{"start_line":1263,"start_character":12,"end_line":1276,"end_character":72},"updated":"2020-05-28 08:09:31.000000000","message":"Doesn\u0027t it duplicate #662-672? I yes and still needed, it\u0027s worth to create a separate method for this.","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"9c215ba5dc0ee1d824482bbf2f969c9e26041541","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1261,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1262,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1263,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1264,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1265,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1266,"context_line":"                               agent_firewall.NoopFirewallDriver) or"},{"line_number":1267,"context_line":"                        not agent_sg_rpc.is_firewall_enabled()):"},{"line_number":1268,"context_line":"                    try:"},{"line_number":1269,"context_line":"                        self.delete_accepted_egress_direct_flow("},{"line_number":1270,"context_line":"                            int_br,"},{"line_number":1271,"context_line":"                            vif_port.ofport,"},{"line_number":1272,"context_line":"                            vif_port.vif_mac,"},{"line_number":1273,"context_line":"                            self._get_port_local_vlan(vif_id))"},{"line_number":1274,"context_line":"                    except Exception as err:"},{"line_number":1275,"context_line":"                        LOG.debug(\"Failed to remove accepted egress flows \""},{"line_number":1276,"context_line":"                                  \"for port %s, error: %s\", vif_id, err)"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        lvm.vif_ports.pop(vif_id, None)"},{"line_number":1279,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_328f4424","line":1276,"range":{"start_line":1263,"start_character":12,"end_line":1276,"end_character":72},"in_reply_to":"ff570b3c_0198f018","updated":"2020-05-28 10:43:02.000000000","message":"Is it possible to delete these few lines #662-672 ? Because here #684 also call port_unbound(). We can both call delete_accepted_egress_direct_flow() in port_unbound().","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"91fe9ba8c6b5fae6569f8c8a2459d6a688c9b85e","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1261,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1262,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1263,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1264,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1265,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1266,"context_line":"                               agent_firewall.NoopFirewallDriver) or"},{"line_number":1267,"context_line":"                        not agent_sg_rpc.is_firewall_enabled()):"},{"line_number":1268,"context_line":"                    try:"},{"line_number":1269,"context_line":"                        self.delete_accepted_egress_direct_flow("},{"line_number":1270,"context_line":"                            int_br,"},{"line_number":1271,"context_line":"                            vif_port.ofport,"},{"line_number":1272,"context_line":"                            vif_port.vif_mac,"},{"line_number":1273,"context_line":"                            self._get_port_local_vlan(vif_id))"},{"line_number":1274,"context_line":"                    except Exception as err:"},{"line_number":1275,"context_line":"                        LOG.debug(\"Failed to remove accepted egress flows \""},{"line_number":1276,"context_line":"                                  \"for port %s, error: %s\", vif_id, err)"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        lvm.vif_ports.pop(vif_id, None)"},{"line_number":1279,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_a74e5b93","line":1276,"range":{"start_line":1263,"start_character":12,"end_line":1276,"end_character":72},"in_reply_to":"ff570b3c_328f4424","updated":"2020-05-29 14:14:30.000000000","message":"Not sure I got it. If delete_accepted_egress_direct_flow() is called for the port at 662-672, why need to call it again here?","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"0e095b0729f1e148f4faf4f3118458ef6d939506","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1261,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1262,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1263,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1264,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1265,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1266,"context_line":"                               agent_firewall.NoopFirewallDriver) or"},{"line_number":1267,"context_line":"                        not agent_sg_rpc.is_firewall_enabled()):"},{"line_number":1268,"context_line":"                    try:"},{"line_number":1269,"context_line":"                        self.delete_accepted_egress_direct_flow("},{"line_number":1270,"context_line":"                            int_br,"},{"line_number":1271,"context_line":"                            vif_port.ofport,"},{"line_number":1272,"context_line":"                            vif_port.vif_mac,"},{"line_number":1273,"context_line":"                            self._get_port_local_vlan(vif_id))"},{"line_number":1274,"context_line":"                    except Exception as err:"},{"line_number":1275,"context_line":"                        LOG.debug(\"Failed to remove accepted egress flows \""},{"line_number":1276,"context_line":"                                  \"for port %s, error: %s\", vif_id, err)"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        lvm.vif_ports.pop(vif_id, None)"},{"line_number":1279,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_872eb7a2","line":1276,"range":{"start_line":1263,"start_character":12,"end_line":1276,"end_character":72},"in_reply_to":"ff570b3c_a74e5b93","updated":"2020-05-29 14:15:31.000000000","message":"ah, I guess it is because port_unbound is called from 2 places. Then I think 662-62 can be deleted","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"36800a527aabc87a43bbe66ed4daf27a4b8cfac2","unresolved":false,"context_lines":[{"line_number":2154,"context_line":"            table\u003dconstants.TRANSIENT_TABLE,"},{"line_number":2155,"context_line":"            in_port\u003dofport,"},{"line_number":2156,"context_line":"            dl_src\u003dmac)"},{"line_number":2157,"context_line":"        br_int.delete_flows("},{"line_number":2158,"context_line":"            table\u003dconstants.TRANSIENT_EGRESS_TABLE,"},{"line_number":2159,"context_line":"            dl_dst\u003dmac)"},{"line_number":2160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_61d1eccd","line":2157,"range":{"start_line":2157,"start_character":8,"end_line":2157,"end_character":14},"updated":"2020-05-28 08:09:31.000000000","message":"was it a typo in original function?","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"f3cefd58d65235f4a37a550fa2c71256e74e1a69","unresolved":false,"context_lines":[{"line_number":2154,"context_line":"            table\u003dconstants.TRANSIENT_TABLE,"},{"line_number":2155,"context_line":"            in_port\u003dofport,"},{"line_number":2156,"context_line":"            dl_src\u003dmac)"},{"line_number":2157,"context_line":"        br_int.delete_flows("},{"line_number":2158,"context_line":"            table\u003dconstants.TRANSIENT_EGRESS_TABLE,"},{"line_number":2159,"context_line":"            dl_dst\u003dmac)"},{"line_number":2160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_b23eb426","line":2157,"range":{"start_line":2157,"start_character":8,"end_line":2157,"end_character":14},"in_reply_to":"ff570b3c_61d1eccd","updated":"2020-05-28 10:49:10.000000000","message":"Yes, I used original function to test and found the flow here  can\u0027t be deleted","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"91fe9ba8c6b5fae6569f8c8a2459d6a688c9b85e","unresolved":false,"context_lines":[{"line_number":2154,"context_line":"            table\u003dconstants.TRANSIENT_TABLE,"},{"line_number":2155,"context_line":"            in_port\u003dofport,"},{"line_number":2156,"context_line":"            dl_src\u003dmac)"},{"line_number":2157,"context_line":"        br_int.delete_flows("},{"line_number":2158,"context_line":"            table\u003dconstants.TRANSIENT_EGRESS_TABLE,"},{"line_number":2159,"context_line":"            dl_dst\u003dmac)"},{"line_number":2160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_e7485388","line":2157,"range":{"start_line":2157,"start_character":8,"end_line":2157,"end_character":14},"in_reply_to":"ff570b3c_b23eb426","updated":"2020-05-29 14:14:30.000000000","message":"Please include into commit message","commit_id":"be0727a7ff65a1f22569bc9c04846af0ac1ef633"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ed01247d8ddfaf245c889505b9e481562080df1c","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1244,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1245,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1246,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1247,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1248,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1249,"context_line":"                               agent_firewall.NoopFirewallDriver) or"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_276a3d19","line":1246,"range":{"start_line":1246,"start_character":29,"end_line":1246,"end_character":37},"updated":"2020-05-31 09:13:28.000000000","message":"what\u0027s the point of deferred if only only 1 flow for 1 port is deleted? It had value at #656 though","commit_id":"ace0ef155e6b700ce1bd63c8e7a16e0e2186f67e"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"ca6e5bb5f51852ba8b45369498b9110a0969fdec","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"        if vif_id in lvm.vif_ports:"},{"line_number":1244,"context_line":"            vif_port \u003d lvm.vif_ports[vif_id]"},{"line_number":1245,"context_line":"            self.dvr_agent.unbind_port_from_dvr(vif_port, lvm)"},{"line_number":1246,"context_line":"            with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":1247,"context_line":"                                      use_bundle\u003dTrue) as int_br:"},{"line_number":1248,"context_line":"                if (isinstance(self.sg_agent.firewall,"},{"line_number":1249,"context_line":"                               agent_firewall.NoopFirewallDriver) or"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_380c1beb","line":1246,"range":{"start_line":1246,"start_character":29,"end_line":1246,"end_character":37},"in_reply_to":"ff570b3c_276a3d19","updated":"2020-06-01 08:58:15.000000000","message":"Well, it is really unnecessary, I have removed it","commit_id":"ace0ef155e6b700ce1bd63c8e7a16e0e2186f67e"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3c587c79cee60b421fefd1eeeb75d7b03f563e86","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            self.deleted_ports -\u003d port_info[\u0027removed\u0027]"},{"line_number":654,"context_line":"        deleted_ports \u003d list(self.deleted_ports)"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":657,"context_line":"                                  use_bundle\u003dTrue) as int_br:"},{"line_number":658,"context_line":"            while self.deleted_ports:"},{"line_number":659,"context_line":"                port_id \u003d self.deleted_ports.pop()"},{"line_number":660,"context_line":"                port \u003d self.int_br.get_vif_port_by_id(port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_7f0b1229","side":"PARENT","line":657,"range":{"start_line":656,"start_character":8,"end_line":657,"end_character":61},"updated":"2020-06-01 15:21:14.000000000","message":"This deletion will lead to performance degradation/regression when deleting many ports.","commit_id":"805fb5c970c8b761ce7f4877052ffef74b524e41"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"46320f386de412015bcdadba8793452def34f77a","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            self.deleted_ports -\u003d port_info[\u0027removed\u0027]"},{"line_number":654,"context_line":"        deleted_ports \u003d list(self.deleted_ports)"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":657,"context_line":"                                  use_bundle\u003dTrue) as int_br:"},{"line_number":658,"context_line":"            while self.deleted_ports:"},{"line_number":659,"context_line":"                port_id \u003d self.deleted_ports.pop()"},{"line_number":660,"context_line":"                port \u003d self.int_br.get_vif_port_by_id(port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_efd3e5ff","side":"PARENT","line":657,"range":{"start_line":656,"start_character":8,"end_line":657,"end_character":61},"in_reply_to":"ff570b3c_0cd747f0","updated":"2020-06-02 06:14:17.000000000","message":"I\u0027d make 662-672 a separate method and optionally call it inside port_unbound(del_egr_flow\u003dTrue - by default). In process_deleted_ports() call this method in \"with deferred..\" block and then call port_unbound(del_egr_flow\u003dFalse)","commit_id":"805fb5c970c8b761ce7f4877052ffef74b524e41"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"0a5515cf268c78ef3ff2ffa22a948cc34a1ab9bb","unresolved":false,"context_lines":[{"line_number":653,"context_line":"            self.deleted_ports -\u003d port_info[\u0027removed\u0027]"},{"line_number":654,"context_line":"        deleted_ports \u003d list(self.deleted_ports)"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":657,"context_line":"                                  use_bundle\u003dTrue) as int_br:"},{"line_number":658,"context_line":"            while self.deleted_ports:"},{"line_number":659,"context_line":"                port_id \u003d self.deleted_ports.pop()"},{"line_number":660,"context_line":"                port \u003d self.int_br.get_vif_port_by_id(port_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_0cd747f0","side":"PARENT","line":657,"range":{"start_line":656,"start_character":8,"end_line":657,"end_character":61},"in_reply_to":"ff570b3c_7f0b1229","updated":"2020-06-02 01:47:13.000000000","message":"Thanks for your support, do you think these lines #662-672 should be deleted? port_unbound() will do the same thing.","commit_id":"805fb5c970c8b761ce7f4877052ffef74b524e41"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5e61b1edc86fa700ad3aa8e8faa8d8cdb0a0972d","unresolved":false,"context_lines":[{"line_number":2180,"context_line":"        return failed_devices"},{"line_number":2181,"context_line":""},{"line_number":2182,"context_line":"    @classmethod"},{"line_number":2183,"context_line":"    def get_tunnel_hash(cls, ip_address, hashlen):"},{"line_number":2184,"context_line":"        try:"},{"line_number":2185,"context_line":"            addr \u003d netaddr.IPAddress(ip_address)"},{"line_number":2186,"context_line":"            if addr.version \u003d\u003d n_const.IP_VERSION_4:"}],"source_content_type":"text/x-python","patch_set":13,"id":"bf51134e_61a8dada","line":2183,"updated":"2020-06-18 11:40:31.000000000","message":"pep8: W503 line break before binary operator","commit_id":"cafe8ccee4f891f51c04dccbf945c7e0b40104f7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0acdc80bf863ea45d655677fa90128f556e92aa7","unresolved":false,"context_lines":[{"line_number":2177,"context_line":"                     \"%(iter_num)d - treat_ancillary_devices_removed \""},{"line_number":2178,"context_line":"                     \"completed in %(elapsed).3f\","},{"line_number":2179,"context_line":"                     {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2180,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2181,"context_line":"        return failed_devices"},{"line_number":2182,"context_line":""},{"line_number":2183,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_adddc043","line":2180,"updated":"2020-06-18 15:55:39.000000000","message":"pep8: W291 trailing whitespace","commit_id":"6b231aa32576602e1f6a560a343d1344a33e2bf8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0acdc80bf863ea45d655677fa90128f556e92aa7","unresolved":false,"context_lines":[{"line_number":2180,"context_line":"                      \u0027elapsed\u0027: time.time() - start})"},{"line_number":2181,"context_line":"        return failed_devices"},{"line_number":2182,"context_line":""},{"line_number":2183,"context_line":"    @classmethod"},{"line_number":2184,"context_line":"    def get_tunnel_hash(cls, ip_address, hashlen):"},{"line_number":2185,"context_line":"        try:"},{"line_number":2186,"context_line":"            addr \u003d netaddr.IPAddress(ip_address)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf51134e_8de0bcfc","line":2183,"updated":"2020-06-18 15:55:39.000000000","message":"pep8: W291 trailing whitespace","commit_id":"6b231aa32576602e1f6a560a343d1344a33e2bf8"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"74e5d4624cbbd0cc23bfa186489f06d1de12da4e","unresolved":false,"context_lines":[{"line_number":2187,"context_line":"                                           ofport, mac):"},{"line_number":2188,"context_line":"        if (isinstance(self.sg_agent.firewall,"},{"line_number":2189,"context_line":"                       agent_firewall.NoopFirewallDriver) or"},{"line_number":2190,"context_line":"            not agent_sg_rpc.is_firewall_enabled()) and \\"},{"line_number":2191,"context_line":"                self.conf.AGENT.explicitly_egress_direct:"},{"line_number":2192,"context_line":"            try:"},{"line_number":2193,"context_line":"                br_int.delete_flows("}],"source_content_type":"text/x-python","patch_set":18,"id":"bf51134e_bd331513","line":2190,"range":{"start_line":2190,"start_character":56,"end_line":2190,"end_character":57},"updated":"2020-07-08 08:36:01.000000000","message":"nit: please avoid \u0027\\\u0027 for newline, use brackets instead","commit_id":"831cda60d8fe7e0012beb1b97280d32dd97cd94b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"111e83d70bcf82e8f95e2adbe0269bffb54615fa","unresolved":false,"context_lines":[{"line_number":2187,"context_line":"                                           ofport, mac):"},{"line_number":2188,"context_line":"        if ((isinstance(self.sg_agent.firewall,"},{"line_number":2189,"context_line":"                        agent_firewall.NoopFirewallDriver) or"},{"line_number":2190,"context_line":"             not agent_sg_rpc.is_firewall_enabled()) and "},{"line_number":2191,"context_line":"                self.conf.AGENT.explicitly_egress_direct):"},{"line_number":2192,"context_line":"            try:"},{"line_number":2193,"context_line":"                br_int.delete_flows("}],"source_content_type":"text/x-python","patch_set":19,"id":"bf51134e_12e499df","line":2190,"updated":"2020-07-09 04:10:26.000000000","message":"pep8: W291 trailing whitespace","commit_id":"6d62fa30f4c45a88a72ef6fd4ba9fdcc8f7a4fb9"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"75550664be1a7fb9628ccd946abcb1d14c56d98a","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        if \u0027removed\u0027 in port_info:"},{"line_number":677,"context_line":"            self.deleted_ports -\u003d port_info[\u0027removed\u0027]"},{"line_number":678,"context_line":"        deleted_ports \u003d list(self.deleted_ports)"},{"line_number":679,"context_line":""},{"line_number":680,"context_line":"        with self.int_br.deferred(full_ordered\u003dTrue,"},{"line_number":681,"context_line":"                                  use_bundle\u003dTrue) as int_br:"},{"line_number":682,"context_line":"            while self.deleted_ports:"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf51134e_3dd7c2f0","side":"PARENT","line":679,"updated":"2020-07-13 11:25:53.000000000","message":"nit: extra whitespace","commit_id":"ad899146945d12cb6ab446a417d1415c35bb0603"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"3d21b6d485743f610a5ba3e94ed871bc43a14a8d","unresolved":false,"context_lines":[{"line_number":698,"context_line":"                    # don\u0027t log errors since there is a chance someone will be"},{"line_number":699,"context_line":"                    # removing the port from the bridge at the same time"},{"line_number":700,"context_line":"                    self.port_dead(port, log_errors\u003dFalse)"},{"line_number":701,"context_line":"                self.port_unbound(port_id, del_egr_flow\u003dFalse)"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"        # Flush firewall rules after ports are put on dead VLAN to be"},{"line_number":704,"context_line":"        # more secure"}],"source_content_type":"text/x-python","patch_set":20,"id":"bf51134e_7ac80e54","line":701,"updated":"2020-07-14 08:01:06.000000000","message":"Here use false to avoid call again. And except here use the default value true.","commit_id":"d5a6828aaf988b0ac9bc6c117a2f6762a6a33c91"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5f9fc694296f5a5923fa71dfbb880c342c79189f","unresolved":false,"context_lines":[{"line_number":2001,"context_line":"        LOG.debug(\"Port removal failed for %s\", failed_devices)"},{"line_number":2002,"context_line":"        for device in devices:"},{"line_number":2003,"context_line":"            self.ext_manager.delete_port(self.context, {\u0027port_id\u0027: device})"},{"line_number":2004,"context_line":"            self.port_unbound(device)"},{"line_number":2005,"context_line":"        return failed_devices"},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"    def treat_ancillary_devices_removed(self, devices):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9f560f44_c8993720","line":2004,"range":{"start_line":2004,"start_character":12,"end_line":2004,"end_character":37},"updated":"2020-07-28 08:04:29.000000000","message":"For this one, there is no deferred action wrapped the loop, so it may cause some performance issue.","commit_id":"3060feafea9d02bf719962e43af0b255348d1eec"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ab71652fb9579feb11a80f538c663cf2bd05d37b","unresolved":false,"context_lines":[{"line_number":2001,"context_line":"        LOG.debug(\"Port removal failed for %s\", failed_devices)"},{"line_number":2002,"context_line":"        for device in devices:"},{"line_number":2003,"context_line":"            self.ext_manager.delete_port(self.context, {\u0027port_id\u0027: device})"},{"line_number":2004,"context_line":"            self.port_unbound(device)"},{"line_number":2005,"context_line":"        return failed_devices"},{"line_number":2006,"context_line":""},{"line_number":2007,"context_line":"    def treat_ancillary_devices_removed(self, devices):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9f560f44_b94de472","line":2004,"range":{"start_line":2004,"start_character":12,"end_line":2004,"end_character":37},"in_reply_to":"9f560f44_c8993720","updated":"2020-09-21 08:07:12.000000000","message":"Agree with this but we are using native OF implementation, that won\u0027t hurt too much the performance.","commit_id":"3060feafea9d02bf719962e43af0b255348d1eec"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"5f9fc694296f5a5923fa71dfbb880c342c79189f","unresolved":false,"context_lines":[{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"    def delete_accepted_egress_direct_flow(self, br_int, port_id,"},{"line_number":2173,"context_line":"                                           ofport, mac):"},{"line_number":2174,"context_line":"        if ((isinstance(self.sg_agent.firewall,"},{"line_number":2175,"context_line":"                        agent_firewall.NoopFirewallDriver) or"},{"line_number":2176,"context_line":"             not agent_sg_rpc.is_firewall_enabled()) and"},{"line_number":2177,"context_line":"                self.conf.AGENT.explicitly_egress_direct):"},{"line_number":2178,"context_line":"            try:"},{"line_number":2179,"context_line":"                br_int.delete_flows("},{"line_number":2180,"context_line":"                    table\u003dconstants.TRANSIENT_TABLE,"}],"source_content_type":"text/x-python","patch_set":22,"id":"9f560f44_68558b50","line":2177,"range":{"start_line":2174,"start_character":0,"end_line":2177,"end_character":58},"updated":"2020-07-28 08:04:29.000000000","message":"Why not make this a property to save the check time everytime for every port?","commit_id":"3060feafea9d02bf719962e43af0b255348d1eec"},{"author":{"_account_id":31769,"name":"Jacy Lee","email":"yajiemango@163.com","username":"yjmango"},"change_message_id":"053673bf0002a83af6edb4268c24c993acf64194","unresolved":false,"context_lines":[{"line_number":2171,"context_line":""},{"line_number":2172,"context_line":"    def delete_accepted_egress_direct_flow(self, br_int, port_id,"},{"line_number":2173,"context_line":"                                           ofport, mac):"},{"line_number":2174,"context_line":"        if ((isinstance(self.sg_agent.firewall,"},{"line_number":2175,"context_line":"                        agent_firewall.NoopFirewallDriver) or"},{"line_number":2176,"context_line":"             not agent_sg_rpc.is_firewall_enabled()) and"},{"line_number":2177,"context_line":"                self.conf.AGENT.explicitly_egress_direct):"},{"line_number":2178,"context_line":"            try:"},{"line_number":2179,"context_line":"                br_int.delete_flows("},{"line_number":2180,"context_line":"                    table\u003dconstants.TRANSIENT_TABLE,"}],"source_content_type":"text/x-python","patch_set":22,"id":"9f560f44_ff7dce6e","line":2177,"range":{"start_line":2174,"start_character":0,"end_line":2177,"end_character":58},"in_reply_to":"9f560f44_68558b50","updated":"2020-07-28 09:33:44.000000000","message":"Thank you for your reply, your fix is indeed better than mine.","commit_id":"3060feafea9d02bf719962e43af0b255348d1eec"}]}
