]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-monstore-tool: dump-keys command
authorSage Weil <sage@inktank.com>
Tue, 21 May 2013 18:03:34 +0000 (11:03 -0700)
committerSage Weil <sage@inktank.com>
Tue, 21 May 2013 19:16:24 +0000 (12:16 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mon/MonitorDBStore.h
src/tools/ceph-monstore-tool.cc

index 1bdb4d22c83e9ed56f05b3c68c5fb979c8558211..f10d96d58a8606fd2672379bd5a77f9ebf0895ef 100644 (file)
@@ -402,6 +402,13 @@ class MonitorDBStore
     return iter;
   }
 
+  KeyValueDB::WholeSpaceIterator get_iterator() {
+    KeyValueDB::WholeSpaceIterator iter;
+    iter = db->get_snapshot_iterator();
+    iter->seek_to_first();
+    return iter;
+  }
+
   int get(const string& prefix, const string& key, bufferlist& bl) {
     set<string> k;
     k.insert(key);
index 7e1ca6bc5b5b3a72c0083f26a61ff34219576c24..c1370ab258f2999df14ee720080311e09b4df05c 100644 (file)
@@ -164,7 +164,7 @@ int main(int argc, char **argv) {
   }
 
   global_init(
-    &def_args, ceph_options, CEPH_ENTITY_TYPE_OSD,
+    &def_args, ceph_options, CEPH_ENTITY_TYPE_MON,
     CODE_ENVIRONMENT_UTILITY, 0);
   common_init_finish(g_ceph_context);
   g_ceph_context->_conf->apply_changes(NULL);
@@ -195,7 +195,14 @@ int main(int argc, char **argv) {
       goto done;
     }
   }
-  if (cmd == "getosdmap") {
+  if (cmd == "dump-keys") {
+    KeyValueDB::WholeSpaceIterator iter = st.get_iterator();
+    while (iter->valid()) {
+      pair<string,string> key(iter->raw_key());
+      cout << key.first << " / " << key.second << std::endl;
+      iter->next();
+    }
+  } else if (cmd == "getosdmap") {
     if (!store_path.size()) {
       std::cerr << "need mon store path" << std::endl;
       std::cerr << desc << std::endl;