]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: drop PGMapStatService
authorSage Weil <sage@redhat.com>
Mon, 28 Aug 2017 20:21:13 +0000 (16:21 -0400)
committerSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 14:18:03 +0000 (10:18 -0400)
There is only one user and one implementation; this just makes the
code hard to read.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mgr/ClusterState.cc
src/mgr/ClusterState.h
src/mgr/DaemonServer.cc
src/mon/PGMap.h
src/osd/OSDMap.cc
src/osd/OSDMap.h

index b727ac1867e96ebd1279eadc66900b3652e2a623..70eea257199f3db9aea6e600835c2ad827659954 100644 (file)
@@ -29,8 +29,7 @@ ClusterState::ClusterState(
   : monc(monc_),
     objecter(objecter_),
     lock("ClusterState"),
-    mgr_map(mgrmap),
-    pgservice(pg_map)
+    mgr_map(mgrmap)
 {}
 
 void ClusterState::set_objecter(Objecter *objecter_)
index 9513c763bd0ad2790a5b01e2ba810fc281f3032b..edc911ba6a63fd1a7e490367cf7c6034540170c6 100644 (file)
@@ -47,8 +47,6 @@ protected:
   PGMap pg_map;
   PGMap::Incremental pending_inc;
 
-  PGMapStatService pgservice;
-
   bufferlist health_json;
   bufferlist mon_status_json;
 
@@ -105,14 +103,6 @@ public:
     return std::forward<Callback>(cb)(pg_map, std::forward<Args>(args)...);
   }
 
-  template<typename Callback, typename...Args>
-  auto with_pgservice(Callback&& cb, Args&&...args) const ->
-    decltype(cb(pgservice, std::forward<Args>(args)...))
-  {
-    Mutex::Locker l(lock);
-    return std::forward<Callback>(cb)(pg_map, std::forward<Args>(args)...);
-  }
-
   template<typename... Args>
   void with_monmap(Args &&... args) const
   {
index ff520b17359478465ca3cb4ca9f179a178aa6294..c5f31c8503a6cf51d155aa5d2af308ef17577cf7 100644 (file)
@@ -914,9 +914,9 @@ bool DaemonServer::handle_command(MCommand *m)
   } else if (prefix == "osd df") {
     string method;
     cmd_getval(g_ceph_context, cmdctx->cmdmap, "output_method", method);
-    r = cluster_state.with_pgservice([&](const PGMapStatService& pgservice) {
+    r = cluster_state.with_pgmap([&](const PGMap& pgmap) {
        return cluster_state.with_osdmap([&](const OSDMap& osdmap) {
-           print_osd_utilization(osdmap, &pgservice, ss,
+           print_osd_utilization(osdmap, pgmap, ss,
                                  f.get(), method == "tree");
                                  
            cmdctx->odata.append(ss);
index 32282273834200e2f46deafddc1033eaa44a6ca6..0e61f02d8bfdf569816a2344ab054b51b25aa5aa 100644 (file)
@@ -412,6 +412,18 @@ public:
     return pool_stat_t();
   }
 
+  const osd_stat_t& get_osd_sum() const {
+    return osd_sum;
+  }
+
+  const osd_stat_t *get_osd_stat(int osd) const {
+    auto i = osd_stat.find(osd);
+    if (i == osd_stat.end()) {
+      return nullptr;
+    }
+    return &i->second;
+  }
+
 
   void update_pg(pg_t pgid, bufferlist& bl);
   void remove_pg(pg_t pgid);
@@ -590,92 +602,4 @@ namespace reweight {
                     Formatter *f);
 }
 
-
-class PGMapStatService : virtual public PGStatService {
-protected:
-  const PGMap& pgmap;
-public:
-  PGMapStatService(const PGMap& o)
-    : pgmap(o) {}
-
-  bool is_readable() const override { return true; }
-
-  const pool_stat_t* get_pool_stat(int64_t poolid) const override {
-    auto i = pgmap.pg_pool_sum.find(poolid);
-    if (i != pgmap.pg_pool_sum.end()) {
-      return &i->second;
-    }
-    return nullptr;
-  }
-
-  const osd_stat_t& get_osd_sum() const override { return pgmap.osd_sum; }
-
-  const osd_stat_t *get_osd_stat(int osd) const override {
-    auto i = pgmap.osd_stat.find(osd);
-    if (i == pgmap.osd_stat.end()) {
-      return nullptr;
-    }
-    return &i->second;
-  }
-  const mempool::pgmap::unordered_map<int32_t,osd_stat_t>& get_osd_stat() const override {
-    return pgmap.osd_stat;
-  }
-  float get_full_ratio() const override { return pgmap.full_ratio; }
-  float get_nearfull_ratio() const override { return pgmap.nearfull_ratio; }
-
-  bool have_creating_pgs() const override {
-    return !pgmap.creating_pgs.empty();
-  }
-  bool is_creating_pg(pg_t pgid) const override {
-    return pgmap.creating_pgs.count(pgid);
-  }
-
-  epoch_t get_min_last_epoch_clean() const override {
-    return pgmap.get_min_last_epoch_clean();
-  }
-
-  bool have_full_osds() const override { return !pgmap.full_osds.empty(); }
-  bool have_nearfull_osds() const override {
-    return !pgmap.nearfull_osds.empty();
-  }
-
-  size_t get_num_pg_by_osd(int osd) const override {
-    return pgmap.get_num_pg_by_osd(osd);
-  }
-  ceph_statfs get_statfs(OSDMap& osd_map,
-                        boost::optional<int64_t> data_pool) const override {
-    ceph_statfs statfs;
-    statfs.kb = pgmap.osd_sum.kb;
-    statfs.kb_used = pgmap.osd_sum.kb_used;
-    statfs.kb_avail = pgmap.osd_sum.kb_avail;
-    statfs.num_objects = pgmap.pg_sum.stats.sum.num_objects;
-    return statfs;
-  }
-  void print_summary(Formatter *f, ostream *out) const override {
-    pgmap.print_summary(f, out);
-  }
-  virtual void dump_info(Formatter *f) const override {
-    f->dump_object("pgmap", pgmap);
-  }
-  void dump_fs_stats(stringstream *ss,
-                    Formatter *f,
-                    bool verbose) const override {
-    pgmap.dump_fs_stats(ss, f, verbose);
-  }
-  void dump_pool_stats(const OSDMap& osdm, stringstream *ss, Formatter *f,
-                      bool verbose) const override {
-    pgmap.dump_pool_stats_full(osdm, ss, f, verbose);
-  }
-
-  int process_pg_command(const string& prefix,
-                        const map<string,cmd_vartype>& cmdmap,
-                        const OSDMap& osdmap,
-                        Formatter *f,
-                        stringstream *ss,
-                        bufferlist *odata) const override {
-    return process_pg_map_command(prefix, cmdmap, pgmap, osdmap, f, ss, odata);
-  }
-};
-
-
 #endif
index dc78ab9a83f299465d407e3fa84b93bf63f01a34..7ed0d2f7464a37508cb9ba741fa228b29c00f3e7 100644 (file)
@@ -30,8 +30,8 @@
 
 #include "crush/CrushTreeDumper.h"
 #include "common/Clock.h"
-#include "mon/PGStatService.h"
+#include "mon/PGMap.h"
+
 #define dout_subsys ceph_subsys_osd
 
 MEMPOOL_DEFINE_OBJECT_FACTORY(OSDMap, osdmap, osdmap);
@@ -3968,10 +3968,10 @@ public:
   typedef CrushTreeDumper::Dumper<F> Parent;
 
   OSDUtilizationDumper(const CrushWrapper *crush, const OSDMap *osdmap_,
-                      const PGStatService *pgs_, bool tree_) :
+                      const PGMap& pgmap_, bool tree_) :
     Parent(crush, osdmap_->get_pool_names()),
     osdmap(osdmap_),
-    pgs(pgs_),
+    pgmap(pgmap_),
     tree(tree_),
     average_util(average_utilization()),
     min_var(-1),
@@ -4003,7 +4003,7 @@ protected:
     if (average_util)
       var = util / average_util;
 
-    size_t num_pgs = qi.is_bucket() ? 0 : pgs->get_num_pg_by_osd(qi.id);
+    size_t num_pgs = qi.is_bucket() ? 0 : pgmap.get_num_pg_by_osd(qi.id);
 
     dump_item(qi, reweight, kb, kb_used, kb_avail, util, var, num_pgs, f);
 
@@ -4050,7 +4050,7 @@ protected:
 
   bool get_osd_utilization(int id, int64_t* kb, int64_t* kb_used,
                           int64_t* kb_avail) const {
-    const osd_stat_t *p = pgs->get_osd_stat(id);
+    const osd_stat_t *p = pgmap.get_osd_stat(id);
     if (!p) return false;
     *kb = p->kb;
     *kb_used = p->kb_used;
@@ -4088,7 +4088,7 @@ protected:
 
 protected:
   const OSDMap *osdmap;
-  const PGStatService *pgs;
+  const PGMap& pgmap;
   bool tree;
   double average_util;
   double min_var;
@@ -4103,8 +4103,8 @@ public:
   typedef OSDUtilizationDumper<TextTable> Parent;
 
   OSDUtilizationPlainDumper(const CrushWrapper *crush, const OSDMap *osdmap,
-                    const PGStatService *pgs, bool tree) :
-    Parent(crush, osdmap, pgs, tree) {}
+                           const PGMap& pgmap, bool tree) :
+    Parent(crush, osdmap, pgmap, tree) {}
 
   void dump(TextTable *tbl) {
     tbl->define_column("ID", TextTable::LEFT, TextTable::RIGHT);
@@ -4127,9 +4127,9 @@ public:
     *tbl << ""
         << ""
         << "" << "TOTAL"
-        << si_t(pgs->get_osd_sum().kb << 10)
-        << si_t(pgs->get_osd_sum().kb_used << 10)
-        << si_t(pgs->get_osd_sum().kb_avail << 10)
+        << si_t(pgmap.get_osd_sum().kb << 10)
+        << si_t(pgmap.get_osd_sum().kb_used << 10)
+        << si_t(pgmap.get_osd_sum().kb_avail << 10)
         << lowprecision_t(average_util)
         << ""
         << TextTable::endrow;
@@ -4216,8 +4216,8 @@ public:
   typedef OSDUtilizationDumper<Formatter> Parent;
 
   OSDUtilizationFormatDumper(const CrushWrapper *crush, const OSDMap *osdmap,
-                            const PGStatService *pgs, bool tree) :
-    Parent(crush, osdmap, pgs, tree) {}
+                            const PGMap& pgmap, bool tree) :
+    Parent(crush, osdmap, pgmap, tree) {}
 
   void dump(Formatter *f) {
     f->open_array_section("nodes");
@@ -4256,9 +4256,9 @@ protected:
 public:
   void summary(Formatter *f) {
     f->open_object_section("summary");
-    f->dump_int("total_kb", pgs->get_osd_sum().kb);
-    f->dump_int("total_kb_used", pgs->get_osd_sum().kb_used);
-    f->dump_int("total_kb_avail", pgs->get_osd_sum().kb_avail);
+    f->dump_int("total_kb", pgmap.get_osd_sum().kb);
+    f->dump_int("total_kb_used", pgmap.get_osd_sum().kb_used);
+    f->dump_int("total_kb_avail", pgmap.get_osd_sum().kb_avail);
     f->dump_float("average_utilization", average_util);
     f->dump_float("min_var", min_var);
     f->dump_float("max_var", max_var);
@@ -4268,7 +4268,7 @@ public:
 };
 
 void print_osd_utilization(const OSDMap& osdmap,
-                          const PGStatService *pgstat,
+                          const PGMap& pgmap,
                           ostream& out,
                           Formatter *f,
                           bool tree)
@@ -4276,13 +4276,13 @@ void print_osd_utilization(const OSDMap& osdmap,
   const CrushWrapper *crush = osdmap.crush.get();
   if (f) {
     f->open_object_section("df");
-    OSDUtilizationFormatDumper d(crush, &osdmap, pgstat, tree);
+    OSDUtilizationFormatDumper d(crush, &osdmap, pgmap, tree);
     d.dump(f);
     d.summary(f);
     f->close_section();
     f->flush(out);
   } else {
-    OSDUtilizationPlainDumper d(crush, &osdmap, pgstat, tree);
+    OSDUtilizationPlainDumper d(crush, &osdmap, pgmap, tree);
     TextTable tbl;
     d.dump(&tbl);
     out << tbl << d.summary() << "\n";
index e676bff0a72c7bc752188e5ba6b1790d814002ac..2cd26f2a33b611c00857965faac2bd0ab4b557bc 100644 (file)
@@ -1384,10 +1384,10 @@ inline ostream& operator<<(ostream& out, const OSDMap& m) {
   return out;
 }
 
-class PGStatService;
+class PGMap;
 
 void print_osd_utilization(const OSDMap& osdmap,
-                          const PGStatService *pgstat,
+                          const PGMap& pgmap,
                           ostream& out,
                           Formatter *f,
                           bool tree);