]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: add new get_pool_stats() variant; deprecate others
authorSage Weil <sage@redhat.com>
Thu, 30 Oct 2014 18:45:36 +0000 (11:45 -0700)
committerSage Weil <sage@redhat.com>
Mon, 1 Dec 2014 17:36:12 +0000 (09:36 -0800)
A new call will return a simple map of pool -> stats.  Drop the old ones
that did pool -> category -> stats, and deprecate the category one
entirely.

Signed-off-by: Sage Weil <sage@redhat.com>
src/include/rados/librados.hpp
src/librados/librados.cc

index b97bf80ac9f665b98d9eab806a1d9cceb13bdb6f..a50c078ed62c06910aa20da07ce8e4b46f2265bd 100644 (file)
@@ -990,6 +990,9 @@ namespace librados
 
     /* listing objects */
     int pool_list(std::list<std::string>& v);
+    int get_pool_stats(std::list<std::string>& v,
+                      stats_map& result);
+    /// deprecated; use simpler form.  categories no longer supported.
     int get_pool_stats(std::list<std::string>& v,
                       std::map<std::string, stats_map>& stats);
     /// deprecated; categories no longer supported
index 1e795be5e1b51a1a875fab288b28902885948808..97af18c9e8f838573e15a1c8623c5d6b02e2b4ac 100644 (file)
@@ -1964,69 +1964,54 @@ void librados::Rados::test_blacklist_self(bool set)
   client->blacklist_self(set);
 }
 
-int librados::Rados::get_pool_stats(std::list<string>& v, std::map<string, stats_map>& result)
+int librados::Rados::get_pool_stats(std::list<string>& v,
+                                   stats_map& result)
 {
-  string category;
-  return get_pool_stats(v, category, result);
+  map<string,::pool_stat_t> rawresult;
+  int r = client->get_pool_stats(v, rawresult);
+  for (map<string,::pool_stat_t>::iterator p = rawresult.begin();
+       p != rawresult.end();
+       ++p) {
+    pool_stat_t& pv = result[p->first];
+    object_stat_sum_t *sum = &p->second.stats.sum;
+    pv.num_kb = SHIFT_ROUND_UP(sum->num_bytes, 10);
+    pv.num_bytes = sum->num_bytes;
+    pv.num_objects = sum->num_objects;
+    pv.num_object_clones = sum->num_object_clones;
+    pv.num_object_copies = sum->num_object_copies;
+    pv.num_objects_missing_on_primary = sum->num_objects_missing_on_primary;
+    pv.num_objects_unfound = sum->num_objects_unfound;
+    pv.num_objects_degraded = sum->num_objects_degraded;
+    pv.num_rd = sum->num_rd;
+    pv.num_rd_kb = sum->num_rd_kb;
+    pv.num_wr = sum->num_wr;
+    pv.num_wr_kb = sum->num_wr_kb;
+  }
+  return r;
 }
 
-int librados::Rados::get_pool_stats(std::list<string>& v, string& category,
+int librados::Rados::get_pool_stats(std::list<string>& v,
                                    std::map<string, stats_map>& result)
 {
-  map<string,::pool_stat_t> rawresult;
-  int r = client->get_pool_stats(v, rawresult);
+  stats_map m;
+  int r = get_pool_stats(v, m);
   if (r < 0)
     return r;
-  for (map<string,::pool_stat_t>::iterator p = rawresult.begin();
-       p != rawresult.end();
+  for (map<string,pool_stat_t>::iterator p = m.begin();
+       p != m.end();
        ++p) {
-    stats_map& c = result[p->first];
-
-    string cat;
-    vector<string> cats;
-
-    if (!category.size()) {
-      cats.push_back(cat);
-      map<string,object_stat_sum_t>::iterator iter;
-      for (iter = p->second.stats.cat_sum.begin(); iter != p->second.stats.cat_sum.end(); ++iter) {
-        cats.push_back(iter->first);
-      }
-    } else {
-      cats.push_back(category);
-    }
-
-    vector<string>::iterator cat_iter;
-    for (cat_iter = cats.begin(); cat_iter != cats.end(); ++cat_iter) {
-      string& cur_category = *cat_iter;
-      object_stat_sum_t *sum;
-
-      if (!cur_category.size()) {
-         sum = &p->second.stats.sum;
-      } else {
-        map<string,object_stat_sum_t>::iterator iter = p->second.stats.cat_sum.find(cur_category);
-        if (iter == p->second.stats.cat_sum.end())
-          continue;
-        sum = &iter->second;
-      }
-
-      pool_stat_t& pv = c[cur_category];
-      pv.num_kb = SHIFT_ROUND_UP(sum->num_bytes, 10);
-      pv.num_bytes = sum->num_bytes;
-      pv.num_objects = sum->num_objects;
-      pv.num_object_clones = sum->num_object_clones;
-      pv.num_object_copies = sum->num_object_copies;
-      pv.num_objects_missing_on_primary = sum->num_objects_missing_on_primary;
-      pv.num_objects_unfound = sum->num_objects_unfound;
-      pv.num_objects_degraded = sum->num_objects_degraded;
-      pv.num_rd = sum->num_rd;
-      pv.num_rd_kb = sum->num_rd_kb;
-      pv.num_wr = sum->num_wr;
-      pv.num_wr_kb = sum->num_wr_kb;
-    }
+    result[p->first][string()] = p->second;
   }
   return r;
 }
 
+int librados::Rados::get_pool_stats(std::list<string>& v,
+                                   string& category, // unused
+                                   std::map<string, stats_map>& result)
+{
+  return -EOPNOTSUPP;
+}
+
 int librados::Rados::cluster_stat(cluster_stat_t& result)
 {
   ceph_statfs stats;