]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add/remove data_pg_pools from mdsmap
authorSage Weil <sage@newdream.net>
Wed, 17 Aug 2011 23:53:28 +0000 (16:53 -0700)
committerSage Weil <sage@newdream.net>
Wed, 17 Aug 2011 23:53:48 +0000 (16:53 -0700)
Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/MDSMap.cc
src/mds/MDSMap.h
src/mon/MDSMonitor.cc

index cefe1c0d4b86eb979d3e1b497006f7ff99da9bbe..e3a948a41d5cfd6caea70da6cca564ba483c12f9 100644 (file)
@@ -120,6 +120,11 @@ void MDSMap::dump(Formatter *f) const
     f->close_section();
   }
   f->close_section();
+  f->open_array_section("data_pools");
+  for (vector<__u32>::const_iterator p = data_pg_pools.begin(); p != data_pg_pools.end(); ++p)
+    f->dump_int("pool", *p);
+  f->close_section();
+  f->dump_int("metadata_pool", metadata_pg_pool);
 }
 
 void MDSMap::print(ostream& out) 
@@ -140,6 +145,8 @@ void MDSMap::print(ostream& out)
       << "up\t" << up << "\n"
       << "failed\t" << failed << "\n"
       << "stopped\t" << stopped << "\n";
+  out << "data_pools\t" << data_pg_pools << "\n";
+  out << "metadata_pool\t" << metadata_pg_pool << "\n";
 
   multimap< pair<unsigned,unsigned>, uint64_t > foo;
   for (map<uint64_t,mds_info_t>::iterator p = mds_info.begin();
index 36e4c04d16040f1e3bf0cf700bc1ec91e4150fe2..54adf3d991b31990955754e2b61a857fbc1607d3 100644 (file)
@@ -16,6 +16,8 @@
 #ifndef CEPH_MDSMAP_H
 #define CEPH_MDSMAP_H
 
+#include <errno.h>
+
 #include "include/types.h"
 #include "common/Clock.h"
 #include "msg/Message.h"
@@ -266,6 +268,21 @@ public:
   }
   int get_num_failed() { return failed.size(); }
 
+  // data pools
+  void add_data_pg_pool(__u32 poolid) {
+    data_pg_pools.push_back(poolid);
+  }
+  int remove_data_pg_pool(__u32 poolid) {
+    for (vector<__u32>::iterator p = data_pg_pools.begin();
+        p != data_pg_pools.end();
+        ++p) {
+      if (*p == poolid) {
+       data_pg_pools.erase(p);
+       return 0;
+      }
+    }
+    return -ENOENT;
+  }
 
   // sets
   void get_mds_set(set<int>& s) {
index 46445ec8316b8175610d2c10d4d92c003c591810..c4a907cfeb28601e45cbaeb4075694b5d287e497 100644 (file)
@@ -821,6 +821,16 @@ bool MDSMonitor::prepare_command(MMonCommand *m)
          r = -ENOENT;
        }
       }
+    } else if (m->cmd[1] == "add_data_pool" && m->cmd.size() == 3) {
+      int poolid = atoi(m->cmd[2].c_str());
+      pending_mdsmap.add_data_pg_pool(poolid);
+      ss << "added data pool " << poolid << " to mdsmap";
+      r = 0;
+    } else if (m->cmd[1] == "remove_data_pool" && m->cmd.size() == 3) {
+      int poolid = atoi(m->cmd[2].c_str());
+      r = pending_mdsmap.remove_data_pg_pool(poolid);
+      if (r == 0)
+       ss << "removed data pool " << poolid << " from mdsmap";
     } else if (m->cmd[1] == "newfs" && m->cmd.size() == 4) {
       MDSMap newmap(g_ceph_context);
       int metadata = atoi(m->cmd[2].c_str());