From: Rishabh Dave Date: Mon, 7 May 2018 12:57:13 +0000 (+0000) Subject: rados.pyx: make all exceptions accept keyword arguments X-Git-Tag: v14.0.0~168^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=16458025da1c5854f1ef3840ac7d58fb5a715c64;p=ceph-ci.git rados.pyx: make all exceptions accept keyword arguments Moving the code that makes exceptions accept keyword arguments from the exception OSError to Error prevents a crash when exceptions not inheriting OSError are received. Fixes: http://tracker.ceph.com/issues/24033 Signed-off-by: Rishabh Dave --- diff --git a/src/pybind/rados/rados.pyx b/src/pybind/rados/rados.pyx index 740732c6d75..a795fd7344e 100644 --- a/src/pybind/rados/rados.pyx +++ b/src/pybind/rados/rados.pyx @@ -326,21 +326,12 @@ ADMIN_AUID = 0 class Error(Exception): """ `Error` class, derived from `Exception` """ - pass - - -class InvalidArgumentError(Error): - pass - - -class OSError(Error): - """ `OSError` class, derived from `Error` """ def __init__(self, message, errno=None): - super(OSError, self).__init__(message) + super(Exception, self).__init__(message) self.errno = errno def __str__(self): - msg = super(OSError, self).__str__() + msg = super(Exception, self).__str__() if self.errno is None: return msg return '[errno {0}] {1}'.format(self.errno, msg) @@ -348,6 +339,13 @@ class OSError(Error): def __reduce__(self): return (self.__class__, (self.message, self.errno)) +class InvalidArgumentError(Error): + pass + +class OSError(Error): + """ `OSError` class, derived from `Error` """ + pass + class InterruptedOrTimeoutError(OSError): """ `InterruptedOrTimeoutError` class, derived from `OSError` """ pass