)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"bb70384a07308ea15fdf0f97a9c7399f1669f019","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     yujie1618 \u003cjudy_yujie@126.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-07 23:59:20 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"For sg_rules, if direction is ingress, the remote ip means source_ip; if direction is egress, the remote ip means dest_ip."},{"line_number":8,"context_line":"This patch fix the code that for any sg_rule add both source_ip and dest_ip information, even though one of them is none."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ifabfe3278aa0516a222f71153e47149ff4562d5e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a740942_aae22d2d","line":7,"updated":"2015-12-08 08:29:36.000000000","message":"Please do ....","commit_id":"10c5d7e924e3739319c322b9e87f4012009ac1d4"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"773521ea2e42e1a8e350596c9a4d48aefd7fd414","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     yujie1618 \u003cjudy_yujie@126.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-07 23:59:20 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"For sg_rules, if direction is ingress, the remote ip means source_ip; if direction is egress, the remote ip means dest_ip."},{"line_number":8,"context_line":"This patch fix the code that for any sg_rule add both source_ip and dest_ip information, even though one of them is none."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ifabfe3278aa0516a222f71153e47149ff4562d5e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a740942_7f75e9f7","line":7,"updated":"2015-12-08 08:13:37.000000000","message":"pls follow the guide here.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"10c5d7e924e3739319c322b9e87f4012009ac1d4"}],"neutron/agent/linux/iptables_firewall.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"773521ea2e42e1a8e350596c9a4d48aefd7fd414","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        # Otherwise the iptables_manager code won\u0027t be able to find"},{"line_number":562,"context_line":"        # them to preserve their [packet:byte] counts."},{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if rule_direction \u003d\u003d \u0027ingress\u0027:"},{"line_number":565,"context_line":"            args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":566,"context_line":"        elif rule_direction \u003d\u003d \u0027egress\u0027:"},{"line_number":567,"context_line":"            args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_9f1bf5c9","line":564,"updated":"2015-12-08 08:13:37.000000000","message":"Try using firewall.INGRESS_DIRECTION here","commit_id":"10c5d7e924e3739319c322b9e87f4012009ac1d4"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"773521ea2e42e1a8e350596c9a4d48aefd7fd414","unresolved":false,"context_lines":[{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if rule_direction \u003d\u003d \u0027ingress\u0027:"},{"line_number":565,"context_line":"            args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":566,"context_line":"        elif rule_direction \u003d\u003d \u0027egress\u0027:"},{"line_number":567,"context_line":"            args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"},{"line_number":568,"context_line":"        args +\u003d self._generate_protocol_and_port_args(sg_rule)"},{"line_number":569,"context_line":"        args +\u003d [\u0027-j RETURN\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_5f802dc0","line":566,"updated":"2015-12-08 08:13:37.000000000","message":"ditto","commit_id":"10c5d7e924e3739319c322b9e87f4012009ac1d4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6bf3427cd14febb4d4b374db6cc86d126daccdcb","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        # Otherwise the iptables_manager code won\u0027t be able to find"},{"line_number":562,"context_line":"        # them to preserve their [packet:byte] counts."},{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if not rule_direction:"},{"line_number":565,"context_line":"            LOG.debug(_(\"Sg_rule %s does not have property direction\"),"},{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_36ebf5e0","line":564,"updated":"2015-12-08 14:48:41.000000000","message":"Can you describe a case where direction isn\u0027t set?  The ipset code at L540 assumes it\u0027s always valid why can\u0027t we assume that here?","commit_id":"127ad26470215ae01f0839d9862aa4cb8d958c74"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cae24e5c16faa14de2d78dda749d1c192c69eefa","unresolved":false,"context_lines":[{"line_number":561,"context_line":"        # Otherwise the iptables_manager code won\u0027t be able to find"},{"line_number":562,"context_line":"        # them to preserve their [packet:byte] counts."},{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if not rule_direction:"},{"line_number":565,"context_line":"            LOG.debug(_(\"Sg_rule %s does not have property direction\"),"},{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_972967e8","line":564,"in_reply_to":"7a740942_36ebf5e0","updated":"2015-12-09 01:42:15.000000000","message":"No case for direction is not set. This sentence just makes sure direction have been set.","commit_id":"127ad26470215ae01f0839d9862aa4cb8d958c74"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6bf3427cd14febb4d4b374db6cc86d126daccdcb","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        # them to preserve their [packet:byte] counts."},{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if not rule_direction:"},{"line_number":565,"context_line":"            LOG.debug(_(\"Sg_rule %s does not have property direction\"),"},{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_761f3d5b","line":565,"updated":"2015-12-08 14:48:41.000000000","message":"debug messages don\u0027t need _()","commit_id":"127ad26470215ae01f0839d9862aa4cb8d958c74"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cae24e5c16faa14de2d78dda749d1c192c69eefa","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        # them to preserve their [packet:byte] counts."},{"line_number":563,"context_line":"        rule_direction \u003d sg_rule.get(\u0027direction\u0027)"},{"line_number":564,"context_line":"        if not rule_direction:"},{"line_number":565,"context_line":"            LOG.debug(_(\"Sg_rule %s does not have property direction\"),"},{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_9770870c","line":565,"in_reply_to":"7a740942_761f3d5b","updated":"2015-12-09 01:42:15.000000000","message":"I will change and send new patch.","commit_id":"127ad26470215ae01f0839d9862aa4cb8d958c74"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6bf3427cd14febb4d4b374db6cc86d126daccdcb","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        else:"},{"line_number":569,"context_line":"            if rule_direction \u003d\u003d firewall.INGRESS_DIRECTION:"},{"line_number":570,"context_line":"                args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":571,"context_line":"            elif rule_direction \u003d\u003d firewall.EGRESS_DIRECTION:"},{"line_number":572,"context_line":"                args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"},{"line_number":573,"context_line":"        args +\u003d self._generate_protocol_and_port_args(sg_rule)"},{"line_number":574,"context_line":"        args +\u003d [\u0027-j RETURN\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_16711944","line":571,"updated":"2015-12-08 14:48:41.000000000","message":"nit: this can be \u0027else:\u0027 as there are only two valid values.","commit_id":"127ad26470215ae01f0839d9862aa4cb8d958c74"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"aae2e4c7993f935d417ef58e6810ce6abed4a402","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        else:"},{"line_number":569,"context_line":"            if rule_direction \u003d\u003d firewall.INGRESS_DIRECTION:"},{"line_number":570,"context_line":"                args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":571,"context_line":"            else:"},{"line_number":572,"context_line":"                args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_50a1c5f6","line":569,"updated":"2015-12-09 02:51:14.000000000","message":"This is a duplicated check here, as the direction check has been done in line 469. So, here the sg_rule can only has one of \u0027source_ip_prefix\u0027 and \u0027dest_ip_prefix\u0027.","commit_id":"050e75192917f3bed07e580c48efec8c686df7b3"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"bb185d94bc207459e4d12e8e823e4dd21a44e2ce","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        else:"},{"line_number":569,"context_line":"            if rule_direction \u003d\u003d firewall.INGRESS_DIRECTION:"},{"line_number":570,"context_line":"                args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":571,"context_line":"            else:"},{"line_number":572,"context_line":"                args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_704881cc","line":569,"in_reply_to":"7a740942_50a1c5f6","updated":"2015-12-09 03:19:53.000000000","message":"If enable_ipset is set true, the code in line 469 will not be executed. Do you believe without this check it will be clear?\nThanks.","commit_id":"050e75192917f3bed07e580c48efec8c686df7b3"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"961d0763440e2f7dd57e4932729311cb7b6b7f31","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                      sg_rule.__str__())"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        else:"},{"line_number":569,"context_line":"            if rule_direction \u003d\u003d firewall.INGRESS_DIRECTION:"},{"line_number":570,"context_line":"                args \u003d self._ip_prefix_arg(\u0027s\u0027, sg_rule.get(\u0027source_ip_prefix\u0027))"},{"line_number":571,"context_line":"            else:"},{"line_number":572,"context_line":"                args \u003d self._ip_prefix_arg(\u0027d\u0027, sg_rule.get(\u0027dest_ip_prefix\u0027))"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_ab23d7bb","line":569,"in_reply_to":"7a740942_704881cc","updated":"2015-12-09 05:48:03.000000000","message":"Does this break a real user case? Can you describe it?\n\nThe point here is that, is it possible that \u0027source_ip_prefix\u0027 and \u0027dest_ip_prefix\u0027 can be both present. If not, the check here is meaningless. From my point of view, it will not happen. pls check [1] and line 469 here.\n\n[1] https://github.com/openstack/neutron/blob/1a8838357e5279f9f154a261d3dc6dd781cfba0c/neutron/db/securitygroups_rpc_base.py#L462","commit_id":"050e75192917f3bed07e580c48efec8c686df7b3"}]}
