From: Sage Weil Date: Tue, 21 May 2013 20:27:42 +0000 (-0700) Subject: ceph-monstore-tool: implement getmonmap X-Git-Tag: v0.64~78 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5671fa9fe54be9e7764546c6856563dd07a45dad;p=ceph.git ceph-monstore-tool: implement getmonmap Signed-off-by: Sage Weil --- diff --git a/src/tools/ceph-monstore-tool.cc b/src/tools/ceph-monstore-tool.cc index 0f49d4758986..ae608a302f2c 100644 --- a/src/tools/ceph-monstore-tool.cc +++ b/src/tools/ceph-monstore-tool.cc @@ -204,6 +204,27 @@ int main(int argc, char **argv) { } } else if (cmd == "compact") { st.compact(); + } 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 <= 0) { + 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 == "getosdmap") { if (!store_path.size()) { std::cerr << "need mon store path" << std::endl;