]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_objectstore_tool: Add operation "rm-past-intervals" for testing purposes
authorDavid Zafman <david.zafman@inktank.com>
Thu, 7 Aug 2014 20:31:48 +0000 (13:31 -0700)
committerDavid Zafman <dzafman@redhat.com>
Tue, 3 Mar 2015 17:51:30 +0000 (09:51 -0800)
Signed-off-by: David Zafman <david.zafman@inktank.com>
(cherry picked from commit 3694068b67fd625495c4511390bc5bcbfbbd28f5)

src/tools/ceph_objectstore_tool.cc

index 666cac027d1afc2db8c1326ed753f351080d45a3..4b263b8cc664d69dccb9929cddfde75c80e0fc9c 100644 (file)
@@ -1518,7 +1518,7 @@ int main(int argc, char **argv)
     ("pgid", po::value<string>(&pgidstr),
      "PG id, mandatory except for import, list-lost, fix-lost")
     ("op", po::value<string>(&op),
-     "Arg is one of [info, log, remove, export, import, list, list-lost, fix-lost, list-pgs]")
+     "Arg is one of [info, log, remove, export, import, list, list-lost, fix-lost, list-pgs, rm-past-intervals]")
     ("file", po::value<string>(&file),
      "path of file to export or import")
     ("debug", "Enable diagnostic output to stderr")
@@ -2184,8 +2184,21 @@ int main(int argc, char **argv)
       formatter->close_section();
       formatter->flush(cout);
       cout << std::endl;
+    } else if (op == "rm-past-intervals") {
+      ObjectStore::Transaction tran;
+      ObjectStore::Transaction *t = &tran;
+
+      cout << "Remove past-intervals " << past_intervals << std::endl;
+
+      past_intervals.clear();
+      ret = write_info(*t, map_epoch, info, struct_ver, past_intervals);
+
+      if (ret == 0) {
+        fs->apply_transaction(*t);
+        cout << "Removal succeeded" << std::endl;
+      }
     } else {
-      cerr << "Must provide --op (info, log, remove, export, import, list, list-lost, fix-lost, list-pgs)"
+      cerr << "Must provide --op (info, log, remove, export, import, list, list-lost, fix-lost, list-pgs, rm-past-intervals)"
        << std::endl;
       usage(desc);
     }