From: Joao Eduardo Luis Date: Thu, 5 Dec 2013 17:05:33 +0000 (+0000) Subject: mon: ceph-kvstore-tool: get size of value for prefix/key X-Git-Tag: v0.73~2^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=47ee79704fcc03311f7be418d65391c090fda874;p=ceph.git mon: ceph-kvstore-tool: get size of value for prefix/key Signed-off-by: Joao Eduardo Luis --- diff --git a/src/tools/ceph-kvstore-tool.cc b/src/tools/ceph-kvstore-tool.cc index 76f68294cbed..5a68d98990df 100644 --- a/src/tools/ceph-kvstore-tool.cc +++ b/src/tools/ceph-kvstore-tool.cc @@ -216,7 +216,7 @@ void usage(const char *pname) << " exists [key]\n" << " get [out ]\n" << " crc \n" - << " get-size\n" + << " get-size [ ]\n" << " set [ver |in ]\n" << " store-copy [num-keys-per-tx]\n" << " store-crc \n" @@ -334,6 +334,26 @@ int main(int argc, const char *argv[]) } else if (cmd == "get-size") { std::cout << "estimated store size: " << st.get_size() << std::endl; + if (argc < 4) + return 0; + + if (argc < 5) { + usage(argv[0]); + return 1; + } + string prefix(argv[3]); + string key(argv[4]); + + bool exists = false; + bufferlist bl = st.get(prefix, key, exists); + if (!exists) { + std::cerr << "(" << prefix << "," << key + << ") does not exist" << std::endl; + return 1; + } + std::cout << "(" << prefix << "," << key + << ") size " << si_t(bl.length()) << std::endl; + } else if (cmd == "set") { if (argc < 7) { usage(argv[0]);