[Kimchi-devel] [PATCH] issue #330: Properly log the error message when login fails
Sheldon
shaohef at linux.vnet.ibm.com
Thu Mar 6 15:17:31 UTC 2014
On 03/06/2014 11:12 PM, Sheldon wrote:
> On 03/06/2014 10:53 PM, Aline Manera wrote:
>> On 03/06/2014 06:41 AM, Sheldon wrote:
>>> On 03/05/2014 03:35 AM, Aline Manera wrote:
>>>> From: Aline Manera <alinefm at br.ibm.com>
>>>>
>>>> The error message and all its parameters must be string.
>>>> So convert error code to string in order to accomplish it.
>>>>
>>>> Signed-off-by: Aline Manera <alinefm at br.ibm.com>
>>>> ---
>>>> src/kimchi/auth.py | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/kimchi/auth.py b/src/kimchi/auth.py
>>>> index af3b610..b16f2db 100644
>>>> --- a/src/kimchi/auth.py
>>>> +++ b/src/kimchi/auth.py
>>>> @@ -107,7 +107,7 @@ def authenticate(username, password,
>>>> service="passwd"):
>>>> try:
>>>> auth.authenticate()
>>>> except PAM.error, (resp, code):
>>>> - msg_args = {'userid': username, 'code': code}
>>>> + msg_args = {'userid': username, 'code': str(code)}
>>>> raise OperationFailed("KCHAUTH0001E", msg_args)
>>>>
>>>> return True
>>> How about the follow change?
>>> It can avoid call str() before we raise KimchiException Everywhere.
>>> Also I think it is not good to other developers to call str
>>> explicitly Everywhere.
>>>
>>> diff --git a/src/kimchi/exception.py b/src/kimchi/exception.py
>>> index 71a4d11..73e88ce 100644
>>> --- a/src/kimchi/exception.py
>>> +++ b/src/kimchi/exception.py
>>> @@ -50,7 +50,7 @@ class KimchiException(Exception):
>>> translation = gettext
>>>
>>> for key, value in args.iteritems():
>>> - if not isinstance(value, unicode):
>>> + if isinstance(value, str):
>>> args[key] = unicode(value, 'utf-8')
>>>
>>> return unicode(translation.gettext(text), 'utf-8') % args
>>>
>>>
>>>
>>
>> What about always convert to string before to unicode?
>>
>> if not isinstance(value, unicode):
>> args[key] = unicode(*str*(value), 'utf-8')
> This is also OK. seems it is more understand to most python developer.
> actually it is same effect with the above code I suggested.
>
> AFAK, seems two types has no string representation, one is unicode and
> another is object derived from nothing.
sorry, unicode has string representation. but it make no sense. For it
will raise UnicodeEncodeError.
>
> The later object derived from nothing, we can consider it is a bug.
> Kimchi do not allowed this. class c1(): pass
> But I'm not worry about it.
> IMO, no one will not pass this instance of object to KimchiException
> as args.
>
> we just allow objects derived from python object class in kimchi,
> class c2(object): pass
>
>
>
>>
>> That way we guarantee everything will be unicode in the end.
>>
>
>
> --
> Thanks and best regards!
>
> Sheldon Feng(???)<shaohef at linux.vnet.ibm.com>
> IBM Linux Technology Center
>
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
--
Thanks and best regards!
Sheldon Feng(???)<shaohef at linux.vnet.ibm.com>
IBM Linux Technology Center
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140306/923253f5/attachment.html>
More information about the Kimchi-devel
mailing list