)]}'
{"neutron/agent/linux/iptables_firewall.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1141d8159c68518bcc290497bd6e784b11832f94","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        is_port \u003d (sg_rule.get(\u0027source_port_range_min\u0027) is not None or"},{"line_number":612,"context_line":"                   sg_rule.get(\u0027port_range_min\u0027) is not None)"},{"line_number":613,"context_line":"        args \u003d self._protocol_arg(sg_rule.get(\u0027protocol\u0027), is_port)"},{"line_number":614,"context_line":"        protocol \u003d self._iptables_protocol_name(sg_rule.get(\u0027protocol\u0027))"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        sp_args \u003d self._port_arg(\u0027sport\u0027,"},{"line_number":617,"context_line":"                                 sg_rule.get(\u0027protocol\u0027),"},{"line_number":618,"context_line":"                                 sg_rule.get(\u0027source_port_range_min\u0027),"},{"line_number":619,"context_line":"                                 sg_rule.get(\u0027source_port_range_max\u0027))"},{"line_number":620,"context_line":"        if \u0027--sport\u0027 not in sp_args or protocol in IPTABLES_PORT_PROTOCOLS:"},{"line_number":621,"context_line":"            args +\u003d sp_args"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        dp_args \u003d self._port_arg(\u0027dport\u0027,"},{"line_number":624,"context_line":"                                 sg_rule.get(\u0027protocol\u0027),"},{"line_number":625,"context_line":"                                 sg_rule.get(\u0027port_range_min\u0027),"},{"line_number":626,"context_line":"                                 sg_rule.get(\u0027port_range_max\u0027))"},{"line_number":627,"context_line":"        if \u0027--dport\u0027 not in dp_args or protocol in IPTABLES_PORT_PROTOCOLS:"},{"line_number":628,"context_line":"            args +\u003d dp_args"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        return args"},{"line_number":631,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5db93677","line":628,"range":{"start_line":614,"start_character":0,"end_line":628,"end_character":27},"updated":"2019-03-03 23:47:36.000000000","message":"Please see my comment to L745 below","commit_id":"d73ce643d018fdef941327cda682fca319aad500"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1141d8159c68518bcc290497bd6e784b11832f94","unresolved":false,"context_lines":[{"line_number":742,"context_line":"            # icmp code can be 0 so we cannot use \"if port_range_max\" here"},{"line_number":743,"context_line":"            if port_range_max is not None:"},{"line_number":744,"context_line":"                args[-1] +\u003d \u0027/%s\u0027 % port_range_max"},{"line_number":745,"context_line":"        elif port_range_min \u003d\u003d port_range_max:"},{"line_number":746,"context_line":"            args +\u003d [\u0027--%s\u0027 % direction, \u0027%s\u0027 % (port_range_min,)]"},{"line_number":747,"context_line":"        else:"},{"line_number":748,"context_line":"            args +\u003d [\u0027-m\u0027, \u0027multiport\u0027, \u0027--%ss\u0027 % direction,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_7dbafa71","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":46},"updated":"2019-03-03 23:47:36.000000000","message":"Wouldn\u0027t it be easier if:\n\n1) Replace this elif by:\n\nelif protocol in IPTABLES_PORT_PROTOCOLS:\n    if port_range_min \u003d\u003d port_range_max:\n\n2) Indent L746 - L749 under the if we just added","commit_id":"d73ce643d018fdef941327cda682fca319aad500"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"37b92d8144f79cd1d2478e8195ed15b70987c94a","unresolved":false,"context_lines":[{"line_number":742,"context_line":"            # icmp code can be 0 so we cannot use \"if port_range_max\" here"},{"line_number":743,"context_line":"            if port_range_max is not None:"},{"line_number":744,"context_line":"                args[-1] +\u003d \u0027/%s\u0027 % port_range_max"},{"line_number":745,"context_line":"        elif port_range_min \u003d\u003d port_range_max:"},{"line_number":746,"context_line":"            args +\u003d [\u0027--%s\u0027 % direction, \u0027%s\u0027 % (port_range_min,)]"},{"line_number":747,"context_line":"        else:"},{"line_number":748,"context_line":"            args +\u003d [\u0027-m\u0027, \u0027multiport\u0027, \u0027--%ss\u0027 % direction,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_c177849f","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":46},"in_reply_to":"9fdfeff1_7dbafa71","updated":"2019-03-04 00:22:09.000000000","message":"Done","commit_id":"d73ce643d018fdef941327cda682fca319aad500"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"1de4fa86789cb2a453dca4d0e2eadf06965b5bf5","unresolved":false,"context_lines":[{"line_number":742,"context_line":"            # icmp code can be 0 so we cannot use \"if port_range_max\" here"},{"line_number":743,"context_line":"            if port_range_max is not None:"},{"line_number":744,"context_line":"                args[-1] +\u003d \u0027/%s\u0027 % port_range_max"},{"line_number":745,"context_line":"        elif port_range_min \u003d\u003d port_range_max:"},{"line_number":746,"context_line":"            args +\u003d [\u0027--%s\u0027 % direction, \u0027%s\u0027 % (port_range_min,)]"},{"line_number":747,"context_line":"        else:"},{"line_number":748,"context_line":"            args +\u003d [\u0027-m\u0027, \u0027multiport\u0027, \u0027--%ss\u0027 % direction,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_e1464851","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":46},"in_reply_to":"9fdfeff1_7dbafa71","updated":"2019-03-04 00:19:16.000000000","message":"Oh my, yes. Excellent.","commit_id":"d73ce643d018fdef941327cda682fca319aad500"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7b38fa2c42343243cbde6bbb657c1e593a551e29","unresolved":false,"context_lines":[{"line_number":47,"context_line":"libc \u003d ctypes.CDLL(util.find_library(\u0027libc.so.6\u0027))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# iptables protocols that support --dport and --sport"},{"line_number":50,"context_line":"IPTABLES_PORT_PROTOCOLS \u003d (\u0027dccp\u0027, \u0027sctp\u0027, \u0027tcp\u0027, \u0027udp\u0027)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def get_hybrid_port_name(port_name):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_cbeb1176","line":50,"updated":"2019-03-04 17:08:06.000000000","message":"udplite is missing here, and we probably should have used the neutron-lib constants (even though we don\u0027t below, so can be done in a cleanup)","commit_id":"b92640745c1cb4a152e6401808bc9572856ea39c"}]}
