From: David Zafman Date: Thu, 15 May 2014 22:50:48 +0000 (-0700) Subject: ceph_filestore_dump: Add get-attr object command X-Git-Tag: v0.86~180^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=55d43c0e20fc853daec134449b9954248fd7ef31;p=ceph.git ceph_filestore_dump: Add get-attr object command Signed-off-by: David Zafman --- diff --git a/src/tools/ceph_filestore_dump.cc b/src/tools/ceph_filestore_dump.cc index 4b1e669a4bcc..9be629d6b6fe 100644 --- a/src/tools/ceph_filestore_dump.cc +++ b/src/tools/ceph_filestore_dump.cc @@ -1309,6 +1309,26 @@ int do_set_bytes(ObjectStore *store, coll_t coll, ghobject_t &ghobj, int fd) return 0; } +int do_get_attr(ObjectStore *store, coll_t coll, ghobject_t &ghobj, string key) +{ + bufferptr bp; + + int r = store->getattr(coll, ghobj, key.c_str(), bp); + if (r < 0) { + cerr << "getattr: " << cpp_strerror(-r) << std::endl; + return r; + } + + string value(bp.c_str(), bp.length()); + if (outistty) { + cleanbin(value); + value.push_back('\n'); + } + cout << value; + + return 0; +} + void usage(po::options_description &desc) { cerr << std::endl; @@ -1729,6 +1749,13 @@ int main(int argc, char **argv) if (r) ret = 1; goto out; + } else if (objcmd == "get-attr") { + if (vm.count("arg1") == 0) + usage(desc); + r = do_get_attr(fs, coll, ghobj, arg1); + if (r) + ret = 1; + goto out; } cerr << "Unknown object command '" << objcmd << "'" << std::endl; usage(desc);