]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-objectstore-tool: Add dump-super to show OSDSuperblock in format specified
authorDavid Zafman <dzafman@redhat.com>
Tue, 19 May 2015 03:22:03 +0000 (20:22 -0700)
committerDavid Zafman <dzafman@redhat.com>
Thu, 25 Feb 2016 20:50:23 +0000 (12:50 -0800)
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 99d7663f870abfa82711dbf0451334f7d6c883d8)

src/tools/ceph_objectstore_tool.cc

index 85bc799f5a857971adf891c92badf46c2332ace6..2d7c4d2ddf2c5eebcab7c18040047b7f40415f46 100644 (file)
@@ -2534,9 +2534,9 @@ int main(int argc, char **argv)
     ("journal-path", po::value<string>(&jpath),
      "path to journal, mandatory for filestore type")
     ("pgid", po::value<string>(&pgidstr),
-     "PG id, mandatory except for import, fix-lost, list-pgs, set-allow-sharded-objects, dump-journal")
+     "PG id, mandatory except for import, fix-lost, list-pgs, set-allow-sharded-objects, dump-journal, dump-super")
     ("op", po::value<string>(&op),
-     "Arg is one of [info, log, remove, export, import, list, fix-lost, list-pgs, rm-past-intervals, set-allow-sharded-objects, dump-journal]")
+     "Arg is one of [info, log, remove, export, import, list, fix-lost, list-pgs, rm-past-intervals, set-allow-sharded-objects, dump-journal, dump-super]")
     ("file", po::value<string>(&file),
      "path of file to export or import")
     ("format", po::value<string>(&format)->default_value("json-pretty"),
@@ -2944,8 +2944,9 @@ int main(int argc, char **argv)
   // The dump-journal op isn't here because it is handled earlier.
   // The dump-journal-mount op is undocumented so not in the usage.
   if (op != "list" && op != "import" && op != "fix-lost"
-      && op != "list-pgs"  && op != "set-allow-sharded-objects" &&
-      op != "dump-journal-mount" && (pgidstr.length() == 0)) {
+      && op != "list-pgs"  && op != "set-allow-sharded-objects"
+      && op != "dump-journal-mount" && op != "dump-super"
+      && (pgidstr.length() == 0)) {
     cerr << "Must provide pgid" << std::endl;
     usage(desc);
     ret = 1;
@@ -3403,6 +3404,12 @@ int main(int argc, char **argv)
         fs->apply_transaction(*t);
         cout << "Removal succeeded" << std::endl;
       }
+    } else if (op == "dump-super") {
+      formatter->open_object_section("superblock");
+      superblock.dump(formatter);
+      formatter->close_section();
+      formatter->flush(cout);
+      cout << std::endl;
     } else {
       cerr << "Must provide --op (info, log, remove, export, import, list, fix-lost, list-pgs, rm-past-intervals)"
        << std::endl;