From: Radoslaw Zarzynski Date: Fri, 19 Jan 2024 19:48:23 +0000 (+0000) Subject: tools/cot: respect generic, Ceph-wide argvs X-Git-Tag: v19.3.0~38^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=90b4376bcfd6e9f51f5cb982490f524eb7703454;p=ceph.git tools/cot: respect generic, Ceph-wide argvs ``` $ bin/ceph-objectstore-tool --version Must provide --data-path Allowed options: --help produce help message --type arg Arg is one of [bluestore (default), memstore] ``` ``` $ bin/ceph-bluestore-tool --version ceph version 19.0.0-642-g6d93c157068 (6d93c1570681fbf25fff5c48a9ff5bcb7d6d2210) squid (dev) ``` Fixes: https://tracker.ceph.com/issues/64104 Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index bb051df64cd6..eeb15a39248a 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -3490,12 +3490,25 @@ int main(int argc, char **argv) tmp.swap(ceph_option_strings); } - vector ceph_options; - ceph_options.reserve(ceph_options.size() + ceph_option_strings.size()); - for (vector::iterator i = ceph_option_strings.begin(); - i != ceph_option_strings.end(); - ++i) { - ceph_options.push_back(i->c_str()); + boost::intrusive_ptr cct; + { + vector ceph_options; + ceph_options.reserve(ceph_options.size() + ceph_option_strings.size()); + for (vector::iterator i = ceph_option_strings.begin(); + i != ceph_option_strings.end(); + ++i) { + ceph_options.push_back(i->c_str()); + } + int init_flags = 0; + if (vm.count("no-mon-config") > 0) { + init_flags |= CINIT_FLAG_NO_MON_CONFIG; + } + cct = global_init( + nullptr, + ceph_options, + CEPH_ENTITY_TYPE_OSD, + CODE_ENVIRONMENT_UTILITY_NODOUT, + init_flags); } snprintf(fn, sizeof(fn), "%s/type", dpath.c_str()); @@ -3570,16 +3583,6 @@ int main(int argc, char **argv) perror(err.c_str()); return 1; } - int init_flags = 0; - if (vm.count("no-mon-config") > 0) { - init_flags |= CINIT_FLAG_NO_MON_CONFIG; - } - - auto cct = global_init( - NULL, ceph_options, - CEPH_ENTITY_TYPE_OSD, - CODE_ENVIRONMENT_UTILITY_NODOUT, - init_flags); common_init_finish(g_ceph_context); if (debug) { g_conf().set_val_or_die("log_to_stderr", "true");