From: David Zafman Date: Thu, 7 Aug 2014 20:31:48 +0000 (-0700) Subject: ceph_objectstore_tool: Add operation "rm-past-intervals" for testing purposes X-Git-Tag: v0.86~180^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3694068b67fd625495c4511390bc5bcbfbbd28f5;p=ceph.git ceph_objectstore_tool: Add operation "rm-past-intervals" for testing purposes Signed-off-by: David Zafman --- diff --git a/src/tools/ceph_objectstore_tool.cc b/src/tools/ceph_objectstore_tool.cc index d415a87d6757..1ca6c1147c80 100644 --- a/src/tools/ceph_objectstore_tool.cc +++ b/src/tools/ceph_objectstore_tool.cc @@ -1520,7 +1520,7 @@ int main(int argc, char **argv) ("pgid", po::value(&pgidstr), "PG id, mandatory except for import, list-lost, fix-lost") ("op", po::value(&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(&file), "path of file to export or import") ("debug", "Enable diagnostic output to stderr") @@ -2186,8 +2186,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); }