)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4df32a9dccd957c310ea44398bdba948fe1fb86d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     hobo.kengo \u003chobo.kengo@jp.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-08 02:23:54 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add validation for name of security-group"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch disallow cases that following name is specified."},{"line_number":10,"context_line":"   1. name whose type is not String."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_074d7772","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":41},"updated":"2016-08-08 18:09:38.000000000","message":"nit: Add string validation on security group\u0027s name?","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":17133,"name":"Kengo Hobo","email":"hobo.kengo@jp.fujitsu.com","username":"hobo.kengo"},"change_message_id":"ed8b3ffdc86d1888ea190352c2dcbc439553c549","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     hobo.kengo \u003chobo.kengo@jp.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-08 02:23:54 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add validation for name of security-group"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch disallow cases that following name is specified."},{"line_number":10,"context_line":"   1. name whose type is not String."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_f7199a7a","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":41},"in_reply_to":"9ad45d7e_074d7772","updated":"2016-08-10 10:03:17.000000000","message":"Thanks, I will modify this desription.","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4df32a9dccd957c310ea44398bdba948fe1fb86d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add validation for name of security-group"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch disallow cases that following name is specified."},{"line_number":10,"context_line":"   1. name whose type is not String."},{"line_number":11,"context_line":"   2. name whose characters is more than 255."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_c74b5f58","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":19},"updated":"2016-08-08 18:09:38.000000000","message":"disallows","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":17133,"name":"Kengo Hobo","email":"hobo.kengo@jp.fujitsu.com","username":"hobo.kengo"},"change_message_id":"ed8b3ffdc86d1888ea190352c2dcbc439553c549","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add validation for name of security-group"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch disallow cases that following name is specified."},{"line_number":10,"context_line":"   1. name whose type is not String."},{"line_number":11,"context_line":"   2. name whose characters is more than 255."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9ad45d7e_372a127f","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":19},"in_reply_to":"9ad45d7e_c74b5f58","updated":"2016-08-10 10:03:17.000000000","message":"Done","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"}],"neutron/extensions/securitygroup.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"c65fceb4a9610d2083577fc3d4018f7a9bc94ae1","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"def _validate_name_not_default(data, valid_values\u003dNone):"},{"line_number":207,"context_line":"    msg \u003d attr._validate_string(data, valid_values)"},{"line_number":208,"context_line":"    if msg:"},{"line_number":209,"context_line":"        return msg"},{"line_number":210,"context_line":"    if data.lower() \u003d\u003d \"default\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_c5007fad","line":207,"updated":"2016-08-08 16:08:39.000000000","message":"Nit: You can just return _validate_string(data, valid_values)on L212 and you don\u0027t need to check for msg.","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":17133,"name":"Kengo Hobo","email":"hobo.kengo@jp.fujitsu.com","username":"hobo.kengo"},"change_message_id":"ed8b3ffdc86d1888ea190352c2dcbc439553c549","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"def _validate_name_not_default(data, valid_values\u003dNone):"},{"line_number":207,"context_line":"    msg \u003d attr._validate_string(data, valid_values)"},{"line_number":208,"context_line":"    if msg:"},{"line_number":209,"context_line":"        return msg"},{"line_number":210,"context_line":"    if data.lower() \u003d\u003d \"default\":"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_7733e062","line":207,"in_reply_to":"9ad45d7e_c5007fad","updated":"2016-08-10 10:03:17.000000000","message":"Probably, if we change order of L208/209 and L210/L211, problem can\u0027t be solved because \u0027lower\u0027 works on value that have not validated yet as well as bug description.\nHow do you think?","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":22774,"name":"Shashank Kumar Shankar","email":"shashank.kumar.shankar@intel.com","username":"skshankar"},"change_message_id":"e11c1cdadfc6fddf49f2aa6e90afbd56050c8245","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    if msg:"},{"line_number":209,"context_line":"        return msg"},{"line_number":210,"context_line":"    if data.lower() \u003d\u003d \"default\":"},{"line_number":211,"context_line":"        raise SecurityGroupDefaultAlreadyExists()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"validators.validators[\u0027type:name_not_default\u0027] \u003d _validate_name_not_default"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_f24bbaae","line":211,"updated":"2016-08-08 20:46:23.000000000","message":"Can it be re-written this way?\nif data.lower() \u003d\u003d \"default\":\n        raise SecurityGroupDefaultAlreadyExists()\nreturn attr._validate_string(data)","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":17133,"name":"Kengo Hobo","email":"hobo.kengo@jp.fujitsu.com","username":"hobo.kengo"},"change_message_id":"ed8b3ffdc86d1888ea190352c2dcbc439553c549","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    if msg:"},{"line_number":209,"context_line":"        return msg"},{"line_number":210,"context_line":"    if data.lower() \u003d\u003d \"default\":"},{"line_number":211,"context_line":"        raise SecurityGroupDefaultAlreadyExists()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"validators.validators[\u0027type:name_not_default\u0027] \u003d _validate_name_not_default"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_1732645f","line":211,"in_reply_to":"9ad45d7e_f24bbaae","updated":"2016-08-10 10:03:17.000000000","message":"Probably, if we change order of L208/209 and L210/L211, problem can\u0027t be solved because \u0027lower\u0027 works on value that have not validated yet as well as bug description.\nHow do you think?","commit_id":"871e85e5775f310c2de62d03a0a879c14bcd3482"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0394f2a6dc00de11ce18c5d8f3bd692cb55bbec5","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def _validate_name_not_default(data, valid_values\u003dNone):"},{"line_number":198,"context_line":"    msg \u003d attr._validate_string(data, valid_values)"},{"line_number":199,"context_line":"    if msg:"},{"line_number":200,"context_line":"        return msg"},{"line_number":201,"context_line":"    if data.lower() \u003d\u003d \"default\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_dfad5b32","line":198,"range":{"start_line":198,"start_character":10,"end_line":198,"end_character":14},"updated":"2017-04-12 22:00:28.000000000","message":"We are not importing attr. And also _validate_string doesn\u0027t exist in Neutron anymore. I think we need to use https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/validators.py#L184, which has a slightly different signature","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"}],"neutron/tests/tempest/api/test_security_groups_negative.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"1ba4599abcb1946188dea938ef2a92a4ca50d27f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from neutron.api.v2 import attributes as attr"},{"line_number":20,"context_line":"from neutron.tests.tempest.api import base_security_groups as base"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"_long_name_ng \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class NegativeSecGroupTest(base.BaseSecGroupTest):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_7f341a49","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":13},"updated":"2016-08-30 12:56:58.000000000","message":"Constants should be written in all capital letters.","commit_id":"31338718b3abea85242e384e2224ba90be80afd4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0394f2a6dc00de11ce18c5d8f3bd692cb55bbec5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.api.v2 import attributes as attr"},{"line_number":21,"context_line":"from neutron.tests.tempest.api import base_security_groups as base"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NegativeSecGroupTest(base.BaseSecGroupTest):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_9f7c73b6","line":23,"range":{"start_line":23,"start_character":27,"end_line":23,"end_character":39},"updated":"2017-04-12 22:00:28.000000000","message":"Doesn\u0027t exist anymore, either in Neutron or Neutron lib. We may have to define it in https://review.openstack.org/#/c/352190/6/neutron/extensions/securitygroup.py","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"84f7d59ed43e285b92b54f9c3537f21937b7c7a4","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.api.v2 import attributes as attr"},{"line_number":21,"context_line":"from neutron.tests.tempest.api import base_security_groups as base"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NegativeSecGroupTest(base.BaseSecGroupTest):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_ebbe1cfe","line":23,"range":{"start_line":23,"start_character":27,"end_line":23,"end_character":39},"in_reply_to":"9ff52f3f_9f7c73b6","updated":"2017-04-13 06:22:51.000000000","message":"we can use db_const.NAME_FIELD_SIZE","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"36873924ecd767d7995c3a152f04d5d8f43b25cb","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.tests.tempest.api import base_security_groups as base"},{"line_number":21,"context_line":"from neutron_lib.db import constants as db_const"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (db_const.NAME_FIELD_SIZE + 1)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9ff52f3f_de277d64","line":21,"updated":"2017-04-13 17:44:19.000000000","message":"Well, I went through all the scenario and api tests we have in the Neutron tree, and the majority have the imports from neutron_lib in the previous section but there are a few that have it here. I guess we haven\u0027t agreed on a standard. I am going to the majority and moving this import to the previous section","commit_id":"025214ba74f480ba3f2ba2f9bc18006f51de2513"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"787da1f61f46f0838c5345241a69cc0652a24e7d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest import test"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.tests.tempest.api import base_security_groups as base"},{"line_number":21,"context_line":"from neutron_lib.db import constants as db_const"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (db_const.NAME_FIELD_SIZE + 1)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7ffa3b31_476f44c5","line":21,"in_reply_to":"9ff52f3f_de277d64","updated":"2017-04-13 21:35:40.000000000","message":"Agreed, its kind of confusing...","commit_id":"025214ba74f480ba3f2ba2f9bc18006f51de2513"}],"neutron/tests/unit/extensions/test_securitygroup.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"1ba4599abcb1946188dea938ef2a92a4ca50d27f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_securitygroup.\u0027"},{"line_number":39,"context_line":"                   \u0027SecurityGroupTestPlugin\u0027)"},{"line_number":40,"context_line":"_long_name_ok \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN)"},{"line_number":41,"context_line":"_long_name_ng \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class SecurityGroupTestExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa7ab95a_3ff1b26b","line":41,"range":{"start_line":40,"start_character":0,"end_line":41,"end_character":45},"updated":"2016-08-30 12:56:58.000000000","message":"Constants should be written in all capital letters.","commit_id":"31338718b3abea85242e384e2224ba90be80afd4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0394f2a6dc00de11ce18c5d8f3bd692cb55bbec5","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_securitygroup.\u0027"},{"line_number":39,"context_line":"                   \u0027SecurityGroupTestPlugin\u0027)"},{"line_number":40,"context_line":"LONG_NAME_OK \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN)"},{"line_number":41,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_9f2a338e","line":40,"range":{"start_line":40,"start_character":27,"end_line":40,"end_character":39},"updated":"2017-04-12 22:00:28.000000000","message":"Doesn\u0027t exist anymore, either in Neutron or Neutron lib. We may have to define it in https://review.openstack.org/#/c/352190/6/neutron/extensions/securitygroup.py","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"84f7d59ed43e285b92b54f9c3537f21937b7c7a4","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_securitygroup.\u0027"},{"line_number":39,"context_line":"                   \u0027SecurityGroupTestPlugin\u0027)"},{"line_number":40,"context_line":"LONG_NAME_OK \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN)"},{"line_number":41,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_cbbb580c","line":40,"range":{"start_line":40,"start_character":27,"end_line":40,"end_character":39},"in_reply_to":"9ff52f3f_9f2a338e","updated":"2017-04-13 06:22:51.000000000","message":"db_const.NAME_FIELD_SIZE can be used","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0394f2a6dc00de11ce18c5d8f3bd692cb55bbec5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_securitygroup.\u0027"},{"line_number":39,"context_line":"                   \u0027SecurityGroupTestPlugin\u0027)"},{"line_number":40,"context_line":"LONG_NAME_OK \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN)"},{"line_number":41,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class SecurityGroupTestExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_5f1eeb70","line":41,"range":{"start_line":41,"start_character":27,"end_line":41,"end_character":40},"updated":"2017-04-12 22:00:28.000000000","message":"Ditto","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"84f7d59ed43e285b92b54f9c3537f21937b7c7a4","unresolved":false,"context_lines":[{"line_number":38,"context_line":"DB_PLUGIN_KLASS \u003d (\u0027neutron.tests.unit.extensions.test_securitygroup.\u0027"},{"line_number":39,"context_line":"                   \u0027SecurityGroupTestPlugin\u0027)"},{"line_number":40,"context_line":"LONG_NAME_OK \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN)"},{"line_number":41,"context_line":"LONG_NAME_NG \u003d \u0027x\u0027 * (attr.NAME_MAX_LEN + 1)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class SecurityGroupTestExtensionManager(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff52f3f_ab36d4b3","line":41,"range":{"start_line":41,"start_character":27,"end_line":41,"end_character":40},"in_reply_to":"9ff52f3f_5f1eeb70","updated":"2017-04-13 06:22:51.000000000","message":"db_const.NAME_FIELD_SIZE","commit_id":"572f2e5dbe06dd8c092061ca0342e73e55d6f31c"}]}
