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>
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: