From: David Zafman Date: Thu, 15 May 2014 01:32:42 +0000 (-0700) Subject: ceph_filestore_dump: Add list-attrs object command X-Git-Tag: v0.80.10~69^2~82 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=303e4cedd91ca3553e956eec495a05e3136b3c56;p=ceph.git ceph_filestore_dump: Add list-attrs object command Signed-off-by: David Zafman (cherry picked from commit 00c6b0673288ca76fe144575b7af76eaa36f5857) --- diff --git a/src/tools/ceph_filestore_dump.cc b/src/tools/ceph_filestore_dump.cc index 5c4a662e6a80..844c624c82f9 100644 --- a/src/tools/ceph_filestore_dump.cc +++ b/src/tools/ceph_filestore_dump.cc @@ -1186,6 +1186,24 @@ int do_remove_object(ObjectStore *store, coll_t coll, ghobject_t &ghobj) return 0; } +int do_list_attrs(ObjectStore *store, coll_t coll, ghobject_t &ghobj) +{ + map aset; + int r = store->getattrs(coll, ghobj, aset); + if (r < 0) { + cerr << "getattrs: " << cpp_strerror(-r) << std::endl; + return r; + } + + for (map::iterator i = aset.begin();i != aset.end(); ++i) { + string key(i->first); + if (outistty) + cleanbin(key); + cout << key << std::endl; + } + return 0; +} + void usage(po::options_description &desc) { cerr << std::endl; @@ -1558,6 +1576,12 @@ int main(int argc, char **argv) ret = 1; } goto out; + } else if (objcmd == "list-attrs") { + int r = do_list_attrs(fs, coll, ghobj); + if (r) { + ret = 1; + } + goto out; } cerr << "Unknown object command '" << objcmd << "'" << std::endl; usage(desc);