
On 05/16/2014 09:59 AM, Zhou Zheng Sheng wrote:
on 2014/05/15 19:23, lvroyce@linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce@linux.vnet.ibm.com>
Not every validation error needs to translate for user, we define user interested errors, other developer interested error should report directly by schema validator, and handled by developer directly. fix exception handling for this situation.
Signed-off-by: Royce Lv <lvroyce@linux.vnet.ibm.com> Signed-off-by: Zhou Zheng Sheng <zhshzhou@linux.vnet.ibm.com> --- src/kimchi/control/utils.py | 6 ++++-- src/kimchi/exception.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/kimchi/control/utils.py b/src/kimchi/control/utils.py index 5e63816..a67f627 100644 --- a/src/kimchi/control/utils.py +++ b/src/kimchi/control/utils.py @@ -98,8 +98,10 @@ def validate_params(params, instance, action): try: validator.validate(request) except ValidationError, e: - raise InvalidParameter(e.schema['error'], {'value': str(e.instance)}) - + if e.schema.get('error'): + raise InvalidParameter(e.schema['error'], {'value': str(e.instance)}) + else: + raise InvalidParameter(e.message)
class UrlSubNode(object):
diff --git a/src/kimchi/exception.py b/src/kimchi/exception.py index fcf60cc..5a292e0 100644 --- a/src/kimchi/exception.py +++ b/src/kimchi/exception.py @@ -62,7 +62,7 @@ class KimchiException(Exception): # itself to a unicode string. args[key] = unicode(value)
- return unicode(translation.gettext(text), 'utf-8') % args + return translation.gettext(text).encode('utf-8') % args Could you explain this change? I don't see obvious significant differences between the old and new code. Because when gettext returns unicode, the decode will raise error: TypeError: decoding Unicode is not supportd That is what things are like when json schema passing error occurs. REF: http://stackoverflow.com/questions/7634715/python-decoding-unicode-is-not-su...
class NotFoundError(KimchiException):