From: Sage Weil Date: Tue, 22 Oct 2013 19:54:09 +0000 (-0700) Subject: ceph: catch exceptions thrown during the rados handle init X-Git-Tag: v0.72-rc1~23^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8baeac0df99bd2b5c8bd8ddd407c4049b4c14a30;p=ceph.git ceph: catch exceptions thrown during the rados handle init In my case, making ceph.conf unreadable triggers an exception here: Traceback (most recent call last): File "./ceph", line 802, in sys.exit(main()) File "./ceph", line 575, in main conf_defaults=conf_defaults, conffile=conffile) File "/home/sage/src/ceph/src/pybind/rados.py", line 221, in __init__ self.conf_read_file(conffile) File "/home/sage/src/ceph/src/pybind/rados.py", line 272, in conf_read_file raise make_ex(ret, "error calling conf_read_file") rados.Error: error calling conf_read_file: errno EACCES Signed-off-by: Sage Weil --- diff --git a/src/ceph.in b/src/ceph.in index 6c528a474734..94de9b7f4bd3 100755 --- a/src/ceph.in +++ b/src/ceph.in @@ -568,10 +568,16 @@ def main(): if parsed_args.cluster: clustername = parsed_args.cluster - cluster_handle = rados.Rados(name=name, clustername=clustername, - conf_defaults=conf_defaults, conffile=conffile) + try: + cluster_handle = rados.Rados(name=name, clustername=clustername, + conf_defaults=conf_defaults, + conffile=conffile) + retargs = cluster_handle.conf_parse_argv(childargs) + except rados.Error as e: + print >> sys.stderr, 'Error initializing cluster client: {0}'.\ + format(e.__class__.__name__) + return 1 - retargs = cluster_handle.conf_parse_argv(childargs) #tmp = childargs childargs = retargs if not childargs: