From 47ee79704fcc03311f7be418d65391c090fda874 Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Thu, 5 Dec 2013 17:05:33 +0000 Subject: [PATCH] mon: ceph-kvstore-tool: get size of value for prefix/key Signed-off-by: Joao Eduardo Luis --- src/tools/ceph-kvstore-tool.cc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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]); -- 2.47.3