)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"8342d8a93051f97e4daaab03da4fe9517031756a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"direction,protocol,port_range_min,port_range_max\". For example,"},{"line_number":13,"context_line":"securitygroup_default_rules\u003dingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I2531506fcd3b31fc2b733ee0cc5c4911a6528e1a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da85f559_2fad4a88","line":14,"updated":"2015-11-16 02:38:12.000000000","message":"this idea is good, but I think you need file a bug or BP to trace this patch","commit_id":"f7d6023744e29e1598a1ae2cf082dd0054b33399"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"d209670b964d833a1f3896cd2382b9de000fe26d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"direction,protocol,port_range_min,port_range_max\". For example,"},{"line_number":13,"context_line":"securitygroup_default_rules\u003dingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I2531506fcd3b31fc2b733ee0cc5c4911a6528e1a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da85f559_aa7b687a","line":14,"in_reply_to":"da85f559_2fad4a88","updated":"2015-11-16 03:08:36.000000000","message":"Done","commit_id":"f7d6023744e29e1598a1ae2cf082dd0054b33399"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fc1ff039eda4e0fb1af1362daf85706315e86e85","unresolved":false,"context_lines":[{"line_number":13,"context_line":"securitygroup_default_rules\u003dingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I2531506fcd3b31fc2b733ee0cc5c4911a6528e1a"},{"line_number":16,"context_line":"Related-blueprint: default-rules-for-default-security-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba8a016a_e86c690a","line":16,"updated":"2015-11-16 15:07:46.000000000","message":"This turns-into an unresolvable hyperlink, need something to find the BP","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"4f327f105f3e8158480b4dbdff19a0fd1e7aa642","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Related-bp:"},{"line_number":16,"context_line":"https://blueprints.launchpad.net/neutron/+spec/default-rules-for-default-security-group"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I2531506fcd3b31fc2b733ee0cc5c4911a6528e1a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba8a016a_3d82a653","line":18,"updated":"2015-11-16 17:33:15.000000000","message":"This should have a DocImpact tag and a SecurityImpact tag (see https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references)","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"aa3b4b5f7f3fa881ef08b809b745ace216fe831b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Related-bp:"},{"line_number":16,"context_line":"https://blueprints.launchpad.net/neutron/+spec/default-rules-for-default-security-group"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I2531506fcd3b31fc2b733ee0cc5c4911a6528e1a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba8a016a_c437f0ae","line":18,"in_reply_to":"ba8a016a_3d82a653","updated":"2015-11-17 02:30:11.000000000","message":"Done","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b4a0d0f7ceac4a4ec55d708e9180465a31ce37d7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create default sg rules when create a sg"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default security group rules will be created when create security group."},{"line_number":10,"context_line":"Sometimes we need to create default security rules when create"},{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"ethertype,direction,protocol,port_range_min,port_range_max\". For example,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_e47eb4e3","line":9,"updated":"2015-11-17 02:44:19.000000000","message":"Suggested Rewording: \nSometimes we need to create a default security rule when a new security group is created. The following patch facilitates the same.\nThe format of default security group rule is \"ethertype,direction,protocol,port_range_min,port_range_max\". \nFor example,security_group_default_rules\u003d\nethertype,ingress,tcp,22,22:ethertype,ingress,tcp,80,80","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"1fed6e8ba3573e8cf4496701b0f6cda40ef467e0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create default sg rules when create a sg"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default security group rules will be created when create security group."},{"line_number":10,"context_line":"Sometimes we need to create default security rules when create"},{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"ethertype,direction,protocol,port_range_min,port_range_max\". For example,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_73e8447d","line":9,"in_reply_to":"ba8a016a_e47eb4e3","updated":"2015-11-17 05:51:52.000000000","message":"Done","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b4a0d0f7ceac4a4ec55d708e9180465a31ce37d7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Sometimes we need to create default security rules when create"},{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"ethertype,direction,protocol,port_range_min,port_range_max\". For example,"},{"line_number":13,"context_line":"security_group_default_rules\u003dethertype,ingress,tcp,22,22:ethertype,ingress,tcp,80,80"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-bp:"},{"line_number":16,"context_line":"https://blueprints.launchpad.net/neutron/+spec/default-rules-for-default-security-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_24f03c90","line":13,"updated":"2015-11-17 02:44:19.000000000","message":"Please limit git body to 72 characters","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"1fed6e8ba3573e8cf4496701b0f6cda40ef467e0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Sometimes we need to create default security rules when create"},{"line_number":11,"context_line":"new security groups. The format of default security group rules is"},{"line_number":12,"context_line":"\"ethertype,direction,protocol,port_range_min,port_range_max\". For example,"},{"line_number":13,"context_line":"security_group_default_rules\u003dethertype,ingress,tcp,22,22:ethertype,ingress,tcp,80,80"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Related-bp:"},{"line_number":16,"context_line":"https://blueprints.launchpad.net/neutron/+spec/default-rules-for-default-security-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba8a016a_93eda88d","line":13,"in_reply_to":"ba8a016a_24f03c90","updated":"2015-11-17 05:51:52.000000000","message":"Done","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"}],"etc/neutron.conf":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fc1ff039eda4e0fb1af1362daf85706315e86e85","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"},{"line_number":53,"context_line":"# paths.  For example:"}],"source_content_type":"text/plain","patch_set":4,"id":"ba8a016a_2b9b4bcb","line":50,"updated":"2015-11-16 15:07:46.000000000","message":"I haven\u0027t read the BP, but does this not open a security hole as the admin might set a policy that the user isn\u0027t aware of, and now their instances have ports open they didn\u0027t account for?  How can a tenant find out about this and disable it for their account?","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"c2e930ee9f06124a96d658320e0b2bff0f82791c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"},{"line_number":53,"context_line":"# paths.  For example:"}],"source_content_type":"text/plain","patch_set":4,"id":"ba8a016a_1c048b7c","line":50,"in_reply_to":"ba8a016a_2b9b4bcb","updated":"2015-11-16 16:06:08.000000000","message":"The bp is here:\nhttps://blueprints.launchpad.net/neutron/+spec/default-rules-for-default-security-group","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"4f327f105f3e8158480b4dbdff19a0fd1e7aa642","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"}],"source_content_type":"text/plain","patch_set":6,"id":"ba8a016a_62172da4","line":49,"updated":"2015-11-16 17:33:15.000000000","message":"I agree with Brian, if this feature is added it needs to work with both IPv4 and IPv6 (not just assume and hardcode IPv4), so will need a fifth item, either ethertype (IPv4 or IPv6) or you could accept a CIDR instead, such as 0.0.0.0/24, ::0/0, etc (which would mean you would need to change the rule separator from \u0027:\u0027 to something else).","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"aa3b4b5f7f3fa881ef08b809b745ace216fe831b","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"}],"source_content_type":"text/plain","patch_set":6,"id":"ba8a016a_a4466c21","line":49,"in_reply_to":"ba8a016a_62172da4","updated":"2015-11-17 02:30:11.000000000","message":"Done","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"4f327f105f3e8158480b4dbdff19a0fd1e7aa642","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"},{"line_number":53,"context_line":"# paths.  For example:"},{"line_number":54,"context_line":"# api_extensions_path \u003d extensions:/path/to/more/extensions:/even/more/extensions"}],"source_content_type":"text/plain","patch_set":6,"id":"ba8a016a_c254d955","line":51,"updated":"2015-11-16 17:33:15.000000000","message":"nit: should be security_group_default_rules so it is consistent with other security group related keys below","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"aa3b4b5f7f3fa881ef08b809b745ace216fe831b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"# Format is \"direction,protocol,port_range_min,port_range_max\". For example:"},{"line_number":49,"context_line":"# securitygroup_default_rules \u003d ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":50,"context_line":"# securitygroup_default_rules \u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"},{"line_number":53,"context_line":"# paths.  For example:"},{"line_number":54,"context_line":"# api_extensions_path \u003d extensions:/path/to/more/extensions:/even/more/extensions"}],"source_content_type":"text/plain","patch_set":6,"id":"ba8a016a_8441e80d","line":51,"in_reply_to":"ba8a016a_c254d955","updated":"2015-11-17 02:30:11.000000000","message":"Done","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"b4a0d0f7ceac4a4ec55d708e9180465a31ce37d7","unresolved":false,"context_lines":[{"line_number":44,"context_line":"# Port the bind the API server to"},{"line_number":45,"context_line":"# bind_port \u003d 9696"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"ethertype,direction,protocol,port_range_min,port_range_max\"."},{"line_number":49,"context_line":"# For example:"},{"line_number":50,"context_line":"# security_group_default_rules \u003d ipv4,ingress,tcp,22,22:ingress,tcp,80,80"}],"source_content_type":"text/plain","patch_set":7,"id":"ba8a016a_848328cc","line":47,"updated":"2015-11-17 02:44:19.000000000","message":"create -\u003ecreating","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"1fed6e8ba3573e8cf4496701b0f6cda40ef467e0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"# Port the bind the API server to"},{"line_number":45,"context_line":"# bind_port \u003d 9696"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when create security group."},{"line_number":48,"context_line":"# Format is \"ethertype,direction,protocol,port_range_min,port_range_max\"."},{"line_number":49,"context_line":"# For example:"},{"line_number":50,"context_line":"# security_group_default_rules \u003d ipv4,ingress,tcp,22,22:ingress,tcp,80,80"}],"source_content_type":"text/plain","patch_set":7,"id":"ba8a016a_f3fc3440","line":47,"in_reply_to":"ba8a016a_848328cc","updated":"2015-11-17 05:51:52.000000000","message":"Done","commit_id":"05ff08b8d9d5cc3ba7e58a57116a4a3ce311d0bf"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"07c49c86594467aab61da5cd4e10bff6d3599778","unresolved":false,"context_lines":[{"line_number":44,"context_line":"# Port the bind the API server to"},{"line_number":45,"context_line":"# bind_port \u003d 9696"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when creating security group."},{"line_number":48,"context_line":"# Format is \"ethertype,direction,protocol,port_range_min,port_range_max\"."},{"line_number":49,"context_line":"# For example:"},{"line_number":50,"context_line":"# security_group_default_rules \u003d ipv4,ingress,tcp,22,22:ingress,tcp,80,80"}],"source_content_type":"text/plain","patch_set":8,"id":"ba8a016a_4262feae","line":47,"updated":"2015-11-17 11:45:40.000000000","message":"why not have this as a list option. Then we can create a number of security groups?","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"},{"author":{"_account_id":15307,"name":"Muawia Khan","email":"amuawiakhan@gmail.com","username":"muawiakhan"},"change_message_id":"62ea0e2c0f365572c1a97a93f1e2a99a6fe2b972","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when creating security group."},{"line_number":48,"context_line":"# Format is \"ethertype,direction,protocol,port_range_min,port_range_max\"."},{"line_number":49,"context_line":"# For example:"},{"line_number":50,"context_line":"# security_group_default_rules \u003d ipv4,ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":51,"context_line":"# security_group_default_rules \u003d"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"}],"source_content_type":"text/plain","patch_set":8,"id":"ba8a016a_0f02de6f","line":50,"updated":"2015-11-17 12:31:37.000000000","message":"+1 to Peng Fei Wangs comment.","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"},{"author":{"_account_id":10634,"name":"Peng Fei Wang","email":"wpf710@gmail.com","username":"wpf"},"change_message_id":"e612e813e5ac0de417d907ef0539b3e30fd64548","unresolved":false,"context_lines":[{"line_number":47,"context_line":"# (StrOpt) Default security group rules will be created when creating security group."},{"line_number":48,"context_line":"# Format is \"ethertype,direction,protocol,port_range_min,port_range_max\"."},{"line_number":49,"context_line":"# For example:"},{"line_number":50,"context_line":"# security_group_default_rules \u003d ipv4,ingress,tcp,22,22:ingress,tcp,80,80"},{"line_number":51,"context_line":"# security_group_default_rules \u003d"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"# Path to the extensions.  Note that this can be a colon-separated list of"}],"source_content_type":"text/plain","patch_set":8,"id":"ba8a016a_2897aa91","line":50,"updated":"2015-11-17 06:43:06.000000000","message":"according to your code,  the property count must be 5, so your example is bad example","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"}],"neutron/db/securitygroups_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fc1ff039eda4e0fb1af1362daf85706315e86e85","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                rule[\u0027port_range_max\u0027] \u003d rule_info[3]"},{"line_number":205,"context_line":"                ip_proto \u003d self._get_ip_proto_number(rule[\u0027protocol\u0027])"},{"line_number":206,"context_line":"                if ip_proto in [constants.PROTO_NUM_TCP,"},{"line_number":207,"context_line":"                                constants.PROTO_NUM_UDP]:"},{"line_number":208,"context_line":"                    if (rule[\u0027port_range_min\u0027] is not None and"},{"line_number":209,"context_line":"                        rule[\u0027port_range_max\u0027] is not None and"},{"line_number":210,"context_line":"                        rule[\u0027port_range_min\u0027] \u003c\u003d rule[\u0027port_range_max\u0027]):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_e8d0e9cb","line":207,"updated":"2015-11-16 15:07:46.000000000","message":"From here to L225 is pretty much duplicating _validate_port_range() except this is LOG.warn() instead.  But what happens when we find a bug there?  Someone might forget to update this code, so why can\u0027t this call _validate_port_range() and catch the exception?","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"c2e930ee9f06124a96d658320e0b2bff0f82791c","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                rule[\u0027port_range_max\u0027] \u003d rule_info[3]"},{"line_number":205,"context_line":"                ip_proto \u003d self._get_ip_proto_number(rule[\u0027protocol\u0027])"},{"line_number":206,"context_line":"                if ip_proto in [constants.PROTO_NUM_TCP,"},{"line_number":207,"context_line":"                                constants.PROTO_NUM_UDP]:"},{"line_number":208,"context_line":"                    if (rule[\u0027port_range_min\u0027] is not None and"},{"line_number":209,"context_line":"                        rule[\u0027port_range_max\u0027] is not None and"},{"line_number":210,"context_line":"                        rule[\u0027port_range_min\u0027] \u003c\u003d rule[\u0027port_range_max\u0027]):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_9c263b15","line":207,"in_reply_to":"ba8a016a_e8d0e9cb","updated":"2015-11-16 16:06:08.000000000","message":"yeh, you are right. the below code is pretty much duplicating a function. i will be fix it.","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fc1ff039eda4e0fb1af1362daf85706315e86e85","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                    id\u003duuidutils.generate_uuid(),"},{"line_number":228,"context_line":"                    tenant_id\u003dtenant_id,"},{"line_number":229,"context_line":"                    security_group\u003dsecurity_group_db,"},{"line_number":230,"context_line":"                    ethertype\u003d\u0027IPv4\u0027,"},{"line_number":231,"context_line":"                    direction\u003drule[\u0027direction\u0027],"},{"line_number":232,"context_line":"                    protocol\u003drule[\u0027protocol\u0027],"},{"line_number":233,"context_line":"                    port_range_min\u003drule[\u0027port_range_min\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_08a44d55","line":230,"updated":"2015-11-16 15:07:46.000000000","message":"I had noticed the omission of ethertype in neutron.conf - I don\u0027t think we can assume any rules should be v4-only, as there are deployments where there is no IPv4 at all.","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"c2e930ee9f06124a96d658320e0b2bff0f82791c","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                    id\u003duuidutils.generate_uuid(),"},{"line_number":228,"context_line":"                    tenant_id\u003dtenant_id,"},{"line_number":229,"context_line":"                    security_group\u003dsecurity_group_db,"},{"line_number":230,"context_line":"                    ethertype\u003d\u0027IPv4\u0027,"},{"line_number":231,"context_line":"                    direction\u003drule[\u0027direction\u0027],"},{"line_number":232,"context_line":"                    protocol\u003drule[\u0027protocol\u0027],"},{"line_number":233,"context_line":"                    port_range_min\u003drule[\u0027port_range_min\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_dce7e3aa","line":230,"in_reply_to":"ba8a016a_08a44d55","updated":"2015-11-16 16:06:08.000000000","message":"thx for your advice. i have a question, what are the default IPv6 sg rules?could you give me some examples? i haven\u0027t use IPv6","commit_id":"45764d9d524065d7c283d9ee642b5a25603f4c02"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"4f327f105f3e8158480b4dbdff19a0fd1e7aa642","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cfg.StrOpt(\u0027securitygroup_default_rules\u0027,"},{"line_number":49,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":50,"context_line":"               help\u003d_(\u0027These security group rules will be created when \u0027"},{"line_number":51,"context_line":"                      \u0027create security group.\u0027)),"},{"line_number":52,"context_line":"]"},{"line_number":53,"context_line":"cfg.CONF.register_opts(securitygroup_default_rules)"},{"line_number":54,"context_line":"RULE_CONFIG_ATTRIBUTES_COUNT \u003d 4"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_a290b5ed","line":51,"updated":"2015-11-16 17:33:15.000000000","message":"nit: Change to \"These security group rules will be added by default when a security group is created.\"","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"aa3b4b5f7f3fa881ef08b809b745ace216fe831b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    cfg.StrOpt(\u0027securitygroup_default_rules\u0027,"},{"line_number":49,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":50,"context_line":"               help\u003d_(\u0027These security group rules will be created when \u0027"},{"line_number":51,"context_line":"                      \u0027create security group.\u0027)),"},{"line_number":52,"context_line":"]"},{"line_number":53,"context_line":"cfg.CONF.register_opts(securitygroup_default_rules)"},{"line_number":54,"context_line":"RULE_CONFIG_ATTRIBUTES_COUNT \u003d 4"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_444c6042","line":51,"in_reply_to":"ba8a016a_a290b5ed","updated":"2015-11-17 02:30:11.000000000","message":"Done","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14957,"name":"Brad Behle","email":"behle@us.ibm.com","username":"behle"},"change_message_id":"4f327f105f3e8158480b4dbdff19a0fd1e7aa642","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                    id\u003duuidutils.generate_uuid(),"},{"line_number":212,"context_line":"                    tenant_id\u003dtenant_id,"},{"line_number":213,"context_line":"                    security_group\u003dsecurity_group_db,"},{"line_number":214,"context_line":"                    ethertype\u003d\u0027IPv4\u0027,"},{"line_number":215,"context_line":"                    direction\u003drule[\u0027direction\u0027],"},{"line_number":216,"context_line":"                    protocol\u003drule[\u0027protocol\u0027],"},{"line_number":217,"context_line":"                    port_range_min\u003drule[\u0027port_range_min\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_023bc1ec","line":214,"updated":"2015-11-16 17:33:15.000000000","message":"Agree with Brian\u0027s comment, IPv4 shouldn\u0027t be hardcoded, the administrator should include it in the options for the default rules so IPv6 is supported for this feature","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":14562,"name":"Zhi Chang","email":"changzhi2@lenovo.com","username":"changzhi"},"change_message_id":"aa3b4b5f7f3fa881ef08b809b745ace216fe831b","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                    id\u003duuidutils.generate_uuid(),"},{"line_number":212,"context_line":"                    tenant_id\u003dtenant_id,"},{"line_number":213,"context_line":"                    security_group\u003dsecurity_group_db,"},{"line_number":214,"context_line":"                    ethertype\u003d\u0027IPv4\u0027,"},{"line_number":215,"context_line":"                    direction\u003drule[\u0027direction\u0027],"},{"line_number":216,"context_line":"                    protocol\u003drule[\u0027protocol\u0027],"},{"line_number":217,"context_line":"                    port_range_min\u003drule[\u0027port_range_min\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_64708473","line":214,"in_reply_to":"ba8a016a_023bc1ec","updated":"2015-11-17 02:30:11.000000000","message":"Done","commit_id":"de428b3f60f24f72a5a8b3cf82d626fb44a3cf0c"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"07c49c86594467aab61da5cd4e10bff6d3599778","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                    direction\u003d\u0027egress\u0027,"},{"line_number":191,"context_line":"                    ethertype\u003dethertype)"},{"line_number":192,"context_line":"                context.session.add(egress_rule)"},{"line_number":193,"context_line":"            default_rules \u003d cfg.CONF.security_group_default_rules.split(\u0027:\u0027)"},{"line_number":194,"context_line":"            for default_rule in default_rules:"},{"line_number":195,"context_line":"                rule_info \u003d default_rule.split(\u0027,\u0027)"},{"line_number":196,"context_line":"                if len(rule_info) !\u003d RULE_CONFIG_ATTRIBUTES_COUNT:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_22d49a1e","line":193,"updated":"2015-11-17 11:45:40.000000000","message":"i do not like the fact that this is done via the configuration. Why not enable the admin use to create a security group that will have the default rules?\nA security group can contain a security group","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"},{"author":{"_account_id":10634,"name":"Peng Fei Wang","email":"wpf710@gmail.com","username":"wpf"},"change_message_id":"e612e813e5ac0de417d907ef0539b3e30fd64548","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                try:"},{"line_number":207,"context_line":"                    self._validate_port_range(rule)"},{"line_number":208,"context_line":"                except Exception:"},{"line_number":209,"context_line":"                    LOG.warn(_LW(\u0027Ignore invalid security group rule \u0027"},{"line_number":210,"context_line":"                                 \u0027%(rule)s\u0027), {\u0027rule\u0027: rule})"},{"line_number":211,"context_line":"                db \u003d SecurityGroupRule("},{"line_number":212,"context_line":"                    id\u003duuidutils.generate_uuid(),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_e8b9a22f","line":209,"updated":"2015-11-17 06:43:06.000000000","message":"should we continue to add to db when it\u0027s invalid?","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"},{"author":{"_account_id":15307,"name":"Muawia Khan","email":"amuawiakhan@gmail.com","username":"muawiakhan"},"change_message_id":"62ea0e2c0f365572c1a97a93f1e2a99a6fe2b972","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                try:"},{"line_number":207,"context_line":"                    self._validate_port_range(rule)"},{"line_number":208,"context_line":"                except Exception:"},{"line_number":209,"context_line":"                    LOG.warn(_LW(\u0027Ignore invalid security group rule \u0027"},{"line_number":210,"context_line":"                                 \u0027%(rule)s\u0027), {\u0027rule\u0027: rule})"},{"line_number":211,"context_line":"                db \u003d SecurityGroupRule("},{"line_number":212,"context_line":"                    id\u003duuidutils.generate_uuid(),"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_ef83daca","line":209,"updated":"2015-11-17 12:31:37.000000000","message":"why warn?","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"}],"neutron/tests/unit/extensions/test_securitygroup.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"07c49c86594467aab61da5cd4e10bff6d3599778","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        self.assertEqual(res.status_int, webob.exc.HTTPConflict.code)"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"    def test_create_default_security_group_include_specific_rules(self):"},{"line_number":378,"context_line":"        cfg.CONF.set_override(\u0027security_group_default_rules\u0027,"},{"line_number":379,"context_line":"            \u0027ipv4,ingress,tcp,80,80\u0027)"},{"line_number":380,"context_line":"        name \u003d \u0027my test\u0027"},{"line_number":381,"context_line":"        description \u003d \u0027my test\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba8a016a_c2e34e04","line":378,"updated":"2015-11-17 11:45:40.000000000","message":"i would like to see tests with multiple security groups","commit_id":"104549a0933dd7e5b9f90e350f644d126d6cadf7"}]}
