[Kimchi-devel] [PATCH] Exception: fix exception details when not specified

Sheldon shaohef at linux.vnet.ibm.com
Thu May 15 14:48:47 UTC 2014


On 05/15/2014 10:42 PM, Sheldon wrote:
> On 05/15/2014 07:23 PM, lvroyce at linux.vnet.ibm.com wrote:
>> From: Royce Lv <lvroyce at 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 at linux.vnet.ibm.com>
>> Signed-off-by: Zhou Zheng Sheng <zhshzhou at 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.
you can set code as empty  or define a new code such as:
raise InvalidParameter( "KCHAPI0008E", {"err": e.message})
> "KCHAPI0008E": _("API parameter error: %(err)s"),

>
> or if you do not want to translation:
raise InvalidParameter( "KCHAPI0008E", {"err": e.message})
> "KCHAPI0008E": _("%(err)s"),
> or
raise InvalidParameter( "", {"err": e.message})
> "": _("%(err)s"),
>>
>>   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.
>>
>>
>>   class NotFoundError(KimchiException):
>
>


-- 
Thanks and best regards!

Sheldon Feng(冯少合)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center




More information about the Kimchi-devel mailing list