diff options
author | Joao Eduardo Luis <joao.luis@inktank.com> | 2013-05-21 01:46:13 +0100 |
---|---|---|
committer | Joao Eduardo Luis <joao.luis@inktank.com> | 2013-05-21 01:46:13 +0100 |
commit | bb56d7ffe45550b51e6c5174c9e23343cae2cca7 (patch) | |
tree | 6ea828e0218882d0f9b43b114069e6200d8c99f1 | |
parent | 2f193fb931ed09d921e6fa5a985ab87aa4874589 (diff) | |
download | ceph-bb56d7ffe45550b51e6c5174c9e23343cae2cca7.tar.gz |
tools: ceph-monstore-tool: add 'getmonmap' commandwip-monstoretool-foo
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r-- | src/tools/ceph-monstore-tool.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/tools/ceph-monstore-tool.cc b/src/tools/ceph-monstore-tool.cc index 7e1ca6bc5b5..750f6081fd6 100644 --- a/src/tools/ceph-monstore-tool.cc +++ b/src/tools/ceph-monstore-tool.cc @@ -216,6 +216,27 @@ int main(int argc, char **argv) { goto done; } bl.write_fd(fd); + } else if (cmd == "getmonmap") { + if (!store_path.size()) { + std::cerr << "need mon store path" << std::endl; + std::cerr << desc << std::endl; + goto done; + } + version_t v; + if (version == -1) { + v = st.get("monmap", "last_committed"); + } else { + v = version; + } + + bufferlist bl; + /// XXX: this is not ok, osdmap and full should be abstracted somewhere + int r = st.get("monmap", v, bl); + if (r < 0) { + std::cerr << "Error getting map: " << cpp_strerror(r) << std::endl; + goto done; + } + bl.write_fd(fd); } else if (cmd == "dump-trace") { if (tfile.empty()) { std::cerr << "Need trace_file" << std::endl; |