)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6c81265bdc45fd80afcb8b29e8918b1ecfd793d5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jakub Libosvar \u003clibosvar@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-13 13:49:15 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovw-fw: Use TRANSIENT table for traffic classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Parent patchset introduces a TRANSIENT table where all traffic local to"},{"line_number":10,"context_line":"br-int is sent after it\u0027s been preprocessed by other features using"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f231b9d_98bc3cdd","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":3},"updated":"2017-06-13 16:14:24.000000000","message":"I\u0027ll fix it once this gets approved. Don\u0027t want to consume resources now.","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"35fa2251dabf3597a313bcdf781e43b776bc5590","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Parent patchset introduces a TRANSIENT table where all traffic local to"},{"line_number":10,"context_line":"br-int is sent after it\u0027s been preprocessed by other features using"},{"line_number":11,"context_line":"openflow. This patch adpots the table."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic66c186ab73bad6fcd133f2b9d15e07fd0eebb33"},{"line_number":14,"context_line":"Related-bug: #1696983"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f201791_9bb49337","line":11,"range":{"start_line":11,"start_character":21,"end_line":11,"end_character":27},"updated":"2017-06-20 14:22:52.000000000","message":"s/adopts","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e4cc014cc1332934ffb6292b47d10d9f3d163ead","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: Use TRANSIENT table for traffic classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Parent patchset introduces a TRANSIENT table where all traffic local to"},{"line_number":10,"context_line":"br-int is sent after it\u0027s been preprocessed by other features using"},{"line_number":11,"context_line":"openflow. This patch adopts the table."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3f1d235d_699e3808","line":9,"updated":"2017-07-11 14:20:02.000000000","message":"a problem with referring to a parent patchset is that once you rebase (like you did), there is no way to quickly understand what you refer to.","commit_id":"3159a0f14056fc572b7bd563a7d4dabd118f4636"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6e3859392eae5c19955e7280611838591037d6b8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: Use TRANSIENT table for traffic classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Parent patchset introduces a TRANSIENT table where all traffic local to"},{"line_number":10,"context_line":"br-int is sent after it\u0027s been preprocessed by other features using"},{"line_number":11,"context_line":"openflow. This patch adopts the table."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3f1d235d_44024171","line":9,"in_reply_to":"3f1d235d_699e3808","updated":"2017-07-11 14:32:11.000000000","message":"You can use the same topic in gerrit :) I\u0027ll change it to commit hash if respin is needed.","commit_id":"3159a0f14056fc572b7bd563a7d4dabd118f4636"}],"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"fe9b1ab7b0d5aac132663ba0cd0d4fa1f27ff3ad","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def delete_all_port_flows(self, port):"},{"line_number":914,"context_line":"        \"\"\"Delete all flows for given port\"\"\""},{"line_number":915,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE, dl_dst\u003dport.mac)"},{"line_number":916,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":917,"context_line":"                           in_port\u003dport.ofport)"},{"line_number":918,"context_line":"        self._delete_flows(reg_port\u003dport.ofport)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_cef22007","line":915,"updated":"2017-06-30 08:30:16.000000000","message":"IIUC, this will destroy dvr_to_src_mac flows.","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"7adb45a925d2a46655ec416b7da0a48d4fef6782","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def delete_all_port_flows(self, port):"},{"line_number":914,"context_line":"        \"\"\"Delete all flows for given port\"\"\""},{"line_number":915,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE, dl_dst\u003dport.mac)"},{"line_number":916,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":917,"context_line":"                           in_port\u003dport.ofport)"},{"line_number":918,"context_line":"        self._delete_flows(reg_port\u003dport.ofport)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_c4b0bfe0","line":915,"in_reply_to":"3f1d235d_79cb8a71","updated":"2017-07-10 12:07:44.000000000","message":"Done","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"043e44f0926c413a9c8c00a0bccba8ad8360045a","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def delete_all_port_flows(self, port):"},{"line_number":914,"context_line":"        \"\"\"Delete all flows for given port\"\"\""},{"line_number":915,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE, dl_dst\u003dport.mac)"},{"line_number":916,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":917,"context_line":"                           in_port\u003dport.ofport)"},{"line_number":918,"context_line":"        self._delete_flows(reg_port\u003dport.ofport)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_f150f860","line":915,"in_reply_to":"3f1d235d_cef22007","updated":"2017-07-02 16:49:36.000000000","message":"good catch. The bug here is that we should overwrite the DVR rule (as now it\u0027s just do strip_vlan and normal) with the ovs-fw one. So maybe calling delete_all_port_flows before initializing them would solve it.","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"da5e53de73d450e780c3c8038805a203bdc5c610","unresolved":false,"context_lines":[{"line_number":912,"context_line":""},{"line_number":913,"context_line":"    def delete_all_port_flows(self, port):"},{"line_number":914,"context_line":"        \"\"\"Delete all flows for given port\"\"\""},{"line_number":915,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE, dl_dst\u003dport.mac)"},{"line_number":916,"context_line":"        self._delete_flows(table\u003dovs_consts.TRANSIENT_TABLE,"},{"line_number":917,"context_line":"                           in_port\u003dport.ofport)"},{"line_number":918,"context_line":"        self._delete_flows(reg_port\u003dport.ofport)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_79cb8a71","line":915,"in_reply_to":"3f1d235d_f150f860","updated":"2017-07-04 04:02:20.000000000","message":"I couldn\u0027t fully understand your reply but does rearranging the call order save the dvr flows from remove_port_filter calls (i.e. port still exists but SG got disabled scenario) ? \n\nI wonder if strict delete can be used here.","commit_id":"b5cf31fc6dc68ae1aad9c0d0d652814e45bfb77a"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"6d6ffb2bc3edc7d590d827fc9fb1538aff241c93","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        \"\"\"Delete given flow right away even if bridge is deferred."},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        Delete command will use strict delete."},{"line_number":398,"context_line":"        \"\"\""},{"line_number":399,"context_line":"        self.int_br.br.delete_flows(strict\u003dTrue, **kwargs)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_aa58ed55","line":398,"updated":"2017-07-10 12:56:14.000000000","message":"Calling \"create_reg_numbers(kwargs)\" here may avoid creating future errors that may result from someone calling _strict_delete_flow assuming it behaves like _delete_flow .","commit_id":"201da47f86ddcc789d49712ab874c3cf444e42e4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0240811096909d155a0bb572f9fb654ad283a07d","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        \"\"\"Delete given flow right away even if bridge is deferred."},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        Delete command will use strict delete."},{"line_number":398,"context_line":"        \"\"\""},{"line_number":399,"context_line":"        self.int_br.br.delete_flows(strict\u003dTrue, **kwargs)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f1d235d_8d9aeb6b","line":398,"in_reply_to":"3f1d235d_aa58ed55","updated":"2017-07-10 13:09:27.000000000","message":"Done","commit_id":"201da47f86ddcc789d49712ab874c3cf444e42e4"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"59742237f2478bb2f789ea5bfc1a67488202f42f","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        Delete command will use strict delete."},{"line_number":398,"context_line":"        \"\"\""},{"line_number":399,"context_line":"        create_reg_numbers(kwargs)"},{"line_number":400,"context_line":"        self.int_br.br.delete_flows(strict\u003dTrue, **kwargs)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"    @staticmethod"},{"line_number":403,"context_line":"    def initialize_bridge(int_br):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1f1a1f67_96558a20","line":400,"updated":"2017-07-12 08:50:02.000000000","message":"DeferredOvsBridge is not great here.;)","commit_id":"d559cd53e86fb0a3313289467bf4c56bbe76bcec"}],"neutron/tests/tempest/scenario/test_portsecurity.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c7268b8f381b205d27d0d25188936a65ab914a0a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"CONF \u003d config.CONF"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class TrunkTest(base.BaseTempestTestCase):"},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027]"},{"line_number":25,"context_line":"    required_extensions \u003d [\u0027port-security\u0027]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_2e94c643","line":23,"updated":"2017-07-11 13:43:04.000000000","message":"PortSecurityTest ?","commit_id":"58234cb34b476342f8b0e928062f96333ad84577"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"c3d5450218d5037e501b4668920469c2791b74a5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"CONF \u003d config.CONF"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class TrunkTest(base.BaseTempestTestCase):"},{"line_number":24,"context_line":"    credentials \u003d [\u0027primary\u0027]"},{"line_number":25,"context_line":"    required_extensions \u003d [\u0027port-security\u0027]"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_4e1022a9","line":23,"in_reply_to":"3f1d235d_2e94c643","updated":"2017-07-11 13:46:14.000000000","message":"Shame on me","commit_id":"58234cb34b476342f8b0e928062f96333ad84577"}]}
