)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"648b63273a73899e52e284e3388ac8b016ae4d34","unresolved":false,"context_lines":[{"line_number":12,"context_line":"such traffic. These two approaches make matching rules unique even if"},{"line_number":13,"context_line":"two ports from different networks share its\u0027 mac addressess."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-bug: 1564947"},{"line_number":16,"context_line":"Closes-bug: 1626010"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ia05d75a01b0469a0eaa82ada67b16a9481c50f1c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa31d9ce_7a8649dc","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":6},"updated":"2017-02-13 20:25:26.000000000","message":"This bug is closed already. Is this new fix? Or just related bug?","commit_id":"a7cf22fa10cf1b0d8e91c80c9080af5e37e6ba67"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"472e184c2fd9f5c0e2b87df8ac3558b6582b1b0f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"such traffic. These two approaches make matching rules unique even if"},{"line_number":13,"context_line":"two ports from different networks share its\u0027 mac addressess."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-bug: 1564947"},{"line_number":16,"context_line":"Closes-bug: 1626010"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ia05d75a01b0469a0eaa82ada67b16a9481c50f1c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fa31d9ce_9c9da70c","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":6},"in_reply_to":"fa31d9ce_7a8649dc","updated":"2017-02-14 08:09:34.000000000","message":"I just misread the bug title.","commit_id":"a7cf22fa10cf1b0d8e91c80c9080af5e37e6ba67"}],"doc/source/devref/openvswitch_firewall.rst":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"fd41073e30742e485d598508eee1f9c471c451c5","unresolved":false,"context_lines":[{"line_number":119,"context_line":" table\u003d0,  priority\u003d100,in_port\u003d1 actions\u003dload:0x1-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,71)"},{"line_number":120,"context_line":" table\u003d0,  priority\u003d100,in_port\u003d2 actions\u003dload:0x2-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,71)"},{"line_number":121,"context_line":" table\u003d0,  priority\u003d90,dl_vlan\u003d0x284,dl_dst\u003dfa:16:3e:a4:22:10 actions\u003dload:0x1-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,81)"},{"line_number":122,"context_line":" table\u003d0,  priority\u003d90,dl_vlan\u003d0x284,dl_dst\u003dfa:16:3e:24:57:c7 actions\u003dload:0x2-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,81)"},{"line_number":123,"context_line":" table\u003d0,  priority\u003d0 actions\u003dNORMAL"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Following ``table 71`` implements arp spoofing protection, ip spoofing"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9a30ddce_76fb4b47","line":122,"updated":"2017-03-13 15:38:55.000000000","message":"Now the change creates a few more flows, undocumented. Shall we have something about them in the devref?","commit_id":"d551ff3e8d310a4fb81a443bcb8425ae7b5111cf"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"f622f855e45d5f5f4d4eaa351b8278b2f1009436","unresolved":false,"context_lines":[{"line_number":119,"context_line":" table\u003d0,  priority\u003d100,in_port\u003d1 actions\u003dload:0x1-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,71)"},{"line_number":120,"context_line":" table\u003d0,  priority\u003d100,in_port\u003d2 actions\u003dload:0x2-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,71)"},{"line_number":121,"context_line":" table\u003d0,  priority\u003d90,dl_vlan\u003d0x284,dl_dst\u003dfa:16:3e:a4:22:10 actions\u003dload:0x1-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,81)"},{"line_number":122,"context_line":" table\u003d0,  priority\u003d90,dl_vlan\u003d0x284,dl_dst\u003dfa:16:3e:24:57:c7 actions\u003dload:0x2-\u003eNXM_NX_REG5[],load:0x284-\u003eNXM_NX_REG6[],resubmit(,81)"},{"line_number":123,"context_line":" table\u003d0,  priority\u003d0 actions\u003dNORMAL"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Following ``table 71`` implements arp spoofing protection, ip spoofing"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9a30ddce_d98d0832","line":122,"in_reply_to":"9a30ddce_76fb4b47","updated":"2017-03-13 15:52:58.000000000","message":"Maybe it would make sense to add exampes of trusted ports and ports with port_security_enabled\u003dFalse","commit_id":"d551ff3e8d310a4fb81a443bcb8425ae7b5111cf"}],"neutron/agent/common/ovs_lib.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6817475dee2748a313e74cc8d8218a0ca88d3820","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        # detects one specific type of failure. The callers of this need to"},{"line_number":245,"context_line":"        # be refactored to expect errors so we can re-raise and they can"},{"line_number":246,"context_line":"        # take appropriate action based on the type of error."},{"line_number":247,"context_line":"        if process_input:"},{"line_number":248,"context_line":"            LOG.debug(process_input)"},{"line_number":249,"context_line":"        for i in range(1, 11):"},{"line_number":250,"context_line":"            try:"},{"line_number":251,"context_line":"                return utils.execute(full_args, run_as_root\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_9c502234","line":248,"range":{"start_line":247,"start_character":0,"end_line":248,"end_character":36},"updated":"2016-10-14 16:27:36.000000000","message":"This should go away","commit_id":"62a8c9691464a047c8e79c901588b3d84571fa79"}],"neutron/agent/firewall.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4f03da753aba0a8e9af5de3bf12892e64d5ab712","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        pass"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def remove_trusted_port(self, port_id):"},{"line_number":163,"context_line":"        \"\"\"Remove trusted from firewall.\"\"\""},{"line_number":164,"context_line":"        pass"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_2e7b467c","line":163,"range":{"start_line":163,"start_character":25,"end_line":163,"end_character":26},"updated":"2017-03-13 11:58:36.000000000","message":"ports","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"74e4756694c3583082aecf7f6b1eb5797141de87","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        pass"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def remove_trusted_port(self, port_id):"},{"line_number":163,"context_line":"        \"\"\"Remove trusted from firewall.\"\"\""},{"line_number":164,"context_line":"        pass"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_69fb7879","line":163,"range":{"start_line":163,"start_character":25,"end_line":163,"end_character":26},"in_reply_to":"9a30ddce_2e7b467c","updated":"2017-03-13 12:20:58.000000000","message":"I\u0027ll remove the whole docstring as it doesn\u0027t add any other value to the method name.","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"}],"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5e5f7a9223c56ff4c3f65110ce53b31d67300640","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    :param integration_bridge: OVSBridge representing integration bridge."},{"line_number":114,"context_line":"    :param port: Port dictionary from OVSDB monitor."},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":"    integration_bridge.delete_flows("},{"line_number":117,"context_line":"        table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":118,"context_line":"        in_port\u003dport[\u0027ofport\u0027],"},{"line_number":119,"context_line":"        vlan_tci\u003d\u00270x0\u0027,"},{"line_number":120,"context_line":"    )"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"class SecurityGroup(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_0d9fec03","line":120,"range":{"start_line":116,"start_character":0,"end_line":120,"end_character":5},"updated":"2016-10-19 11:11:02.000000000","message":"This works with the ofctl openflow driver, but there\u0027s an error (in each rpc loop) with the native driver:\n\nhttps://etherpad.openstack.org/p/unknown-oxm-field\n\nAt first glance it looks like an error of the native driver, not this code though.","commit_id":"b25cb61a46c8620396ae94c178ebbbb39c85967a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"32fb56bbec94c643dd01f0c7e0f88c26e71661a6","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    :param integration_bridge: OVSBridge representing integration bridge."},{"line_number":114,"context_line":"    :param port: Port dictionary from OVSDB monitor."},{"line_number":115,"context_line":"    \"\"\""},{"line_number":116,"context_line":"    integration_bridge.delete_flows("},{"line_number":117,"context_line":"        table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":118,"context_line":"        in_port\u003dport[\u0027ofport\u0027],"},{"line_number":119,"context_line":"        vlan_tci\u003d\u00270x0\u0027,"},{"line_number":120,"context_line":"    )"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"class SecurityGroup(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_b02ad78e","line":120,"range":{"start_line":116,"start_character":0,"end_line":120,"end_character":5},"in_reply_to":"fa6399be_0d9fec03","updated":"2016-10-19 11:17:55.000000000","message":"Yeah, I\u0027m experimenting with it. This error can be solved by passing table_id instead of table.","commit_id":"b25cb61a46c8620396ae94c178ebbbb39c85967a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"5e5f7a9223c56ff4c3f65110ce53b31d67300640","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            dl_vlan\u003dport.vlan_tag,"},{"line_number":434,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg{:d},\u0027"},{"line_number":435,"context_line":"                    \u0027set_field:{:d}-\u003ereg{:d},\u0027"},{"line_number":436,"context_line":"                    \u0027strip_vlan,\u0027"},{"line_number":437,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":438,"context_line":"                        port.ofport,"},{"line_number":439,"context_line":"                        ovsfw_consts.REG_PORT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_d0b90bee","line":436,"range":{"start_line":436,"start_character":20,"end_line":436,"end_character":33},"updated":"2016-10-19 11:11:02.000000000","message":"I understand this is the way for this change to have the least possible impact on the rest of the ovs agent and on the firewall driver. But in the longer term we could consider not stripping the tag and making it consistently available for all flows on br-int. IMHO it would lead to a simpler flow model.","commit_id":"b25cb61a46c8620396ae94c178ebbbb39c85967a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"32fb56bbec94c643dd01f0c7e0f88c26e71661a6","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            dl_vlan\u003dport.vlan_tag,"},{"line_number":434,"context_line":"            actions\u003d\u0027set_field:{:d}-\u003ereg{:d},\u0027"},{"line_number":435,"context_line":"                    \u0027set_field:{:d}-\u003ereg{:d},\u0027"},{"line_number":436,"context_line":"                    \u0027strip_vlan,\u0027"},{"line_number":437,"context_line":"                    \u0027resubmit(,{:d})\u0027.format("},{"line_number":438,"context_line":"                        port.ofport,"},{"line_number":439,"context_line":"                        ovsfw_consts.REG_PORT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6399be_0b57d402","line":436,"range":{"start_line":436,"start_character":20,"end_line":436,"end_character":33},"in_reply_to":"fa6399be_d0b90bee","updated":"2016-10-19 11:17:55.000000000","message":"I\u0027m still experimenting with this. The problem is that the packets going through br-int are already inconsistent. e.g. If there is a traffic going from instance to instance on the same hypervisor and the same network, packets are not tagged. If the traffic comes from a tunnel, packets are tagged. So my intention was to tag untagged packets, to reach some level of consistency. Once the vlan tag is not needed anymore, it\u0027s removed so after some point in the firewall, we again reach the consistency. If we won\u0027t strip, instances would obtain tagged packets as long as normal action is not used.","commit_id":"b25cb61a46c8620396ae94c178ebbbb39c85967a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"48484c35db05b65023f2f51e7fdf4aba76028863","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            return"},{"line_number":445,"context_line":"        self._delete_flows("},{"line_number":446,"context_line":"            table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":447,"context_line":"            reg_net\u003dvlan_tag,"},{"line_number":448,"context_line":"            in_port\u003dovs_port.ofport"},{"line_number":449,"context_line":"        )"},{"line_number":450,"context_line":"        self._delete_flows("}],"source_content_type":"text/x-python","patch_set":15,"id":"9a30ddce_1563f842","line":447,"range":{"start_line":447,"start_character":12,"end_line":447,"end_character":29},"updated":"2017-03-13 08:56:53.000000000","message":"If this action trying to delete the flow written in \"_initalize_egress_no_port_security\"?\n\nI ask this because the flow doesn\u0027t have this parameter as part of the filter.","commit_id":"6af08ac257d8f607ad92bc9d9103134cfe120b34"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"c13b4b3f127c9cc76f06b7ab8f6fec1c969b9cce","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            return"},{"line_number":445,"context_line":"        self._delete_flows("},{"line_number":446,"context_line":"            table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":447,"context_line":"            reg_net\u003dvlan_tag,"},{"line_number":448,"context_line":"            in_port\u003dovs_port.ofport"},{"line_number":449,"context_line":"        )"},{"line_number":450,"context_line":"        self._delete_flows("}],"source_content_type":"text/x-python","patch_set":15,"id":"9a30ddce_4446a37b","line":447,"range":{"start_line":447,"start_character":12,"end_line":447,"end_character":29},"in_reply_to":"9a30ddce_1563f842","updated":"2017-03-13 09:56:18.000000000","message":"Good catch! Thanks","commit_id":"6af08ac257d8f607ad92bc9d9103134cfe120b34"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4f03da753aba0a8e9af5de3bf12892e64d5ab712","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        \"\"\""},{"line_number":304,"context_line":"        if not firewall.port_sec_enabled(port):"},{"line_number":305,"context_line":"            self.remove_port_filter(port)"},{"line_number":306,"context_line":"            self._initalize_egress_no_port_security(port[\u0027device\u0027])"},{"line_number":307,"context_line":"            return"},{"line_number":308,"context_line":"        elif not self.is_port_managed(port):"},{"line_number":309,"context_line":"            self._remove_no_port_security_rules(port[\u0027device\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_ceb8ea13","line":306,"updated":"2017-03-13 11:58:36.000000000","message":"why is this done when its removed?","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"74e4756694c3583082aecf7f6b1eb5797141de87","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        \"\"\""},{"line_number":304,"context_line":"        if not firewall.port_sec_enabled(port):"},{"line_number":305,"context_line":"            self.remove_port_filter(port)"},{"line_number":306,"context_line":"            self._initalize_egress_no_port_security(port[\u0027device\u0027])"},{"line_number":307,"context_line":"            return"},{"line_number":308,"context_line":"        elif not self.is_port_managed(port):"},{"line_number":309,"context_line":"            self._remove_no_port_security_rules(port[\u0027device\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_a9c73062","line":306,"in_reply_to":"9a30ddce_ceb8ea13","updated":"2017-03-13 12:20:58.000000000","message":"The problem is that we need to determine to which network traffic belongs. When we update a port to disable port security, traffic coming from this port would not be tracked. Hence we need to match the egress traffic for port without security.","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8ccf300fa49f83b0e764d53605a9c9ab392c3625","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            raise exceptions.OVSFWPortNotFound(port_id\u003dport_id)"},{"line_number":407,"context_line":"        return ovs_port"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def get_port_vlan_tag(self, port_name):"},{"line_number":410,"context_line":"        return get_tag_from_other_config(self.int_br.br, port_name)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    def get_ofport(self, port):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_ac03890d","line":409,"updated":"2017-06-29 14:15:12.000000000","message":"should this be _ ?","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8a3e099cb4e910ebf6d96988304f5049d71cc585","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            raise exceptions.OVSFWPortNotFound(port_id\u003dport_id)"},{"line_number":407,"context_line":"        return ovs_port"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def get_port_vlan_tag(self, port_name):"},{"line_number":410,"context_line":"        return get_tag_from_other_config(self.int_br.br, port_name)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"    def get_ofport(self, port):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_a356ef05","line":409,"in_reply_to":"3f1d235d_ac03890d","updated":"2017-06-29 18:29:19.000000000","message":"Done","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8ccf300fa49f83b0e764d53605a9c9ab392c3625","unresolved":false,"context_lines":[{"line_number":621,"context_line":"            actions\u003d\u0027normal\u0027"},{"line_number":622,"context_line":"        )"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    def _remove_no_port_security_rules(self, port_id):"},{"line_number":625,"context_line":"        ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":626,"context_line":"        try:"},{"line_number":627,"context_line":"            # Test if it\u0027s a patch port"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_09ab8f1d","line":624,"updated":"2017-06-29 14:15:12.000000000","message":"name is interesting - \"remove no port security rules\" :)  Only nit - should this have \u0027egress\u0027 in the name?","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8a3e099cb4e910ebf6d96988304f5049d71cc585","unresolved":false,"context_lines":[{"line_number":621,"context_line":"            actions\u003d\u0027normal\u0027"},{"line_number":622,"context_line":"        )"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"    def _remove_no_port_security_rules(self, port_id):"},{"line_number":625,"context_line":"        ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":626,"context_line":"        try:"},{"line_number":627,"context_line":"            # Test if it\u0027s a patch port"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_430f1b2e","line":624,"in_reply_to":"3f1d235d_09ab8f1d","updated":"2017-06-29 18:29:19.000000000","message":"Done","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8ccf300fa49f83b0e764d53605a9c9ab392c3625","unresolved":false,"context_lines":[{"line_number":635,"context_line":"        )"},{"line_number":636,"context_line":"        self._delete_flows("},{"line_number":637,"context_line":"            table\u003dovs_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":638,"context_line":"            reg_port\u003dovs_port.ofport,"},{"line_number":639,"context_line":"        )"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def _initialize_egress(self, port):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_89831f05","line":638,"range":{"start_line":638,"start_character":36,"end_line":638,"end_character":37},"updated":"2017-06-29 14:15:12.000000000","message":"nit: trailing comma","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8a3e099cb4e910ebf6d96988304f5049d71cc585","unresolved":false,"context_lines":[{"line_number":635,"context_line":"        )"},{"line_number":636,"context_line":"        self._delete_flows("},{"line_number":637,"context_line":"            table\u003dovs_consts.ACCEPT_OR_INGRESS_TABLE,"},{"line_number":638,"context_line":"            reg_port\u003dovs_port.ofport,"},{"line_number":639,"context_line":"        )"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"    def _initialize_egress(self, port):"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1d235d_231c1f69","line":638,"range":{"start_line":638,"start_character":36,"end_line":638,"end_character":37},"in_reply_to":"3f1d235d_89831f05","updated":"2017-06-29 18:29:19.000000000","message":"Done","commit_id":"cda853fb417e787326b58a01695e7a9df9246257"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8804e2764d837d79b222fad264b4f39d3de8d2ca","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    def process_trusted_ports(self, port_ids):"},{"line_number":531,"context_line":"        \"\"\"Pass packets from these ports directly to ingress pipeline.\"\"\""},{"line_number":532,"context_line":"        for port_id in port_ids:"},{"line_number":533,"context_line":"            self._initalize_egress_no_port_security(port_id)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def remove_trusted_ports(self, port_ids):"},{"line_number":536,"context_line":"        for port_id in port_ids:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_1b8c7634","line":533,"range":{"start_line":533,"start_character":18,"end_line":533,"end_character":27},"updated":"2017-07-17 09:40:13.000000000","message":"typo - initialize","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e8862b6c93ef97e7908221fa0a14e41e667788b0","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    def process_trusted_ports(self, port_ids):"},{"line_number":531,"context_line":"        \"\"\"Pass packets from these ports directly to ingress pipeline.\"\"\""},{"line_number":532,"context_line":"        for port_id in port_ids:"},{"line_number":533,"context_line":"            self._initalize_egress_no_port_security(port_id)"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    def remove_trusted_ports(self, port_ids):"},{"line_number":536,"context_line":"        for port_id in port_ids:"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_317bd3be","line":533,"range":{"start_line":533,"start_character":18,"end_line":533,"end_character":27},"in_reply_to":"1f1a1f67_1b8c7634","updated":"2017-07-17 10:58:16.000000000","message":"Done","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8804e2764d837d79b222fad264b4f39d3de8d2ca","unresolved":false,"context_lines":[{"line_number":603,"context_line":"                actions\u003d\u0027normal\u0027"},{"line_number":604,"context_line":"            )"},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"    def _initalize_egress_no_port_security(self, port_id):"},{"line_number":607,"context_line":"        ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":608,"context_line":"        try:"},{"line_number":609,"context_line":"            vlan_tag \u003d self._get_port_vlan_tag(ovs_port.port_name)"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_fb909a4c","line":606,"range":{"start_line":606,"start_character":9,"end_line":606,"end_character":18},"updated":"2017-07-17 09:40:13.000000000","message":"typo - initialize","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"}],"neutron/agent/securitygroups_rpc.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"ed24145c16f223a7d4f326c7689e5188c45fb6b7","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            devices \u003d self.plugin_rpc.security_group_rules_for_devices("},{"line_number":130,"context_line":"                self.context, list(device_ids))"},{"line_number":131,"context_line":"        trusted_devices \u003d list(set(device_ids) - set(devices.keys()))"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        with self.firewall.defer_apply():"},{"line_number":134,"context_line":"            if self.use_enhanced_rpc:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7ffa3b31_a64d2e3f","line":131,"updated":"2017-04-21 08:11:22.000000000","message":"can you split the securitygroups_rpc and firewall driver interface changes out into a patch this one depends on to make things a little simpler to review?","commit_id":"584872f9c72f3c7a6e6d2f5b838b1aa0a7059967"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8245557e2f24346dca971fa4cec8845423b29562","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            devices \u003d self.plugin_rpc.security_group_rules_for_devices("},{"line_number":130,"context_line":"                self.context, list(device_ids))"},{"line_number":131,"context_line":"        trusted_devices \u003d list(set(device_ids) - set(devices.keys()))"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        with self.firewall.defer_apply():"},{"line_number":134,"context_line":"            if self.use_enhanced_rpc:"}],"source_content_type":"text/x-python","patch_set":20,"id":"7ffa3b31_a6240e5f","line":131,"in_reply_to":"7ffa3b31_a64d2e3f","updated":"2017-04-21 08:14:23.000000000","message":"Will do","commit_id":"584872f9c72f3c7a6e6d2f5b838b1aa0a7059967"}],"neutron/tests/common/conn_testers.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"4f03da753aba0a8e9af5de3bf12892e64d5ab712","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":24,"context_line":"from neutron.common import constants as n_consts"},{"line_number":25,"context_line":"from neutron.common import utils as common_utils"},{"line_number":26,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \\"},{"line_number":27,"context_line":"        as ovs_consts"},{"line_number":28,"context_line":"from neutron.tests.common import machine_fixtures"},{"line_number":29,"context_line":"from neutron.tests.common import net_helpers"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_cefd4ab2","line":26,"updated":"2017-03-13 11:58:36.000000000","message":"can you write this without the \\ and use ().","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"74e4756694c3583082aecf7f6b1eb5797141de87","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":24,"context_line":"from neutron.common import constants as n_consts"},{"line_number":25,"context_line":"from neutron.common import utils as common_utils"},{"line_number":26,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants \\"},{"line_number":27,"context_line":"        as ovs_consts"},{"line_number":28,"context_line":"from neutron.tests.common import machine_fixtures"},{"line_number":29,"context_line":"from neutron.tests.common import net_helpers"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a30ddce_e98a081a","line":26,"in_reply_to":"9a30ddce_cefd4ab2","updated":"2017-03-13 12:20:58.000000000","message":"Done","commit_id":"ae444b28fa382944d735a099ae1fcce0469c3ea1"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8804e2764d837d79b222fad264b4f39d3de8d2ca","unresolved":false,"context_lines":[{"line_number":426,"context_line":"            self.bridge.set_db_attribute(\u0027Interface\u0027, port.name, column, value)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def set_vm_tag(self, tag):"},{"line_number":429,"context_line":"        self._vm.port.vlan_tag \u003d tag"},{"line_number":430,"context_line":"        self.set_tag(self._vm.port.name, self.bridge, tag)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"    def set_peer_tag(self, tag):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_1b911648","line":429,"updated":"2017-07-17 09:40:13.000000000","message":"if there is an exception in the line below could this lead to invalid data","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e8862b6c93ef97e7908221fa0a14e41e667788b0","unresolved":false,"context_lines":[{"line_number":426,"context_line":"            self.bridge.set_db_attribute(\u0027Interface\u0027, port.name, column, value)"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    def set_vm_tag(self, tag):"},{"line_number":429,"context_line":"        self._vm.port.vlan_tag \u003d tag"},{"line_number":430,"context_line":"        self.set_tag(self._vm.port.name, self.bridge, tag)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"    def set_peer_tag(self, tag):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_1165771e","line":429,"in_reply_to":"1f1a1f67_1b911648","updated":"2017-07-17 10:58:16.000000000","message":"Done","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"8804e2764d837d79b222fad264b4f39d3de8d2ca","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        self.set_tag(self._vm.port.name, self.bridge, tag)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"    def set_peer_tag(self, tag):"},{"line_number":433,"context_line":"        self._peer.port.vlan_tag \u003d tag"},{"line_number":434,"context_line":"        self.set_tag(self._peer.port.name, self.bridge, tag)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def set_peer_port_as_patch_port(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_db96fe3e","line":433,"updated":"2017-07-17 09:40:13.000000000","message":"ditto","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"e8862b6c93ef97e7908221fa0a14e41e667788b0","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        self.set_tag(self._vm.port.name, self.bridge, tag)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"    def set_peer_tag(self, tag):"},{"line_number":433,"context_line":"        self._peer.port.vlan_tag \u003d tag"},{"line_number":434,"context_line":"        self.set_tag(self._peer.port.name, self.bridge, tag)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def set_peer_port_as_patch_port(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"1f1a1f67_f169dbf8","line":433,"in_reply_to":"1f1a1f67_db96fe3e","updated":"2017-07-17 10:58:16.000000000","message":"Done","commit_id":"b9b366b5b35d71242daccc0086688f8bbe07e881"}],"neutron/tests/fullstack/test_securitygroup.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"648b63273a73899e52e284e3388ac8b016ae4d34","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class TestSecurityGroupsSameNetwork(BaseSecurityGroupsSameNetworkTest):"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    network_type \u003d \u0027vxlan\u0027"},{"line_number":80,"context_line":"    _scenarios \u003d ["},{"line_number":81,"context_line":"        (\u0027ovs-hybrid\u0027, {"},{"line_number":82,"context_line":"            \u0027firewall_driver\u0027: \u0027iptables_hybrid\u0027,"},{"line_number":83,"context_line":"            \u0027of_interface\u0027: \u0027native\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_fd2f9385","line":80,"updated":"2017-02-13 20:25:26.000000000","message":"Why this change?","commit_id":"a7cf22fa10cf1b0d8e91c80c9080af5e37e6ba67"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"472e184c2fd9f5c0e2b87df8ac3558b6582b1b0f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"class TestSecurityGroupsSameNetwork(BaseSecurityGroupsSameNetworkTest):"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    network_type \u003d \u0027vxlan\u0027"},{"line_number":80,"context_line":"    _scenarios \u003d ["},{"line_number":81,"context_line":"        (\u0027ovs-hybrid\u0027, {"},{"line_number":82,"context_line":"            \u0027firewall_driver\u0027: \u0027iptables_hybrid\u0027,"},{"line_number":83,"context_line":"            \u0027of_interface\u0027: \u0027native\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_bceb4b77","line":80,"in_reply_to":"fa31d9ce_fd2f9385","updated":"2017-02-14 08:09:34.000000000","message":"Ah, sorry. I was running the test locally and to save time I just ran a single scenario. Thanks for catching this :)","commit_id":"a7cf22fa10cf1b0d8e91c80c9080af5e37e6ba67"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"caf20e67de47913ba9611c399b137d02e7d6d01d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"             4. a security group update takes effect,"},{"line_number":111,"context_line":"             5. a remote security group member addition works, and"},{"line_number":112,"context_line":"             6. an established connection stops by deleting a SG rule."},{"line_number":113,"context_line":"             7. test other protocol functionality by using SCTP protocol"},{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        index_to_sg \u003d [0, 0, 1]"},{"line_number":116,"context_line":"        if self.firewall_driver \u003d\u003d \u0027iptables_hybrid\u0027:"}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_c006d452","line":113,"updated":"2017-07-18 18:17:59.000000000","message":"shouldn\u0027t you update the list?","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b83857a9fd50d6dfe4f47cc37f9cec85f6ec24b9","unresolved":false,"context_lines":[{"line_number":110,"context_line":"             4. a security group update takes effect,"},{"line_number":111,"context_line":"             5. a remote security group member addition works, and"},{"line_number":112,"context_line":"             6. an established connection stops by deleting a SG rule."},{"line_number":113,"context_line":"             7. test other protocol functionality by using SCTP protocol"},{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        index_to_sg \u003d [0, 0, 1]"},{"line_number":116,"context_line":"        if self.firewall_driver \u003d\u003d \u0027iptables_hybrid\u0027:"}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_9afcb270","line":113,"in_reply_to":"1f1a1f67_c006d452","updated":"2017-07-19 07:41:05.000000000","message":"Done","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"caf20e67de47913ba9611c399b137d02e7d6d01d","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            vms.extend(["},{"line_number":320,"context_line":"                self._create_vm_on_host("},{"line_number":321,"context_line":"                    project_id, network[\u0027id\u0027], sg[\u0027id\u0027], host)"},{"line_number":322,"context_line":"                for host in ("},{"line_number":323,"context_line":"                    self.environment.hosts[0],"},{"line_number":324,"context_line":"                    self.environment.hosts[1])])"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        map(lambda vm: vm.block_until_boot(), vms)"},{"line_number":327,"context_line":"        return vms"}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_206908f8","line":324,"range":{"start_line":322,"start_character":16,"end_line":324,"end_character":46},"updated":"2017-07-18 18:17:59.000000000","message":"nit: for host in self.environment.hosts[:2]","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b83857a9fd50d6dfe4f47cc37f9cec85f6ec24b9","unresolved":false,"context_lines":[{"line_number":319,"context_line":"            vms.extend(["},{"line_number":320,"context_line":"                self._create_vm_on_host("},{"line_number":321,"context_line":"                    project_id, network[\u0027id\u0027], sg[\u0027id\u0027], host)"},{"line_number":322,"context_line":"                for host in ("},{"line_number":323,"context_line":"                    self.environment.hosts[0],"},{"line_number":324,"context_line":"                    self.environment.hosts[1])])"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        map(lambda vm: vm.block_until_boot(), vms)"},{"line_number":327,"context_line":"        return vms"}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_5af29a9b","line":324,"range":{"start_line":322,"start_character":16,"end_line":324,"end_character":46},"in_reply_to":"1f1a1f67_206908f8","updated":"2017-07-19 07:41:05.000000000","message":"Done","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"caf20e67de47913ba9611c399b137d02e7d6d01d","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        project2 \u003d uuidutils.generate_uuid()"},{"line_number":344,"context_line":"        p2_allowed \u003d 4445"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        p1_vms \u003d self._create_three_vms(project1, p1_allowed, \u002720.0.2.0/24\u0027)"},{"line_number":347,"context_line":"        p2_vms \u003d self._create_three_vms(project2, p2_allowed, \u002720.0.3.0/24\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        have_connectivity \u003d ["}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_2037c801","line":346,"range":{"start_line":346,"start_character":22,"end_line":346,"end_character":39},"updated":"2017-07-18 18:17:59.000000000","message":"maybe rename the method into e.g. \u0027_create_three_vms_with_same_mac\u0027 to be more explicit about what happens here, bird view.","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b83857a9fd50d6dfe4f47cc37f9cec85f6ec24b9","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        project2 \u003d uuidutils.generate_uuid()"},{"line_number":344,"context_line":"        p2_allowed \u003d 4445"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        p1_vms \u003d self._create_three_vms(project1, p1_allowed, \u002720.0.2.0/24\u0027)"},{"line_number":347,"context_line":"        p2_vms \u003d self._create_three_vms(project2, p2_allowed, \u002720.0.3.0/24\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        have_connectivity \u003d ["}],"source_content_type":"text/x-python","patch_set":28,"id":"1f1a1f67_1a2e62fa","line":346,"range":{"start_line":346,"start_character":22,"end_line":346,"end_character":39},"in_reply_to":"1f1a1f67_2037c801","updated":"2017-07-19 07:41:05.000000000","message":"Done","commit_id":"c2bd15c40d6449434aa5adf1ea116c0499f811a4"}]}
