summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-22 12:54:09 -0700
committerSage Weil <sage@inktank.com>2013-10-22 12:54:09 -0700
commit8baeac0df99bd2b5c8bd8ddd407c4049b4c14a30 (patch)
tree14270b9cd0ad7206bf87166db1f49dd56214559e
parentd60e532e2829d421c2a369f6fc774c3e87b8952a (diff)
downloadceph-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-xsrc/ceph.in12
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: