]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: convert none str to str before printing it 13187/head
authorKefu Chai <kchai@redhat.com>
Tue, 3 Jan 2017 12:40:00 +0000 (20:40 +0800)
committerAlexey Sheplyakov <asheplyakov@mirantis.com>
Mon, 30 Jan 2017 12:03:27 +0000 (16:03 +0400)
Error('somethings goes wrong', e) is thrown if exception `e` is caught
in ceph-disk, where e is not a string. so we can not just concat it in
Error's __str__(). so cast it to str before doing so.

introduced by d0e29c7

Fixes: http://tracker.ceph.com/issues/18371
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 5e0dd1e7df43a3be589d17878714756a22052d8e)

src/ceph-disk/ceph_disk/main.py

index ffe0311ceb798dd2f6a2fd98d4f2fd4f9c378e45..2a929d72547848ddb4ee0227b8f1a4dc5cb88c12 100755 (executable)
@@ -268,7 +268,12 @@ class Error(Exception):
 
     def __str__(self):
         doc = _bytes2str(self.__doc__.strip())
-        return ': '.join([doc] + [_bytes2str(a) for a in self.args])
+        try:
+            str_type = basestring
+        except NameError:
+            str_type = str
+        args = [a if isinstance(a, str_type) else str(a) for a in self.args]
+        return ': '.join([doc] + [_bytes2str(a) for a in args])
 
 
 class MountError(Error):