From 30c0f3114e665acdd99e64bf0d2a7399b33e8d61 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Tue, 20 May 2014 10:44:37 -0700 Subject: [PATCH] ceph_filestore_dump: Add get-omaphdr object command Signed-off-by: David Zafman --- src/tools/ceph_filestore_dump.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/tools/ceph_filestore_dump.cc b/src/tools/ceph_filestore_dump.cc index c85ddf689cdc7..aeea633c86330 100644 --- a/src/tools/ceph_filestore_dump.cc +++ b/src/tools/ceph_filestore_dump.cc @@ -1434,6 +1434,26 @@ int do_rm_omap(ObjectStore *store, coll_t coll, ghobject_t &ghobj, string key) return 0; } +int do_get_omaphdr(ObjectStore *store, coll_t coll, ghobject_t &ghobj) +{ + bufferlist hdrbl; + + int r = store->omap_get_header(coll, ghobj, &hdrbl, true); + if (r < 0) { + cerr << "omap_get_header: " << cpp_strerror(-r) << std::endl; + return r; + } + + string header(hdrbl.c_str(), hdrbl.length()); + if (outistty) { + cleanbin(header); + header.push_back('\n'); + } + cout << header; + + return 0; +} + void usage(po::options_description &desc) { cerr << std::endl; @@ -1924,6 +1944,13 @@ int main(int argc, char **argv) if (r) ret = 1; goto out; + } else if (objcmd == "get-omaphdr") { + if (vm.count("arg1")) + usage(desc); + r = do_get_omaphdr(fs, coll, ghobj); + if (r) + ret = 1; + goto out; } cerr << "Unknown object command '" << objcmd << "'" << std::endl; usage(desc); -- 2.39.5