]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
tools/cot: respect generic, Ceph-wide argvs
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 19 Jan 2024 19:48:23 +0000 (19:48 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 19 Jan 2024 19:50:13 +0000 (19:50 +0000)
```
$ 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 <rzarzyns@redhat.com>
src/tools/ceph_objectstore_tool.cc

index bb051df64cd69186536a959ea2749c2e6b46fcfd..eeb15a39248a924a4af7f494601f8f7603d803d4 100644 (file)
@@ -3490,12 +3490,25 @@ int main(int argc, char **argv)
     tmp.swap(ceph_option_strings);
   }
 
-  vector<const char *> ceph_options;
-  ceph_options.reserve(ceph_options.size() + ceph_option_strings.size());
-  for (vector<string>::iterator i = ceph_option_strings.begin();
-       i != ceph_option_strings.end();
-       ++i) {
-    ceph_options.push_back(i->c_str());
+  boost::intrusive_ptr<CephContext> cct;
+  {
+    vector<const char *> ceph_options;
+    ceph_options.reserve(ceph_options.size() + ceph_option_strings.size());
+    for (vector<string>::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");