)]}'
{"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"472dcd7bbc5c4a1ab77f50468604bba459d19b4d","unresolved":false,"context_lines":[{"line_number":359,"context_line":"        return addr_to_conj"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def _update_flows_for_vlan_subr(self, direction, ethertype, vlan_tag,"},{"line_number":362,"context_line":"                                    flow_state, addr_to_conj, conj_id_to_remove):"},{"line_number":363,"context_line":"        \"\"\"Do the actual flow updates for given direction and ethertype.\"\"\""},{"line_number":364,"context_line":"        current_ips \u003d set(flow_state.keys())"},{"line_number":365,"context_line":"        self.driver.delete_flows_for_ip_addresses("}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_a8471577","line":362,"updated":"2020-06-02 20:47:04.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"d918c3a6162189726cd4c82e965173fa7f07488a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"472dcd7bbc5c4a1ab77f50468604bba459d19b4d","unresolved":false,"context_lines":[{"line_number":371,"context_line":"                for conj_id in to_remove:"},{"line_number":372,"context_line":"                    # Build flow to match: conj_id, conj_id+1"},{"line_number":373,"context_line":"                    # Use \"create_flows_for_ip_address\""},{"line_number":374,"context_line":"                    # table\u003d82,priority\u003d71,ct_state\u003d+est-rel-rpl,ip,reg6\u003d0x3,nw_src\u003d10.2.0.69 actions\u003dconjunction(10,1/2)"},{"line_number":375,"context_line":"                    # table\u003d82,priority\u003d71,ct_state\u003d+new-est,ip,reg6\u003d0x3,nw_src\u003d10.2.0.69 actions\u003dconjunction(11,1/2)"},{"line_number":376,"context_line":"                    pass"},{"line_number":377,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_0860c100","line":374,"updated":"2020-06-02 20:47:04.000000000","message":"pep8: E501 line too long (121 \u003e 79 characters)","commit_id":"d918c3a6162189726cd4c82e965173fa7f07488a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"472dcd7bbc5c4a1ab77f50468604bba459d19b4d","unresolved":false,"context_lines":[{"line_number":372,"context_line":"                    # Build flow to match: conj_id, conj_id+1"},{"line_number":373,"context_line":"                    # Use \"create_flows_for_ip_address\""},{"line_number":374,"context_line":"                    # table\u003d82,priority\u003d71,ct_state\u003d+est-rel-rpl,ip,reg6\u003d0x3,nw_src\u003d10.2.0.69 actions\u003dconjunction(10,1/2)"},{"line_number":375,"context_line":"                    # table\u003d82,priority\u003d71,ct_state\u003d+new-est,ip,reg6\u003d0x3,nw_src\u003d10.2.0.69 actions\u003dconjunction(11,1/2)"},{"line_number":376,"context_line":"                    pass"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        for addr, conj_ids in addr_to_conj.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_e85c6d4c","line":375,"updated":"2020-06-02 20:47:04.000000000","message":"pep8: E501 line too long (117 \u003e 79 characters)","commit_id":"d918c3a6162189726cd4c82e965173fa7f07488a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"472dcd7bbc5c4a1ab77f50468604bba459d19b4d","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        self.conj_ids[vlan_tag][(direction, ethertype)][remote_sg_id].add("},{"line_number":419,"context_line":"            conj_id)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        self.conj_id_map.id_map_group[(sg_id, remote_sg_id, direction, ethertype)].add(conj_id)"},{"line_number":422,"context_line":"        return conj_id"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def sg_removed(self, sg_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_4856392c","line":421,"updated":"2020-06-02 20:47:04.000000000","message":"pep8: E501 line too long (95 \u003e 79 characters)","commit_id":"d918c3a6162189726cd4c82e965173fa7f07488a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"94c016a060b053197c8e7744729bccf83d65055e","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        self.conj_ids[vlan_tag][(direction, ethertype)][remote_sg_id].add("},{"line_number":417,"context_line":"            conj_id)"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        self.conj_id_map.id_map_group[(sg_id, remote_sg_id, direction, ethertype)].add(conj_id)"},{"line_number":420,"context_line":"        return conj_id"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def sg_removed(self, sg_id):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_548f8fcb","line":419,"updated":"2020-06-15 23:16:22.000000000","message":"pep8: E501 line too long (95 \u003e 79 characters)","commit_id":"9faf46ef58085e19f1102faa58263a90931a59a2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4457fea0d6342dbe95c854bfca4006f1c678b718","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                                    flow_state, addr_to_conj,"},{"line_number":363,"context_line":"                                    conj_id_to_remove):"},{"line_number":364,"context_line":"        \"\"\"Do the actual flow updates for given direction and ethertype.\"\"\""},{"line_number":365,"context_line":"        conj_id_to_remove \u003d conj_id_to_remove or []"},{"line_number":366,"context_line":"        # Delete any current flow related to any deleted IP address, before"},{"line_number":367,"context_line":"        # creating the flows for the current IPs."},{"line_number":368,"context_line":"        self.driver.delete_flows_for_flow_state("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_e26400e8","line":365,"updated":"2020-07-29 10:40:11.000000000","message":"nitty nit: if You always require conf_id_to_remove to be passed to this method, why not require to pass [] instead of None? then this line wouldn\u0027t be needed.\nOr maybe make \"None\" as default value and make this parameter optional?","commit_id":"0eebd002ccda66dc6d9f9e5a254815109225e299"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"164a92d21b35dd3ec1e99ebce3b9dd87ec0d1a81","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                                    flow_state, addr_to_conj,"},{"line_number":363,"context_line":"                                    conj_id_to_remove):"},{"line_number":364,"context_line":"        \"\"\"Do the actual flow updates for given direction and ethertype.\"\"\""},{"line_number":365,"context_line":"        conj_id_to_remove \u003d conj_id_to_remove or []"},{"line_number":366,"context_line":"        # Delete any current flow related to any deleted IP address, before"},{"line_number":367,"context_line":"        # creating the flows for the current IPs."},{"line_number":368,"context_line":"        self.driver.delete_flows_for_flow_state("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_2e92489f","line":365,"in_reply_to":"9f560f44_e26400e8","updated":"2020-07-30 15:44:55.000000000","message":"This is called from \"update_flows_for_vlan\" and we always have \"conj_id_to_remove\"; that\u0027s why I don\u0027t make this parameter optional in this signature.\n\n\"conj_id_to_remove\" is an optional parameter in \"update_flows_for_vlan\". By default, this parameter is None or could be an empty list. In any case, we need to enforce this here. I could do it in the upper method, but we use this variable here.","commit_id":"0eebd002ccda66dc6d9f9e5a254815109225e299"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4457fea0d6342dbe95c854bfca4006f1c678b718","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                    addr, direction, ethertype, vlan_tag, conj_ids):"},{"line_number":384,"context_line":"                self.driver._add_flow(**flow)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def update_flows_for_vlan(self, vlan_tag, conj_id_to_remove\u003dNone):"},{"line_number":387,"context_line":"        \"\"\"Install action\u003dconjunction(conj_id, 1/2) flows,"},{"line_number":388,"context_line":"        which depend on IP addresses of remote_group_id."},{"line_number":389,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_e2a9a0dd","line":386,"updated":"2020-07-29 10:40:11.000000000","message":"ok, I see now. This conversion from L365 is because of possible None here.\nBut maybe this conversion could be done in this method instead of L365 which would be IMO more clear for readers.","commit_id":"0eebd002ccda66dc6d9f9e5a254815109225e299"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"164a92d21b35dd3ec1e99ebce3b9dd87ec0d1a81","unresolved":false,"context_lines":[{"line_number":383,"context_line":"                    addr, direction, ethertype, vlan_tag, conj_ids):"},{"line_number":384,"context_line":"                self.driver._add_flow(**flow)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def update_flows_for_vlan(self, vlan_tag, conj_id_to_remove\u003dNone):"},{"line_number":387,"context_line":"        \"\"\"Install action\u003dconjunction(conj_id, 1/2) flows,"},{"line_number":388,"context_line":"        which depend on IP addresses of remote_group_id."},{"line_number":389,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_ee4a1025","line":386,"in_reply_to":"9f560f44_e2a9a0dd","updated":"2020-07-30 15:44:55.000000000","message":"And I think just the opposite (that\u0027s only a personal preference): I prefer to manipulate the variable where the variable is used.\n\nMakes more sense, IMO, to explicitly enforce the type of this variable (more or less) in \"_update_flows_for_vlan_subr\".","commit_id":"0eebd002ccda66dc6d9f9e5a254815109225e299"}],"neutron/services/logapi/drivers/openvswitch/ovs_firewall_log.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"472dcd7bbc5c4a1ab77f50468604bba459d19b4d","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":""},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _create_conj_flows_log(self, remote_rule, port):"},{"line_number":387,"context_line":"        ethertype \u003d remote_rule[\u0027ethertype\u0027]"},{"line_number":388,"context_line":"        direction \u003d remote_rule[\u0027direction\u0027]"},{"line_number":389,"context_line":"        remote_sg_id \u003d remote_rule[\u0027remote_group_id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff570b3c_c8424968","line":386,"updated":"2020-06-02 20:47:04.000000000","message":"pep8: E303 too many blank lines (3)","commit_id":"d918c3a6162189726cd4c82e965173fa7f07488a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"94c016a060b053197c8e7744729bccf83d65055e","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":""},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _create_conj_flows_log(self, remote_rule, port):"},{"line_number":387,"context_line":"        ethertype \u003d remote_rule[\u0027ethertype\u0027]"},{"line_number":388,"context_line":"        direction \u003d remote_rule[\u0027direction\u0027]"},{"line_number":389,"context_line":"        remote_sg_id \u003d remote_rule[\u0027remote_group_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_749293f8","line":386,"updated":"2020-06-15 23:16:22.000000000","message":"pep8: E303 too many blank lines (3)","commit_id":"9faf46ef58085e19f1102faa58263a90931a59a2"}],"neutron/tests/unit/agent/linux/openvswitch_firewall/test_firewall.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62fbd8893a449921f937a59d90d7ede9b75de5e5","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        self.fake_ovs_port \u003d FakeOVSPort(\u0027port\u0027, 1, \u002700:00:00:00:00:00\u0027)"},{"line_number":446,"context_line":"        self.mock_bridge.br.get_vif_port_by_id.return_value \u003d \\"},{"line_number":447,"context_line":"            self.fake_ovs_port"},{"line_number":448,"context_line":"        #cfg.CONF.set_override(\u0027explicitly_egress_direct\u0027, True, \u0027AGENT\u0027)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _prepare_security_group(self):"},{"line_number":451,"context_line":"        security_group_rules \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_0dd877ee","line":448,"updated":"2020-07-17 19:55:40.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"2bcfbb5c3df5532582be6bc2fed582c2e32e4c77"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0e5e67a9c31440f80a2c0f2c321a6663c4baa166","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        self.fake_ovs_port \u003d FakeOVSPort(\u0027port\u0027, 1, \u002700:00:00:00:00:00\u0027)"},{"line_number":446,"context_line":"        self.mock_bridge.br.get_vif_port_by_id.return_value \u003d \\"},{"line_number":447,"context_line":"            self.fake_ovs_port"},{"line_number":448,"context_line":"        #cfg.CONF.set_override(\u0027explicitly_egress_direct\u0027, True, \u0027AGENT\u0027)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _prepare_security_group(self):"},{"line_number":451,"context_line":"        security_group_rules \u003d ["}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_f459838e","line":448,"updated":"2020-07-19 01:43:33.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"2bcfbb5c3df5532582be6bc2fed582c2e32e4c77"}]}
