)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"b2940a7d47ac8b9a7a7904a06b13841277c37f50","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-20 22:54:06 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"We want to control a volume of the min and max size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifffd8cd2c2f7a7edf5746632daa8d353699e2578"},{"line_number":10,"context_line":"Partial-Implements: blueprint check-volume-size"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a68dd71_35a60e54","line":8,"updated":"2016-01-21 16:56:19.000000000","message":"It would be helpful to add more detail about what is being done in this patch.\n\nAlso I think this patch needs a DocImpact tag since config options are being added.","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"7d6489361a36ea486b7e670007250af91e2b15d1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"We want to control a volume of the min and max size"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifffd8cd2c2f7a7edf5746632daa8d353699e2578"},{"line_number":10,"context_line":"Partial-Implements: blueprint check-volume-size"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a5ae5dd_81c64066","line":10,"updated":"2016-02-06 03:44:23.000000000","message":"There is not approved spec, and you created a blueprint which you approved yourself, which is wrong.","commit_id":"eb94436e1a31a01dc172be111500b913222326fa"}],"cinder/volume/api.py":[{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"volume_min_size_opt \u003d cfg.IntOpt(\u0027volume_min_size\u0027,"},{"line_number":79,"context_line":"                                 default\u003d1,"},{"line_number":80,"context_line":"                                 help\u003d\u0027allow the min size of volume\u0027)"},{"line_number":81,"context_line":"volume_max_size_opt \u003d cfg.IntOpt(\u0027volume_max_size\u0027,"},{"line_number":82,"context_line":"                                 default\u003d10000,"},{"line_number":83,"context_line":"                                 help\u003d\u0027allow the max size of volume\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_52dc0a12","line":80,"updated":"2016-01-21 11:43:18.000000000","message":"Something like \"Specifies the minimum allowed size for a volume in GB\" would be better.","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                 help\u003d\u0027allow the min size of volume\u0027)"},{"line_number":81,"context_line":"volume_max_size_opt \u003d cfg.IntOpt(\u0027volume_max_size\u0027,"},{"line_number":82,"context_line":"                                 default\u003d10000,"},{"line_number":83,"context_line":"                                 help\u003d\u0027allow the max size of volume\u0027)"},{"line_number":84,"context_line":"volume_unit_size_opt \u003d cfg.IntOpt(\u0027volume_unit_size\u0027,"},{"line_number":85,"context_line":"                                  default\u003d1,"},{"line_number":86,"context_line":"                                  help\u003d\u0027the unit of volume size\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_f2017e6b","line":83,"updated":"2016-01-21 11:43:18.000000000","message":"As above.","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"volume_extend_min_size_opt \u003d cfg.IntOpt(\u0027volume_extend_min_size\u0027,"},{"line_number":88,"context_line":"                                        default\u003d1,"},{"line_number":89,"context_line":"                                        help\u003d\u0027allow the min increase size of \u0027"},{"line_number":90,"context_line":"                                        \u0027extending volume\u0027)"},{"line_number":91,"context_line":"CONF \u003d cfg.CONF"},{"line_number":92,"context_line":"CONF.register_opt(allow_force_upload_opt)"},{"line_number":93,"context_line":"CONF.register_opt(volume_host_opt)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_327dd6e7","line":90,"updated":"2016-01-21 11:43:18.000000000","message":"As above, but also, I don\u0027t see this variable being used, should it be in this commit?","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"78dd55ccc67372858f51dc1e5b489b265db7b281","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        check_size \u003d int(size)"},{"line_number":275,"context_line":"        if check_size \u003c CONF.volume_min_size:"},{"line_number":276,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is small than volume min \""},{"line_number":277,"context_line":"                    \"size %s\") % (check_size, CONF.volume_min_size)"},{"line_number":278,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":279,"context_line":"        elif check_size \u003e CONF.volume_max_size:"},{"line_number":280,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is large than volume max \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6251330e","line":277,"range":{"start_line":277,"start_character":66,"end_line":277,"end_character":67},"updated":"2016-01-21 15:20:42.000000000","message":"It\u0027d better do in such a way: https://github.com/openstack/cinder/blob/master/cinder/volume/api.py#L1131\nPlease look at the style guidelines http://docs.openstack.org/developer/hacking/#internationalization-i18n-strings","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        check_size \u003d int(size)"},{"line_number":275,"context_line":"        if check_size \u003c CONF.volume_min_size:"},{"line_number":276,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is small than volume min \""},{"line_number":277,"context_line":"                    \"size %s\") % (check_size, CONF.volume_min_size)"},{"line_number":278,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":279,"context_line":"        elif check_size \u003e CONF.volume_max_size:"},{"line_number":280,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is large than volume max \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_f2d41ebe","line":277,"updated":"2016-01-21 11:43:18.000000000","message":"s/small/smaller/","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                    \"size %s\") % (check_size, CONF.volume_min_size)"},{"line_number":278,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":279,"context_line":"        elif check_size \u003e CONF.volume_max_size:"},{"line_number":280,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is large than volume max \""},{"line_number":281,"context_line":"                    \"size %s\") % (check_size, CONF.volume_max_size)"},{"line_number":282,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":283,"context_line":"        elif check_size % CONF.volume_unit_size !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_12ef7288","line":280,"updated":"2016-01-21 11:43:18.000000000","message":"s/large/larger/","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"78dd55ccc67372858f51dc1e5b489b265db7b281","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":279,"context_line":"        elif check_size \u003e CONF.volume_max_size:"},{"line_number":280,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it is large than volume max \""},{"line_number":281,"context_line":"                    \"size %s\") % (check_size, CONF.volume_max_size)"},{"line_number":282,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":283,"context_line":"        elif check_size % CONF.volume_unit_size !\u003d 0:"},{"line_number":284,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it\u0027s unit is not volume \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_a25e4b10","line":281,"range":{"start_line":281,"start_character":51,"end_line":281,"end_character":66},"updated":"2016-01-21 15:20:42.000000000","message":"ditto","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"8c0ef2220d3743e446bbc6e0421e2a3b416cefb2","unresolved":false,"context_lines":[{"line_number":282,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":283,"context_line":"        elif check_size % CONF.volume_unit_size !\u003d 0:"},{"line_number":284,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it\u0027s unit is not volume \""},{"line_number":285,"context_line":"                    \"unit %s\") % (check_size, CONF.volume_unit_size)"},{"line_number":286,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if consistencygroup and (not cgsnapshot and not source_cg):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_b28546ae","line":285,"updated":"2016-01-21 11:43:18.000000000","message":"Something like \"Invalid size %s, because it is not a multiple of %s\" would be better.","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"78dd55ccc67372858f51dc1e5b489b265db7b281","unresolved":false,"context_lines":[{"line_number":282,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":283,"context_line":"        elif check_size % CONF.volume_unit_size !\u003d 0:"},{"line_number":284,"context_line":"            msg \u003d _(\"Invalid size \u0027%s\u0027, because it\u0027s unit is not volume \""},{"line_number":285,"context_line":"                    \"unit %s\") % (check_size, CONF.volume_unit_size)"},{"line_number":286,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        if consistencygroup and (not cgsnapshot and not source_cg):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_42066fcf","line":285,"range":{"start_line":285,"start_character":51,"end_line":285,"end_character":67},"updated":"2016-01-21 15:20:42.000000000","message":"ditto","commit_id":"849f271a725552abe030e5718f4bd8d5c551104f"},{"author":{"_account_id":14274,"name":"XinXiaohui","email":"xiaohui.xin@intel.com","username":"XinXiaohui"},"change_message_id":"6d40332f22d837645f688590f4e9a6322f705dbb","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        check_size \u003d int(size)"},{"line_number":269,"context_line":"        if check_size \u003c CONF.volume_min_size:"},{"line_number":270,"context_line":"            msg \u003d _(\"Invalid size \u0027%(check_size)s\u0027, because it is small \""},{"line_number":271,"context_line":"                    \"than volume min size %（min_size)s\") % \\"},{"line_number":272,"context_line":"                    {\u0027check_size\u0027: check_size,"},{"line_number":273,"context_line":"                     \u0027min_size\u0027: CONF.volume_min_size}"},{"line_number":274,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a15dfeea","line":271,"range":{"start_line":271,"start_character":42,"end_line":271,"end_character":44},"updated":"2016-01-28 06:56:09.000000000","message":"I have looked into your py27 jenkin failure. At last I found there is a curious character between % and (min_size) in line 271. It should change to %(min_size). Otherwise you will not pass the py27 check.","commit_id":"48681d7e139e5959677b0e15d40086f109b67231"},{"author":{"_account_id":14274,"name":"XinXiaohui","email":"xiaohui.xin@intel.com","username":"XinXiaohui"},"change_message_id":"6d40332f22d837645f688590f4e9a6322f705dbb","unresolved":false,"context_lines":[{"line_number":1259,"context_line":"        check_size \u003d int(new_size)"},{"line_number":1260,"context_line":"        if check_size \u003c CONF.volume_min_size:"},{"line_number":1261,"context_line":"            msg \u003d _(\"Invalid size %(check_size)s, because it is small than \""},{"line_number":1262,"context_line":"                    \"volume min size %（min_size)s\") % \\"},{"line_number":1263,"context_line":"                    {\u0027check_size\u0027: check_size,"},{"line_number":1264,"context_line":"                     \u0027min_size\u0027: CONF.volume_min_size}"},{"line_number":1265,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_4173ea80","line":1262,"range":{"start_line":1262,"start_character":39,"end_line":1262,"end_character":47},"updated":"2016-01-28 06:56:09.000000000","message":"ditto.","commit_id":"48681d7e139e5959677b0e15d40086f109b67231"}]}
