]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon: mgr: send a pgmap in reports
authorGreg Farnum <gfarnum@redhat.com>
Sat, 11 Mar 2017 03:09:22 +0000 (19:09 -0800)
committerSage Weil <sage@redhat.com>
Fri, 2 Jun 2017 16:58:53 +0000 (12:58 -0400)
This definitely isn't appropriate for long term but is a quick route to testing

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/CMakeLists.txt
src/messages/MMonMgrReport.h
src/mgr/ClusterState.cc
src/mon/MgrMonitor.cc
src/mon/MgrMonitor.h
src/mon/Monitor.cc

index d96057c20d872296e4c79e98f90904bd8e79487b..d1f83dea911a1b2be0a197a03f699c02d78f4a3c 100644 (file)
@@ -464,6 +464,7 @@ set(libcommon_files
   msg/simple/Accepter.cc
   msg/DispatchQueue.cc
   msg/Message.cc
+  mon/PGMap.cc
   osd/ECMsgTypes.cc
   osd/HitSet.cc
   common/RefCountedObj.cc
index d45a1e545f95d6f83bb045306ed10b3cd8ca3e89..20ac9aa35eae2986c440a1457209c388b7e3c902 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "messages/PaxosServiceMessage.h"
 #include "include/types.h"
+#include "mon/PGMap.h"
 
 
 class MMonMgrReport : public PaxosServiceMessage {
@@ -34,6 +35,7 @@ private:
 
 public:
   bool needs_send = false;
+  PGMap pg_map;
   const char *get_type_name() const override { return "monmgrreport"; }
 
   void print(ostream& out) const override {
@@ -42,10 +44,14 @@ public:
 
   void encode_payload(uint64_t features) override {
     paxos_encode();
+    bufferlist pmb;
+    pg_map.encode(pmb);
+    payload.append(pmb);
   }
   void decode_payload() override {
     bufferlist::iterator p = payload.begin();
     paxos_decode(p);
+    ::decode(pg_map, p);
   }
 };
 
index d96d1e99e3b751457cdabaef5b629d9fd32c4ff9..b23628473c74a7fcbbe3fe0a017586a3bd5ed475 100644 (file)
@@ -117,4 +117,6 @@ void ClusterState::notify_osdmap(const OSDMap &osd_map)
 void ClusterState::tick(MMonMgrReport *m)
 {
   dout(0) << __func__ << dendl;
+  m->pg_map = pg_map;
+  m->needs_send = true;
 }
index 77324fb9a974a896c2e41ea353f5674392160d4b..a3485e561878ecf60b45ef4802b7ad6bc2b785ca 100644 (file)
@@ -250,6 +250,7 @@ bool MgrMonitor::preprocess_report(MonOpRequestRef op) { return false; }
 bool MgrMonitor::prepare_report(MonOpRequestRef op)
 {
   MMonMgrReport *m = static_cast<MMonMgrReport*>(op->get_req());
+  pg_map = m->pg_map;
   return true;
 }
 
index d45d853ceb56904d12d32b9fd1ff4a15432ed16f..e0d82177473a3c0c7a60a9ed4d76c18434499bf1 100644 (file)
@@ -15,6 +15,7 @@
 #include "include/Context.h"
 #include "MgrMap.h"
 #include "PaxosService.h"
+#include "PGMap.h"
 
 
 class MgrMonitor : public PaxosService
@@ -42,6 +43,7 @@ class MgrMonitor : public PaxosService
   bool check_caps(MonOpRequestRef op, const uuid_d& fsid);
 
 public:
+  PGMap pg_map;
   MgrMonitor(Monitor *mn, Paxos *p, const string& service_name)
     : PaxosService(mn, p, service_name)
   {}
index 560ca7acc2c00df310dc08aabe91e888f5578cdd..69bb9dbc0b9e768be22cba1c6c1b99ecf42e8766 100644 (file)
@@ -2576,7 +2576,7 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f)
     osdmon()->osdmap.print_summary(f, cout);
     f->close_section();
     f->open_object_section("pgmap");
-    pgmon()->pg_map.print_summary(f, NULL);
+    mgrmon()->pg_map.print_summary(f, NULL);
     f->close_section();
     f->open_object_section("fsmap");
     mdsmon()->get_fsmap().print_summary(f, NULL);
@@ -2620,7 +2620,7 @@ void Monitor::get_cluster_status(stringstream &ss, Formatter *f)
     osdmon()->osdmap.print_summary(NULL, ss);
 
     ss << "\n \n  data:\n";
-    pgmon()->pg_map.print_summary(NULL, &ss);
+    mgrmon()->pg_map.print_summary(NULL, &ss);
     ss << "\n ";
   }
 }
@@ -3086,10 +3086,10 @@ void Monitor::handle_command(MonOpRequestRef op)
       if (f)
         f->open_object_section("stats");
 
-      pgmon()->pg_map.dump_fs_stats(&ds, f.get(), verbose);
+      mgrmon()->pg_map.dump_fs_stats(&ds, f.get(), verbose);
       if (!f)
         ds << '\n';
-      pgmon()->pg_map.dump_pool_stats(osdmon()->osdmap, &ds, f.get(), verbose);
+      mgrmon()->pg_map.dump_pool_stats(osdmon()->osdmap, &ds, f.get(), verbose);
 
       if (f) {
         f->close_section();