
On 05/15/2014 10:42 PM, Sheldon wrote:
On 05/15/2014 07:23 PM, 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) you has pass the e.message as code.
you can define a new code such as ""or set code as empty.
"KCHAPI0008E": _("API parameter error: %(err)s"),
or if you do not want to translation: "KCHAPI0008E": _("%(err)s"), or "KCHAPI0008E": _("%(err)s"), Good point, ACK
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') % arg
why do you need to change this code? It seems several patches to improve this 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):