]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: move dump/print to DeviceState
authorSage Weil <sage@redhat.com>
Tue, 5 Jun 2018 19:21:31 +0000 (14:21 -0500)
committerSage Weil <sage@redhat.com>
Mon, 11 Jun 2018 12:29:03 +0000 (07:29 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mgr/DaemonServer.cc
src/mgr/DaemonState.cc
src/mgr/DaemonState.h

index 05c30aff30834328e99b6e9c4792a020a64e5966..43d6efd866e104c95feaad131bc842261bcb828e 100644 (file)
@@ -1733,32 +1733,9 @@ bool DaemonServer::handle_command(MCommand *m)
     if (!daemon_state.with_device(devid,
                                  [&f, &rs] (const DeviceState& dev) {
          if (f) {
-           f->open_object_section("device");
-           f->dump_string("devid", dev.devid);
-           f->dump_string("host", dev.server);
-           f->open_array_section("daemons");
-           for (auto& i : dev.daemons) {
-             f->dump_string("daemon", to_string(i));
-           }
-           f->close_section();
-           if (dev.expected_failure != utime_t()) {
-             f->dump_stream("expected_failure") << dev.expected_failure;
-             f->dump_stream("expected_failure_stamp")
-               << dev.expected_failure_stamp;
-           }
-           f->close_section();
+           f->dump_object("device", dev);
          } else {
-           rs << "device " << dev.devid << "\n";
-           rs << "host " << dev.server << "\n";
-           set<string> d;
-           for (auto& j : dev.daemons) {
-             d.insert(to_string(j));
-           }
-           rs << "daemons " << d << "\n";
-           if (dev.expected_failure != utime_t()) {
-             rs << "expected_failure " << dev.expected_failure
-                << " (as of " << dev.expected_failure_stamp << ")\n";
-           }
+           dev.print(rs);
          }
        })) {
       ss << "device " << devid << " not found";
index 60eefb7dfe70a0d5c0c58b0bf9dc72a9d6960216..8b7d39a76535b117899d097bc9dd2bf143639990 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "MgrSession.h"
 #include "include/stringify.h"
+#include "common/Formatter.h"
 
 #define dout_context g_ceph_context
 #define dout_subsys ceph_subsys_mgr
@@ -50,6 +51,37 @@ void DeviceState::rm_expected_failure()
   metadata.erase("expected_failure_stamp");
 }
 
+void DeviceState::dump(Formatter *f) const
+{
+  f->dump_string("devid", devid);
+  f->dump_string("host", server);
+  f->open_array_section("daemons");
+  for (auto& i : daemons) {
+    f->dump_string("daemon", to_string(i));
+  }
+  f->close_section();
+  if (expected_failure != utime_t()) {
+    f->dump_stream("expected_failure") << expected_failure;
+    f->dump_stream("expected_failure_stamp")
+      << expected_failure_stamp;
+  }
+}
+
+void DeviceState::print(ostream& out) const
+{
+  out << "device " << devid << "\n";
+  out << "host " << server << "\n";
+  set<string> d;
+  for (auto& j : daemons) {
+    d.insert(to_string(j));
+  }
+  out << "daemons " << d << "\n";
+  if (expected_failure != utime_t()) {
+    out << "expected_failure " << expected_failure
+       << " (as of " << expected_failure_stamp << ")\n";
+  }
+}
+
 void DaemonStateIndex::insert(DaemonStatePtr dm)
 {
   RWLock::WLocker l(lock);
index 27190b95941379a70a8e2ebf404b8f98be538b02..81d8cb49ab4c077ed610d0eaf59c2e3b42128334 100644 (file)
@@ -28,6 +28,9 @@
 // For PerfCounterType
 #include "messages/MMgrReport.h"
 
+namespace ceph {
+  class Formatter;
+}
 
 // Unique reference to a daemon within a cluster
 typedef std::pair<std::string, std::string> DaemonKey;
@@ -207,6 +210,9 @@ struct DeviceState : public RefCountedObject
   bool empty() const {
     return daemons.empty() && metadata.empty();
   }
+
+  void dump(Formatter *f) const;
+  void print(ostream& out) const;
 };
 
 typedef boost::intrusive_ptr<DeviceState> DeviceStateRef;