[PATCH] bug fix: encode the args in KimchiException when is is unicode.

From: ShaoHe Feng <shaohef@linux.vnet.ibm.com> I create a pool with name "kīмсhīPool" When libvirt errors with this pool, it will cause the UnicodeDecodeError. File "/home/shhfeng/work/workdir/kimchi/src/kimchi/model/storagepools.py", line 401, in delete {'name': name, 'err': e.get_error_message()}) File "/home/shhfeng/work/workdir/kimchi/src/kimchi/exception.py", line 37, in __init__ msg = _messages.get(code, code) % args UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 49: ordinal not in range(128) Signed-off-by: ShaoHe Feng <shaohef@linux.vnet.ibm.com> --- src/kimchi/exception.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/kimchi/exception.py b/src/kimchi/exception.py index 74134be..87982ea 100644 --- a/src/kimchi/exception.py +++ b/src/kimchi/exception.py @@ -32,6 +32,9 @@ class KimchiException(Exception): if cherrypy.request.app: msg = self._get_translation(args) else: + for key, value in args.iteritems(): + if isinstance(value, unicode): + args[key] = value.encode('utf-8') msg = _messages.get(code, code) % args pattern = "%s: %s" % (code, msg) -- 1.8.4.2
participants (2)
-
Aline Manera
-
shaohef@linux.vnet.ibm.com