)]}'
{"nova/api/openstack/compute/schemas/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c6757b7f645a8426a23ec9299ae54e32e48a0b25","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        \u0027server\u0027: {"},{"line_number":24,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":25,"context_line":"            \u0027properties\u0027: {"},{"line_number":26,"context_line":"                \u0027name\u0027: parameter_types.name_with_leading_trailing_spaces,"},{"line_number":27,"context_line":"                \u0027imageRef\u0027: parameter_types.image_ref,"},{"line_number":28,"context_line":"                \u0027flavorRef\u0027: parameter_types.flavor_ref,"},{"line_number":29,"context_line":"                \u0027adminPass\u0027: parameter_types.admin_password,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_8e9c715e","line":26,"range":{"start_line":26,"start_character":23,"end_line":26,"end_character":74},"updated":"2016-02-17 11:09:04.000000000","message":"oops, This shouldn\u0027t be changed","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4ba2c17940afcae7d1ea8d70a2c8143f31bd289f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        \u0027server\u0027: {"},{"line_number":24,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":25,"context_line":"            \u0027properties\u0027: {"},{"line_number":26,"context_line":"                \u0027name\u0027: parameter_types.name_with_leading_trailing_spaces,"},{"line_number":27,"context_line":"                \u0027imageRef\u0027: parameter_types.image_ref,"},{"line_number":28,"context_line":"                \u0027flavorRef\u0027: parameter_types.flavor_ref,"},{"line_number":29,"context_line":"                \u0027adminPass\u0027: parameter_types.admin_password,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_ede6da13","line":26,"range":{"start_line":26,"start_character":23,"end_line":26,"end_character":74},"in_reply_to":"dae33548_8e9c715e","updated":"2016-02-17 14:20:04.000000000","message":"yeah, should not touch this :)","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"}],"nova/api/validation/parameter_types.py":[{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"3af756f59741af8ee92d7bfe84ccad38bab70ce4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue),"},{"line_number":122,"context_line":"        _build_regex_range(),"},{"line_number":123,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue)),"},{"line_number":124,"context_line":"    _(\"printable characters. Can not start or end with whitespace.\"))"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# This regex allows leading/trailing whitespace"}],"source_content_type":"text/x-python","patch_set":10,"id":"bae84128_dfa90292","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":6},"updated":"2016-02-23 09:06:39.000000000","message":"from nova.i18n import _?","commit_id":"f839635b1ade70294a379d7902f2c96c6aaf310d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e04a659d6e972722d29110f4d0a153897f3975cf","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue),"},{"line_number":122,"context_line":"        _build_regex_range(),"},{"line_number":123,"context_line":"        _build_regex_range(ws\u003dFalse, invert\u003dTrue)),"},{"line_number":124,"context_line":"    _(\"printable characters. Can not start or end with whitespace.\"))"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"# This regex allows leading/trailing whitespace"}],"source_content_type":"text/x-python","patch_set":10,"id":"bae84128_7f9c360f","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":6},"in_reply_to":"bae84128_dfa90292","updated":"2016-02-23 09:11:27.000000000","message":"oops, forget that, thanks","commit_id":"f839635b1ade70294a379d7902f2c96c6aaf310d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"11c677fabe961302a189603274270d54c3939626","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    valid_name_leading_trailing_spaces_regex_base % {"},{"line_number":155,"context_line":"        \u0027ws\u0027: _build_regex_range(),"},{"line_number":156,"context_line":"        \u0027no_ws\u0027: _build_regex_range(ws\u003dFalse)},"},{"line_number":157,"context_line":"    _(\"printable characters with at least one non space character\"))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"valid_name_regex_obj \u003d re.compile(valid_name_regex.regex, re.UNICODE)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_427460fc","line":157,"range":{"start_line":157,"start_character":50,"end_line":157,"end_character":55},"updated":"2016-02-25 12:45:59.000000000","message":"maybe \u0027blank\u0027 is better","commit_id":"ef2e882af63a95308eb4aa07861972a441263437"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5d933fb1b2060170dbd91abe7a2679d90d082213","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    valid_name_leading_trailing_spaces_regex_base % {"},{"line_number":155,"context_line":"        \u0027ws\u0027: _build_regex_range(),"},{"line_number":156,"context_line":"        \u0027no_ws\u0027: _build_regex_range(ws\u003dFalse)},"},{"line_number":157,"context_line":"    _(\"printable characters with at least one non space character\"))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"valid_name_regex_obj \u003d re.compile(valid_name_regex.regex, re.UNICODE)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aed3d3a_8a14cff5","line":157,"range":{"start_line":157,"start_character":50,"end_line":157,"end_character":55},"in_reply_to":"bae84128_427460fc","updated":"2016-02-26 07:11:17.000000000","message":"Space is better I think, you can check at here http://www.unicode.org/reports/tr44/#General_Category_Values . The explaination for Zs category use \u0027space\u0027","commit_id":"ef2e882af63a95308eb4aa07861972a441263437"}],"nova/api/validation/validators.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4ba2c17940afcae7d1ea8d70a2c8143f31bd289f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName("},{"line_number":87,"context_line":"            \"All characters are printable, the leading and trailing spaces is \""},{"line_number":88,"context_line":"            \"allowed, but the all characters can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b0642ab9","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":12},"updated":"2016-02-17 14:20:04.000000000","message":"need add reason \u003d ? because InvalidName is in this format?","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6110deadaa29d4dceb0115bcea38b17ebfbdfdee","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName("},{"line_number":87,"context_line":"            \"All characters are printable, the leading and trailing spaces is \""},{"line_number":88,"context_line":"            \"allowed, but the all characters can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_13424068","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":12},"in_reply_to":"dae33548_b0642ab9","updated":"2016-02-17 14:43:09.000000000","message":"There still have part of message from jsonschema lib and InvalidName, so the full message:","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4ba2c17940afcae7d1ea8d70a2c8143f31bd289f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName("},{"line_number":87,"context_line":"            \"All characters are printable, the leading and trailing spaces is \""},{"line_number":88,"context_line":"            \"allowed, but the all characters can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b0ef0a1d","line":88,"range":{"start_line":88,"start_character":25,"end_line":88,"end_character":26},"updated":"2016-02-17 14:20:04.000000000","message":"the all --\u003e all the?","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6110deadaa29d4dceb0115bcea38b17ebfbdfdee","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName("},{"line_number":87,"context_line":"            \"All characters are printable, the leading and trailing spaces is \""},{"line_number":88,"context_line":"            \"allowed, but the all characters can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b3cd5433","line":88,"range":{"start_line":88,"start_character":25,"end_line":88,"end_character":26},"in_reply_to":"dae33548_b0ef0a1d","updated":"2016-02-17 14:43:09.000000000","message":"thanks","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4ba2c17940afcae7d1ea8d70a2c8143f31bd289f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    else:"},{"line_number":97,"context_line":"        raise exception.InvalidName("},{"line_number":98,"context_line":"            \"All characters are printable, the leading and trailing spaces \""},{"line_number":99,"context_line":"            \"isn\u0027t allowed, also the all characters can\u0027t only include space.\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def _soft_validate_additional_properties(validator,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_70e2a230","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":40},"updated":"2016-02-17 14:20:04.000000000","message":"ditto?","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6110deadaa29d4dceb0115bcea38b17ebfbdfdee","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    else:"},{"line_number":97,"context_line":"        raise exception.InvalidName("},{"line_number":98,"context_line":"            \"All characters are printable, the leading and trailing spaces \""},{"line_number":99,"context_line":"            \"isn\u0027t allowed, also the all characters can\u0027t only include space.\")"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def _soft_validate_additional_properties(validator,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_13cfe029","line":99,"range":{"start_line":99,"start_character":37,"end_line":99,"end_character":40},"in_reply_to":"dae33548_70e2a230","updated":"2016-02-17 14:43:09.000000000","message":"Done","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4ba2c17940afcae7d1ea8d70a2c8143f31bd289f","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            if isinstance(cause, exception.NovaException):"},{"line_number":188,"context_line":"                msg \u003d cause.format_message()"},{"line_number":189,"context_line":"            else:"},{"line_number":190,"context_line":"                msg \u003d \"%r is not a %r\" % (instance, format)"},{"line_number":191,"context_line":"            raise jsonschema_exc.FormatError(msg, cause\u003dcause)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_4dc6e59a","line":190,"range":{"start_line":190,"start_character":22,"end_line":190,"end_character":24},"updated":"2016-02-17 14:20:04.000000000","message":"should we add _ here ?","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6110deadaa29d4dceb0115bcea38b17ebfbdfdee","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            if isinstance(cause, exception.NovaException):"},{"line_number":188,"context_line":"                msg \u003d cause.format_message()"},{"line_number":189,"context_line":"            else:"},{"line_number":190,"context_line":"                msg \u003d \"%r is not a %r\" % (instance, format)"},{"line_number":191,"context_line":"            raise jsonschema_exc.FormatError(msg, cause\u003dcause)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dae33548_b369d4fb","line":190,"range":{"start_line":190,"start_character":22,"end_line":190,"end_character":24},"in_reply_to":"dae33548_4dc6e59a","updated":"2016-02-17 14:43:09.000000000","message":"you mean the translation mark? that\u0027s good question, actually this is copy from json-schema...so you reminder me, jsons-schema didn\u0027t support translation? I need investigate more.","commit_id":"e13475876f760e4c282295b906bacaef08903f4d"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"362c8d5cb45aef17fc83ed6f5d6eaeb74ccb3b16","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    return rfc3986.is_valid_uri(instance, require_scheme\u003dTrue,"},{"line_number":75,"context_line":"                                require_authority\u003dTrue)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"def _soft_validate_additional_properties(validator,"},{"line_number":79,"context_line":"                                         additional_properties_value,"},{"line_number":80,"context_line":"                                         instance,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_aad6c924","side":"PARENT","line":77,"updated":"2016-02-21 14:59:50.000000000","message":"The follow four exception reasons don\u0027t actually make any sense to me. It may be because of lack of verb noun agreement near \"is allowed\". In any case I think someone who knows what they are supposed to say should speak them out loud and try to understand them and see if they are correct.","commit_id":"0e67963cde0466b719ab2f2d3a84ef6d7bb9c279"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"af85ee6ad691da649a6f6ce806e51fe301e07ff8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    return rfc3986.is_valid_uri(instance, require_scheme\u003dTrue,"},{"line_number":75,"context_line":"                                require_authority\u003dTrue)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"def _soft_validate_additional_properties(validator,"},{"line_number":79,"context_line":"                                         additional_properties_value,"},{"line_number":80,"context_line":"                                         instance,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_09ac0dec","side":"PARENT","line":77,"in_reply_to":"bae84128_aad6c924","updated":"2016-02-22 10:53:30.000000000","message":"Sorry...does this sounds better \"Only allow printable characters, except \u0027!\u0027, \u0027.\u0027, \u0027@\u0027, leading/trailing spaces, or string only composed with space.\" ?","commit_id":"0e67963cde0466b719ab2f2d3a84ef6d7bb9c279"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3b43b0802c4233494c4f620a5b28e4a1d8299617","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All characters are printable, the \""},{"line_number":87,"context_line":"            \"leading and trailing spaces is allowed, but all the characters \""},{"line_number":88,"context_line":"            \"can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_ecd4a948","line":88,"updated":"2016-02-19 14:57:57.000000000","message":"Hmm, this is not localised, I think that is correct.","commit_id":"daae07125d229ab59bcf2d4918376278f0701bb7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"af85ee6ad691da649a6f6ce806e51fe301e07ff8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All characters are printable, the \""},{"line_number":87,"context_line":"            \"leading and trailing spaces is allowed, but all the characters \""},{"line_number":88,"context_line":"            \"can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_6ebb1f28","line":88,"in_reply_to":"bae84128_ecd4a948","updated":"2016-02-22 10:53:30.000000000","message":"yes, I will add the translation mark. Sorry I missed the comment","commit_id":"daae07125d229ab59bcf2d4918376278f0701bb7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0650af5d11414a5beebb52663a482d331de5e6c3","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All characters are printable, the \""},{"line_number":87,"context_line":"            \"leading and trailing spaces is allowed, but all the characters \""},{"line_number":88,"context_line":"            \"can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_c8f7c3f3","line":87,"range":{"start_line":87,"start_character":41,"end_line":87,"end_character":43},"updated":"2016-02-22 11:09:07.000000000","message":"technically: s/is/are/","commit_id":"8cbfdaa324f000081dc0e6355ea0ba2788863976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0650af5d11414a5beebb52663a482d331de5e6c3","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All characters are printable, the \""},{"line_number":87,"context_line":"            \"leading and trailing spaces is allowed, but all the characters \""},{"line_number":88,"context_line":"            \"can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_89c01de2","line":88,"range":{"start_line":88,"start_character":13,"end_line":88,"end_character":23},"updated":"2016-02-22 11:09:07.000000000","message":"this is confusing, do you mean, \"can\u0027t be only a space character.\"","commit_id":"8cbfdaa324f000081dc0e6355ea0ba2788863976"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5e80bce96019a9b8f409019837a8a244fe37ab8d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All characters are printable, the \""},{"line_number":87,"context_line":"            \"leading and trailing spaces is allowed, but all the characters \""},{"line_number":88,"context_line":"            \"can\u0027t only include space.\")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"@jsonschema.FormatChecker.cls_checks(\u0027name\u0027, exception.InvalidName)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_fb736c7e","line":88,"range":{"start_line":88,"start_character":13,"end_line":88,"end_character":23},"in_reply_to":"bae84128_89c01de2","updated":"2016-02-22 11:15:33.000000000","message":"I mean \u0027 \u0027 and \u0027          \u0027 aren\u0027t allowed, how about say like this \u0027string only composed with space is allowed\u0027?","commit_id":"8cbfdaa324f000081dc0e6355ea0ba2788863976"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ce5ba656a1d83e66d4d69d3229246b5f2ab0e92c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                 instance):"},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All printable characters, \""},{"line_number":87,"context_line":"            \"including leading and trailing spaces, are allowed, but a string \""},{"line_number":88,"context_line":"            \"that is only space characters is not allowed.\")"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_fe699abf","line":86,"updated":"2016-02-22 11:32:32.000000000","message":"I think we need the _(...) wrappers here.","commit_id":"2d3ea43a4cb70d7dbd6783a0b76648450bc95f59"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"162df5cc4ea439d1a71cbc9af60c4447837c893c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                 instance):"},{"line_number":84,"context_line":"        return True"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        raise exception.InvalidName(reason\u003d\"All printable characters, \""},{"line_number":87,"context_line":"            \"including leading and trailing spaces, are allowed, but a string \""},{"line_number":88,"context_line":"            \"that is only space characters is not allowed.\")"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_14009da9","line":86,"in_reply_to":"bae84128_fe699abf","updated":"2016-02-22 12:26:57.000000000","message":"yes, agree","commit_id":"2d3ea43a4cb70d7dbd6783a0b76648450bc95f59"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3d59108fd4ea66bfb4997e82f58d7448845de06e","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        try:"},{"line_number":202,"context_line":"            result \u003d func(instance)"},{"line_number":203,"context_line":"        except raises:"},{"line_number":204,"context_line":"            raise"},{"line_number":205,"context_line":"        if not result:"},{"line_number":206,"context_line":"            msg \u003d \"%r is not a %r\" % (instance, format)"},{"line_number":207,"context_line":"            raise jsonschema_exc.FormatError(msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bae84128_767626a5","line":204,"range":{"start_line":204,"start_character":12,"end_line":204,"end_character":17},"updated":"2016-02-23 05:39:03.000000000","message":"@Sean, the unittests failure is due to there are some exception raised from jsonschema lib also, like this https://github.com/Julian/jsonschema/blob/master/jsonschema/_format.py#L138\n\nSo we can\u0027t just raise any exception out there. So I changed to use \u0027cause\u0027 field in the line 243.","commit_id":"d290cd9b1586f25e5aac82d4d303bd7891aee641"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"c0f409ac9eee114c3e593052528c9a1895c48227","unresolved":false,"context_lines":[{"line_number":177,"context_line":"       Due to we need understandable validation error message for user,"},{"line_number":178,"context_line":"       This FormatChecker will output the message from cause exception, then"},{"line_number":179,"context_line":"       we can write a custom checker and include understandable message for"},{"line_number":180,"context_line":"       a format."},{"line_number":181,"context_line":"    \"\"\""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def check(self, instance, format):"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_55fb0ac1","line":180,"updated":"2016-02-23 11:51:39.000000000","message":"We need understandable validation errors messages for users. When a custom checker has an exception, the FormatChecker will output a readable message provided by the checker.\n\nSomething like that might be a bit more understandable.","commit_id":"41327b90cc209f0a8926e192ecd4fc80441b31ed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"914eac8297e859aa3b3d257f2309fa20ad77bbaf","unresolved":false,"context_lines":[{"line_number":177,"context_line":"       Due to we need understandable validation error message for user,"},{"line_number":178,"context_line":"       This FormatChecker will output the message from cause exception, then"},{"line_number":179,"context_line":"       we can write a custom checker and include understandable message for"},{"line_number":180,"context_line":"       a format."},{"line_number":181,"context_line":"    \"\"\""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def check(self, instance, format):"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_a1f05892","line":180,"in_reply_to":"bae84128_55fb0ac1","updated":"2016-02-23 13:21:09.000000000","message":"Thanks, Chris","commit_id":"41327b90cc209f0a8926e192ecd4fc80441b31ed"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a7ebd1bfac5fe65639f1ac8390c50db194181165","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        try:"},{"line_number":238,"context_line":"            self.validator.validate(*args, **kwargs)"},{"line_number":239,"context_line":"        except jsonschema.ValidationError as ex:"},{"line_number":240,"context_line":"            if isinstance(ex.cause, exception.InvalidName):"},{"line_number":241,"context_line":"                detail \u003d ex.cause.format_message()"},{"line_number":242,"context_line":"            elif len(ex.path) \u003e 0:"},{"line_number":243,"context_line":"                # NOTE: For whole OpenStack message consistency, this error"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_82082893","line":240,"updated":"2016-02-25 12:42:39.000000000","message":"I don\u0027t love this bit. I really wish we had a more generic way of defining custom errors here. But this gets us the REST interface we want and we can refactor this later.","commit_id":"ef2e882af63a95308eb4aa07861972a441263437"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5d933fb1b2060170dbd91abe7a2679d90d082213","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        try:"},{"line_number":238,"context_line":"            self.validator.validate(*args, **kwargs)"},{"line_number":239,"context_line":"        except jsonschema.ValidationError as ex:"},{"line_number":240,"context_line":"            if isinstance(ex.cause, exception.InvalidName):"},{"line_number":241,"context_line":"                detail \u003d ex.cause.format_message()"},{"line_number":242,"context_line":"            elif len(ex.path) \u003e 0:"},{"line_number":243,"context_line":"                # NOTE: For whole OpenStack message consistency, this error"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_1d68f9b9","line":240,"in_reply_to":"bae84128_82082893","updated":"2016-02-26 07:11:17.000000000","message":"ok, I guess you may still don\u0027t love this. But still want to give another try :) I will try another way later, that should be a way you liked.","commit_id":"ef2e882af63a95308eb4aa07861972a441263437"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"e59bd3b8e6e25580def0ba5734e040a348ceb477","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        except exception.InvalidName as ex:"},{"line_number":243,"context_line":"            raise exception.ValidationError(detail\u003dex.format_message())"},{"line_number":244,"context_line":"        except jsonschema.ValidationError as ex:"},{"line_number":245,"context_line":"            if isinstance(ex.cause, exception.InvalidName):"},{"line_number":246,"context_line":"                detail \u003d ex.cause.format_message()"},{"line_number":247,"context_line":"            elif len(ex.path) \u003e 0:"},{"line_number":248,"context_line":"                # NOTE: For whole OpenStack message consistency, this error"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_6a1f58b7","line":245,"updated":"2016-02-29 13:08:39.000000000","message":"That\u0027s painful, but yeah.","commit_id":"d846fcaf928ad7388b816a888b51b959d8da1ee7"}],"nova/exception.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f15eccf778755db1a988a8a3e87325cbdd8e14d0","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"class InvalidName(Invalid):"},{"line_number":424,"context_line":"    msg_fmt \u003d _(\"The valid format: %(reason)s\")"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"class InstanceInvalidState(Invalid):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_0cbaade1","line":424,"updated":"2016-02-19 14:59:21.000000000","message":"Hmm, seems odd to not localise the reason, but we do localise this bit.","commit_id":"daae07125d229ab59bcf2d4918376278f0701bb7"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"3af756f59741af8ee92d7bfe84ccad38bab70ce4","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"class InvalidName(Invalid):"},{"line_number":424,"context_line":"    msg_fmt \u003d _(\"An invalid \u0027name\u0027 value was provided. \""},{"line_number":425,"context_line":"                \"The name must be: %(reason)s\")"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"class InstanceInvalidState(Invalid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bae84128_dfe582dc","line":425,"range":{"start_line":425,"start_character":17,"end_line":425,"end_character":33},"updated":"2016-02-23 09:06:39.000000000","message":"Here is not exact. \n\nYou are telling the name rule.","commit_id":"f839635b1ade70294a379d7902f2c96c6aaf310d"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e04a659d6e972722d29110f4d0a153897f3975cf","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"class InvalidName(Invalid):"},{"line_number":424,"context_line":"    msg_fmt \u003d _(\"An invalid \u0027name\u0027 value was provided. \""},{"line_number":425,"context_line":"                \"The name must be: %(reason)s\")"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"class InstanceInvalidState(Invalid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"bae84128_3fa62e53","line":425,"range":{"start_line":425,"start_character":17,"end_line":425,"end_character":33},"in_reply_to":"bae84128_dfe582dc","updated":"2016-02-23 09:11:27.000000000","message":"you mean write like \"the rule of name must be\"?","commit_id":"f839635b1ade70294a379d7902f2c96c6aaf310d"}]}
