]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-monstore-tool: implement getmonmap
authorSage Weil <sage@inktank.com>
Tue, 21 May 2013 20:27:42 +0000 (13:27 -0700)
committerSage Weil <sage@inktank.com>
Tue, 21 May 2013 20:27:42 +0000 (13:27 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/tools/ceph-monstore-tool.cc

index 0f49d4758986dcc49679c2fb17fe759695b7068b..ae608a302f2c017ce5b7fc670c6dfd2e948976a5 100644 (file)
@@ -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;