diff options
author | Sage Weil <sage@inktank.com> | 2013-10-22 12:54:09 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-22 12:54:09 -0700 |
commit | 8baeac0df99bd2b5c8bd8ddd407c4049b4c14a30 (patch) | |
tree | 14270b9cd0ad7206bf87166db1f49dd56214559e | |
parent | d60e532e2829d421c2a369f6fc774c3e87b8952a (diff) | |
download | ceph-8baeac0df99bd2b5c8bd8ddd407c4049b4c14a30.tar.gz |
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 <module>
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 <sage@inktank.com>
-rwxr-xr-x | src/ceph.in | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/ceph.in b/src/ceph.in index 6c528a47473..94de9b7f4bd 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: |