From 5020bbe29686e6b051a31da5375be03c14dc303e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 30 Oct 2014 11:45:36 -0700 Subject: [PATCH] librados: add new get_pool_stats() variant; deprecate others 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 --- src/include/rados/librados.hpp | 3 ++ src/librados/librados.cc | 87 ++++++++++++++-------------------- 2 files changed, 39 insertions(+), 51 deletions(-) diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index b97bf80ac9f66..a50c078ed62c0 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -990,6 +990,9 @@ namespace librados /* listing objects */ int pool_list(std::list& v); + int get_pool_stats(std::list& v, + stats_map& result); + /// deprecated; use simpler form. categories no longer supported. int get_pool_stats(std::list& v, std::map& stats); /// deprecated; categories no longer supported diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 1e795be5e1b51..97af18c9e8f83 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -1964,69 +1964,54 @@ void librados::Rados::test_blacklist_self(bool set) client->blacklist_self(set); } -int librados::Rados::get_pool_stats(std::list& v, std::map& result) +int librados::Rados::get_pool_stats(std::list& v, + stats_map& result) { - string category; - return get_pool_stats(v, category, result); + map rawresult; + int r = client->get_pool_stats(v, rawresult); + for (map::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& v, string& category, +int librados::Rados::get_pool_stats(std::list& v, std::map& result) { - map 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::iterator p = rawresult.begin(); - p != rawresult.end(); + for (map::iterator p = m.begin(); + p != m.end(); ++p) { - stats_map& c = result[p->first]; - - string cat; - vector cats; - - if (!category.size()) { - cats.push_back(cat); - map::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::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::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& v, + string& category, // unused + std::map& result) +{ + return -EOPNOTSUPP; +} + int librados::Rados::cluster_stat(cluster_stat_t& result) { ceph_statfs stats; -- 2.39.5