)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d79d036f54290319e730e327c7695f0c6faa9e6f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     judy-yu \u003cyujie@cmss.chinamobile.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-25 21:31:32 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Not appropriate name sg rule attribute"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For ingress rules set ip-prefix means src-ip-"},{"line_number":10,"context_line":"prefix, but for egress rules set ip-prefix means"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba5da102_1e2ca649","line":7,"updated":"2016-10-27 14:42:26.000000000","message":"Please include a release note for these changes.","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"}],"doc/source/command-objects/security-group-rule.rst":[{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"009301dffdd719cc48c6261637c2d51bc2aa9e4a","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"},{"line_number":23,"context_line":"        [--ethertype \u003cethertype\u003e]"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6895a0_cdfd043c","line":20,"range":{"start_line":20,"start_character":8,"end_line":20,"end_character":22},"updated":"2016-10-24 09:30:03.000000000","message":"dst-port means the destination port in ip fields. It\u0027s not appropriate to rename it.","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cf8e5929fdd79676c4ebab89509e9253d72f399c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"},{"line_number":23,"context_line":"        [--ethertype \u003cethertype\u003e]"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6895a0_0090a342","line":20,"range":{"start_line":20,"start_character":8,"end_line":20,"end_character":22},"in_reply_to":"da6895a0_cdfd043c","updated":"2016-10-24 09:52:27.000000000","message":"when security group rule is ingress, set port means source port.","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"54f72e34217a4ed55695d64eb9f05c41c8f14875","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. code:: bash"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_dee7b5aa","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":59},"updated":"2016-10-26 08:05:36.000000000","message":"Please retain the original options in this doc source file.","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"4f29867ce50b7ab152c4a51ddacd63df7d793b70","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. code:: bash"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_fadd3371","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":59},"in_reply_to":"ba5da102_3e796a94","updated":"2016-10-28 02:36:21.000000000","message":"Agree","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d79d036f54290319e730e327c7695f0c6faa9e6f","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. code:: bash"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_3e796a94","line":19,"range":{"start_line":19,"start_character":7,"end_line":19,"end_character":59},"in_reply_to":"ba5da102_dee7b5aa","updated":"2016-10-27 14:42:26.000000000","message":"I think we should only display the new options.","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"175f88fb3fb1d52888a4971266aaa0a2821eeb39","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"},{"line_number":23,"context_line":"        [--ethertype \u003cethertype\u003e]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_30c5073c","line":20,"updated":"2016-10-28 09:11:27.000000000","message":"How is src-ip mapped to remote-ip and dst-port mapped to remote port at the same time?  It doesn\u0027t matter if it is ingress or egress, those two are at opposite ends of the connection when they are specified.  They both can not be \u0027remote\u0027.","commit_id":"7e1cfaba6121dab6520fc475edc345b7f840b416"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"eaaafdfdb585dcfed0b19ed0c1c825e5645127b1","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    os security group rule create"},{"line_number":19,"context_line":"        [--remote-ip \u003cip-address\u003e | --remote-group \u003cgroup\u003e]"},{"line_number":20,"context_line":"        [--remote-port \u003cport-range\u003e | [--icmp-type \u003cicmp-type\u003e [--icmp-code \u003cicmp-code\u003e]]]"},{"line_number":21,"context_line":"        [--protocol \u003cprotocol\u003e]"},{"line_number":22,"context_line":"        [--ingress | --egress]"},{"line_number":23,"context_line":"        [--ethertype \u003cethertype\u003e]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_4c5bb487","line":20,"in_reply_to":"ba5da102_30c5073c","updated":"2016-10-29 02:19:36.000000000","message":"I make a mistake, no matter ingress or egress, port always means dst-port. I give a new patch soon.\nThanks Dean.","commit_id":"7e1cfaba6121dab6520fc475edc345b7f840b416"}],"openstackclient/network/v2/security_group_rule.py":[{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"4fd892073107b563973fda300d36d5aaf8bd62fe","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            metavar\u003d\u0027\u003cport-range\u003e\u0027,"},{"line_number":182,"context_line":"            default\u003d(0, 0),"},{"line_number":183,"context_line":"            action\u003dparseractions.RangeAction,"},{"line_number":184,"context_line":"            help\u003d_(\"Destination port, may be a single port or a starting and \""},{"line_number":185,"context_line":"                   \"ending port range: 137:139. Required for IP protocols TCP \""},{"line_number":186,"context_line":"                   \"and UDP. Ignored for ICMP IP protocols.\")"},{"line_number":187,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_7bd2f701","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":32},"updated":"2016-10-24 09:20:27.000000000","message":"Remote","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cf8e5929fdd79676c4ebab89509e9253d72f399c","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            metavar\u003d\u0027\u003cport-range\u003e\u0027,"},{"line_number":182,"context_line":"            default\u003d(0, 0),"},{"line_number":183,"context_line":"            action\u003dparseractions.RangeAction,"},{"line_number":184,"context_line":"            help\u003d_(\"Destination port, may be a single port or a starting and \""},{"line_number":185,"context_line":"                   \"ending port range: 137:139. Required for IP protocols TCP \""},{"line_number":186,"context_line":"                   \"and UDP. Ignored for ICMP IP protocols.\")"},{"line_number":187,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_e09baf70","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":32},"in_reply_to":"da6895a0_7bd2f701","updated":"2016-10-24 09:52:27.000000000","message":"Done","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"4fd892073107b563973fda300d36d5aaf8bd62fe","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                    \u0027--icmp-type and --icmp-code\u0027)"},{"line_number":269,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":270,"context_line":"        # NOTE(rtheis): For backwards compatibility, continue ignoring"},{"line_number":271,"context_line":"        # the destination port range when an ICMP IP protocol is specified."},{"line_number":272,"context_line":"        if parsed_args.remote_port and not is_icmp_protocol:"},{"line_number":273,"context_line":"            attrs[\u0027port_range_min\u0027] \u003d parsed_args.remote_port[0]"},{"line_number":274,"context_line":"            attrs[\u0027port_range_max\u0027] \u003d parsed_args.remote_port[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_9bf42b88","line":271,"range":{"start_line":271,"start_character":14,"end_line":271,"end_character":25},"updated":"2016-10-24 09:20:27.000000000","message":"remote","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cf8e5929fdd79676c4ebab89509e9253d72f399c","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                    \u0027--icmp-type and --icmp-code\u0027)"},{"line_number":269,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":270,"context_line":"        # NOTE(rtheis): For backwards compatibility, continue ignoring"},{"line_number":271,"context_line":"        # the destination port range when an ICMP IP protocol is specified."},{"line_number":272,"context_line":"        if parsed_args.remote_port and not is_icmp_protocol:"},{"line_number":273,"context_line":"            attrs[\u0027port_range_min\u0027] \u003d parsed_args.remote_port[0]"},{"line_number":274,"context_line":"            attrs[\u0027port_range_max\u0027] \u003d parsed_args.remote_port[1]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_c0a06ba2","line":271,"range":{"start_line":271,"start_character":14,"end_line":271,"end_character":25},"in_reply_to":"da6895a0_9bf42b88","updated":"2016-10-24 09:52:27.000000000","message":"Done","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d79d036f54290319e730e327c7695f0c6faa9e6f","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                parsed_args.remote_group,"},{"line_number":331,"context_line":"                ignore_missing\u003dFalse"},{"line_number":332,"context_line":"            ).id"},{"line_number":333,"context_line":"        elif parsed_args.remote_ip is not None:"},{"line_number":334,"context_line":"            attrs[\u0027remote_ip_prefix\u0027] \u003d parsed_args.remote_ip"},{"line_number":335,"context_line":"        elif parsed_args.src_group is not None:"},{"line_number":336,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_9e72767b","line":333,"updated":"2016-10-27 14:42:26.000000000","message":"Shouldn\u0027t source group be higher priority than remote_ip and src_ip?","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"4f29867ce50b7ab152c4a51ddacd63df7d793b70","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                parsed_args.remote_group,"},{"line_number":331,"context_line":"                ignore_missing\u003dFalse"},{"line_number":332,"context_line":"            ).id"},{"line_number":333,"context_line":"        elif parsed_args.remote_ip is not None:"},{"line_number":334,"context_line":"            attrs[\u0027remote_ip_prefix\u0027] \u003d parsed_args.remote_ip"},{"line_number":335,"context_line":"        elif parsed_args.src_group is not None:"},{"line_number":336,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_0f0d4b3e","line":333,"in_reply_to":"ba5da102_9e72767b","updated":"2016-10-28 02:36:21.000000000","message":"Done","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d79d036f54290319e730e327c7695f0c6faa9e6f","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            from_port, to_port \u003d parsed_args.dst_port"},{"line_number":372,"context_line":"        remote_ip \u003d None"},{"line_number":373,"context_line":"        if parsed_args.remote_group is not None:"},{"line_number":374,"context_line":"            parsed_args.remote_group \u003d utils.find_resource("},{"line_number":375,"context_line":"                client.security_groups,"},{"line_number":376,"context_line":"                parsed_args.remote_group,"},{"line_number":377,"context_line":"            ).id"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_bef65ad5","line":374,"updated":"2016-10-27 14:42:26.000000000","message":"General comment is that we should avoid this code duplication.","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"4f29867ce50b7ab152c4a51ddacd63df7d793b70","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            from_port, to_port \u003d parsed_args.dst_port"},{"line_number":372,"context_line":"        remote_ip \u003d None"},{"line_number":373,"context_line":"        if parsed_args.remote_group is not None:"},{"line_number":374,"context_line":"            parsed_args.remote_group \u003d utils.find_resource("},{"line_number":375,"context_line":"                client.security_groups,"},{"line_number":376,"context_line":"                parsed_args.remote_group,"},{"line_number":377,"context_line":"            ).id"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_ba09fb2e","line":374,"in_reply_to":"ba5da102_bef65ad5","updated":"2016-10-28 02:36:21.000000000","message":"Do you mean take-action-network and take-action-compute part \nis duplicate?\nAs security-group was supported by novaclient and neutronclient， they use different method find resource. I think the two part could not be combined.","commit_id":"ad0d0d989b4e2e89c9e70bc97ab4ef2d259da79c"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            attrs[\u0027port_range_max\u0027] \u003d parsed_args.icmp_code"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if parsed_args.remote_group is not None:"},{"line_number":298,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("},{"line_number":299,"context_line":"                parsed_args.remote_group,"},{"line_number":300,"context_line":"                ignore_missing\u003dFalse"},{"line_number":301,"context_line":"            ).id"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_fffbbe44","line":298,"updated":"2016-11-03 11:27:05.000000000","message":"Please avoid code duplication by first determining if either remote_group or src_group is set and use that.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"5e6cdd13229ca0bd436ae423a3e266e5a166afcb","unresolved":false,"context_lines":[{"line_number":295,"context_line":"            attrs[\u0027port_range_max\u0027] \u003d parsed_args.icmp_code"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if parsed_args.remote_group is not None:"},{"line_number":298,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("},{"line_number":299,"context_line":"                parsed_args.remote_group,"},{"line_number":300,"context_line":"                ignore_missing\u003dFalse"},{"line_number":301,"context_line":"            ).id"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_125e7c76","line":298,"in_reply_to":"ba5da102_fffbbe44","updated":"2016-11-04 09:29:28.000000000","message":"Done","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":299,"context_line":"                parsed_args.remote_group,"},{"line_number":300,"context_line":"                ignore_missing\u003dFalse"},{"line_number":301,"context_line":"            ).id"},{"line_number":302,"context_line":"        elif parsed_args.remote_ip is not None:"},{"line_number":303,"context_line":"            attrs[\u0027remote_ip_prefix\u0027] \u003d parsed_args.remote_ip"},{"line_number":304,"context_line":"        elif parsed_args.src_group is not None:"},{"line_number":305,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_5fc2eae9","line":302,"updated":"2016-11-03 11:27:05.000000000","message":"Same comment.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            ).id"},{"line_number":302,"context_line":"        elif parsed_args.remote_ip is not None:"},{"line_number":303,"context_line":"            attrs[\u0027remote_ip_prefix\u0027] \u003d parsed_args.remote_ip"},{"line_number":304,"context_line":"        elif parsed_args.src_group is not None:"},{"line_number":305,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("},{"line_number":306,"context_line":"                parsed_args.src_group,"},{"line_number":307,"context_line":"                ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_9fb80277","line":304,"updated":"2016-11-03 11:27:05.000000000","message":"src_group is higher priority than remote_ip.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"5e6cdd13229ca0bd436ae423a3e266e5a166afcb","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            ).id"},{"line_number":302,"context_line":"        elif parsed_args.remote_ip is not None:"},{"line_number":303,"context_line":"            attrs[\u0027remote_ip_prefix\u0027] \u003d parsed_args.remote_ip"},{"line_number":304,"context_line":"        elif parsed_args.src_group is not None:"},{"line_number":305,"context_line":"            attrs[\u0027remote_group_id\u0027] \u003d client.find_security_group("},{"line_number":306,"context_line":"                parsed_args.src_group,"},{"line_number":307,"context_line":"                ignore_missing\u003dFalse"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_f258288d","line":304,"in_reply_to":"ba5da102_9fb80277","updated":"2016-11-04 09:29:28.000000000","message":"Done","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        else:"},{"line_number":338,"context_line":"            from_port, to_port \u003d parsed_args.dst_port"},{"line_number":339,"context_line":"        remote_ip \u003d None"},{"line_number":340,"context_line":"        if parsed_args.remote_group is not None:"},{"line_number":341,"context_line":"            parsed_args.remote_group \u003d utils.find_resource("},{"line_number":342,"context_line":"                client.security_groups,"},{"line_number":343,"context_line":"                parsed_args.remote_group,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_ff801e8d","line":340,"updated":"2016-11-03 11:27:05.000000000","message":"Same comment about code duplication as above.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"}],"openstackclient/tests/unit/network/v2/test_security_group_rule.py":[{"author":{"_account_id":19644,"name":"Yan Xing\u0027an","email":"yanxingan@cmss.chinamobile.com","username":"yanxingan"},"change_message_id":"4fd892073107b563973fda300d36d5aaf8bd62fe","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertRaises(tests_utils.ParserException,"},{"line_number":111,"context_line":"                          self.check_parser, self.cmd, [], [])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_create_all_source_options(self):"},{"line_number":114,"context_line":"        arglist \u003d ["},{"line_number":115,"context_line":"            \u0027--remote-ip\u0027, \u002710.10.0.0/24\u0027,"},{"line_number":116,"context_line":"            \u0027--remote-group\u0027, self._security_group.id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_4d9ad464","line":113,"range":{"start_line":113,"start_character":24,"end_line":113,"end_character":29},"updated":"2016-10-24 09:20:27.000000000","message":"remote","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"cf8e5929fdd79676c4ebab89509e9253d72f399c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertRaises(tests_utils.ParserException,"},{"line_number":111,"context_line":"                          self.check_parser, self.cmd, [], [])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_create_all_source_options(self):"},{"line_number":114,"context_line":"        arglist \u003d ["},{"line_number":115,"context_line":"            \u0027--remote-ip\u0027, \u002710.10.0.0/24\u0027,"},{"line_number":116,"context_line":"            \u0027--remote-group\u0027, self._security_group.id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_c0c5cb3c","line":113,"range":{"start_line":113,"start_character":24,"end_line":113,"end_character":29},"in_reply_to":"da6895a0_4d9ad464","updated":"2016-10-24 09:52:27.000000000","message":"Done","commit_id":"e8fec1f7178bcfec5adf19ece0d6a9100cf04043"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertRaises(tests_utils.ParserException,"},{"line_number":111,"context_line":"                          self.check_parser, self.cmd, [], [])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_create_all_remote_options(self):"},{"line_number":114,"context_line":"        arglist \u003d ["},{"line_number":115,"context_line":"            \u0027--src-ip\u0027, \u002710.10.0.0/24\u0027,"},{"line_number":116,"context_line":"            \u0027--remote-ip\u0027, \u002710.10.0.0/24\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_bf0f8635","line":113,"updated":"2016-11-03 11:27:05.000000000","message":"I suggest a separate test.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"5e6cdd13229ca0bd436ae423a3e266e5a166afcb","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertRaises(tests_utils.ParserException,"},{"line_number":111,"context_line":"                          self.check_parser, self.cmd, [], [])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_create_all_remote_options(self):"},{"line_number":114,"context_line":"        arglist \u003d ["},{"line_number":115,"context_line":"            \u0027--src-ip\u0027, \u002710.10.0.0/24\u0027,"},{"line_number":116,"context_line":"            \u0027--remote-ip\u0027, \u002710.10.0.0/24\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_924a8cab","line":113,"in_reply_to":"ba5da102_bf0f8635","updated":"2016-11-04 09:29:28.000000000","message":"Done","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"0c2e9b8222e1eca2b530bcafc36a31d412f0ee88","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        })"},{"line_number":193,"context_line":"        arglist \u003d ["},{"line_number":194,"context_line":"            \u0027--proto\u0027, self._security_group_rule.protocol,"},{"line_number":195,"context_line":"            \u0027--remote-ip\u0027, self._security_group_rule.remote_ip_prefix,"},{"line_number":196,"context_line":"            self._security_group.id,"},{"line_number":197,"context_line":"        ]"},{"line_number":198,"context_line":"        verifylist \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_4202110b","line":195,"updated":"2016-11-03 11:27:05.000000000","message":"We should still keep some --src-ip and --src-group tests.","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"},{"author":{"_account_id":18321,"name":"Yu Jie","email":"yujie@cmss.chinamobile.com","username":"judy-yu"},"change_message_id":"5e6cdd13229ca0bd436ae423a3e266e5a166afcb","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        })"},{"line_number":193,"context_line":"        arglist \u003d ["},{"line_number":194,"context_line":"            \u0027--proto\u0027, self._security_group_rule.protocol,"},{"line_number":195,"context_line":"            \u0027--remote-ip\u0027, self._security_group_rule.remote_ip_prefix,"},{"line_number":196,"context_line":"            self._security_group.id,"},{"line_number":197,"context_line":"        ]"},{"line_number":198,"context_line":"        verifylist \u003d ["}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5da102_724df8c3","line":195,"in_reply_to":"ba5da102_4202110b","updated":"2016-11-04 09:29:28.000000000","message":"Done","commit_id":"7a8bf8255f4f2d570f4e212f9b464cb412984d8d"}]}
