From c77683fcc6e8e64bf7cdf4acc957a02c91366aad Mon Sep 17 00:00:00 2001 From: David Zafman Date: Fri, 12 Apr 2019 13:09:43 -0700 Subject: [PATCH] ceph-objectstore-tool: Rename dump-import to dump-export If user specifies dump-import it will still work, but isn't in the usage that way. Fixes: http://tracker.ceph.com/issues/39284 Signed-off-by: David Zafman (cherry picked from commit 96861a8116242bdef487087348c24c97723dfafc) Conflicts: qa/standalone/special/ceph_objectstore_tool.py src/tools/ceph_objectstore_tool.cc - trivial resolution --- .../special/ceph_objectstore_tool.py | 6 ++--- src/tools/ceph_objectstore_tool.cc | 24 +++++++++++-------- src/tools/ceph_objectstore_tool.h | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/qa/standalone/special/ceph_objectstore_tool.py b/qa/standalone/special/ceph_objectstore_tool.py index 10f4a931f46b7..bb226ee4a95db 100755 --- a/qa/standalone/special/ceph_objectstore_tool.py +++ b/qa/standalone/special/ceph_objectstore_tool.py @@ -1027,7 +1027,7 @@ def main(argv): # Specify a bad --op command cmd = (CFSD_PREFIX + "--op oops").format(osd=ONEOSD) - ERRORS += test_failure(cmd, "Must provide --op (info, log, remove, mkfs, fsck, repair, export, export-remove, import, list, fix-lost, list-pgs, dump-journal, dump-super, meta-list, get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, dump-import, trim-pg-log)") + ERRORS += test_failure(cmd, "Must provide --op (info, log, remove, mkfs, fsck, repair, export, export-remove, import, list, fix-lost, list-pgs, dump-journal, dump-super, meta-list, get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, dump-export, trim-pg-log)") # Provide just the object param not a command cmd = (CFSD_PREFIX + "object").format(osd=ONEOSD) @@ -1771,11 +1771,11 @@ def main(argv): for pg in PGS: file = os.path.join(dir, pg) # Make sure this doesn't crash - cmd = (CFSD_PREFIX + "--op dump-import --file {file}").format(osd=osd, file=file) + cmd = (CFSD_PREFIX + "--op dump-export --file {file}").format(osd=osd, file=file) logging.debug(cmd) ret = call(cmd, shell=True, stdout=nullfd) if ret != 0: - logging.error("Dump-import failed from {file} with {ret}".format(file=file, ret=ret)) + logging.error("Dump-export failed from {file} with {ret}".format(file=file, ret=ret)) IMP_ERRORS += 1 # This should do nothing cmd = (CFSD_PREFIX + "--op import --file {file} --dry-run").format(osd=osd, file=file) diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index fd026f860cc59..9c9007e157d6c 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1587,7 +1587,7 @@ void filter_divergent_priors(spg_t import_pgid, const OSDMap &curmap, } } -int ObjectStoreTool::dump_import(Formatter *formatter) +int ObjectStoreTool::dump_export(Formatter *formatter) { bufferlist ebl; pg_info_t info; @@ -1642,7 +1642,7 @@ int ObjectStoreTool::dump_import(Formatter *formatter) return ret; if (debug) { - cerr << "dump_import: Section type " << std::to_string(type) << std::endl; + cerr << "dump_export: Section type " << std::to_string(type) << std::endl; } if (type >= END_OF_TYPES) { cerr << "Skipping unknown section type" << std::endl; @@ -3113,7 +3113,7 @@ int main(int argc, char **argv) "Pool name, mandatory for apply-layout-settings if --pgid is not specified") ("op", po::value(&op), "Arg is one of [info, log, remove, mkfs, fsck, repair, fuse, dup, export, export-remove, import, list, fix-lost, list-pgs, dump-journal, dump-super, meta-list, " - "get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, apply-layout-settings, update-mon-db, dump-import, trim-pg-log]") + "get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, apply-layout-settings, update-mon-db, dump-export, trim-pg-log]") ("epoch", po::value(&epoch), "epoch# for get-osdmap and get-inc-osdmap, the current epoch in use if not specified") ("file", po::value(&file), @@ -3171,6 +3171,10 @@ int main(int argc, char **argv) return 1; } + // Compatibility with previous option name + if (op == "dump-import") + op = "dump-export"; + debug = (vm.count("debug") > 0); force = (vm.count("force") > 0); @@ -3239,7 +3243,7 @@ int main(int argc, char **argv) type = "bluestore"; } if (!vm.count("data-path") && - op != "dump-import" && + op != "dump-export" && !(op == "dump-journal" && type == "filestore")) { cerr << "Must provide --data-path" << std::endl; usage(desc); @@ -3288,7 +3292,7 @@ int main(int argc, char **argv) } else { file_fd = open(file.c_str(), O_WRONLY|O_CREAT|O_TRUNC, 0666); } - } else if (op == "import" || op == "dump-import" || op == "set-osdmap" || op == "set-inc-osdmap") { + } else if (op == "import" || op == "dump-export" || op == "set-osdmap" || op == "set-inc-osdmap") { if (!vm.count("file") || file == "-") { if (isatty(STDIN_FILENO)) { cerr << "stdin is a tty and no --file filename specified" << std::endl; @@ -3303,7 +3307,7 @@ int main(int argc, char **argv) ObjectStoreTool tool = ObjectStoreTool(file_fd, dry_run); if (vm.count("file") && file_fd == fd_none && !dry_run) { - cerr << "--file option only applies to import, dump-import, export, export-remove, " + cerr << "--file option only applies to import, dump-export, export, export-remove, " << "get-osdmap, set-osdmap, get-inc-osdmap or set-inc-osdmap" << std::endl; return 1; } @@ -3353,10 +3357,10 @@ int main(int argc, char **argv) return 0; } - if (op == "dump-import") { - int ret = tool.dump_import(formatter); + if (op == "dump-export") { + int ret = tool.dump_export(formatter); if (ret < 0) { - cerr << "dump-import: " + cerr << "dump-export: " << cpp_strerror(ret) << std::endl; return 1; } @@ -3852,7 +3856,7 @@ int main(int argc, char **argv) // before complaining about a bad pgid if (!vm.count("objcmd") && op != "export" && op != "export-remove" && op != "info" && op != "log" && op != "mark-complete" && op != "trim-pg-log") { cerr << "Must provide --op (info, log, remove, mkfs, fsck, repair, export, export-remove, import, list, fix-lost, list-pgs, dump-journal, dump-super, meta-list, " - "get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, dump-import, trim-pg-log)" + "get-osdmap, set-osdmap, get-inc-osdmap, set-inc-osdmap, mark-complete, dump-export, trim-pg-log)" << std::endl; usage(desc); ret = 1; diff --git a/src/tools/ceph_objectstore_tool.h b/src/tools/ceph_objectstore_tool.h index 3db61df9afba3..aafe886ba6970 100644 --- a/src/tools/ceph_objectstore_tool.h +++ b/src/tools/ceph_objectstore_tool.h @@ -24,7 +24,7 @@ class ObjectStoreTool : public RadosDump : RadosDump(file_fd, dry_run) {} - int dump_import(Formatter *formatter); + int dump_export(Formatter *formatter); int do_import(ObjectStore *store, OSDSuperblock& sb, bool force, std::string pgidstr); int do_export(ObjectStore *fs, coll_t coll, spg_t pgid, -- 2.39.5