]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon,osd: dump "compression_algorithms" in "mon metadata" 22004/head
authorKefu Chai <kchai@redhat.com>
Fri, 4 May 2018 03:52:06 +0000 (11:52 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 15 May 2018 13:08:49 +0000 (21:08 +0800)
Fixes: http://tracker.ceph.com/issues/22420
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 1684ac34331f48e59c0485c3e18b1fe55b66c690)

src/mon/Monitor.cc
src/osd/OSD.cc
src/osd/OSD.h

index 9c60431cb1884f27878e5484dfd5934753be5c15..1c737f880b2b60691d8ae3c3aed1e0d028f3c080 100644 (file)
@@ -14,6 +14,7 @@
 
 
 #include <sstream>
+#include <tuple>
 #include <stdlib.h>
 #include <signal.h>
 #include <limits.h>
@@ -2067,10 +2068,29 @@ void Monitor::lose_election(epoch_t epoch, set<int> &q, int l,
   finish_election();
 }
 
+namespace {
+std::string collect_compression_algorithms()
+{
+  ostringstream os;
+  bool printed = false;
+  for (auto [name, key] : Compressor::compression_algorithms) {
+    if (printed) {
+      os << ", ";
+    } else {
+      printed = true;
+    }
+    std::ignore = key;
+    os << name;
+  }
+  return os.str();
+}
+}
+
 void Monitor::collect_metadata(Metadata *m)
 {
   collect_sys_info(m, g_ceph_context);
   (*m)["addr"] = stringify(messenger->get_myaddr());
+  (*m)["compression_algorithms"] = collect_compression_algorithms();
 }
 
 void Monitor::finish_election()
index 8a28fe55f8f93d2ee10f8f637da9651d36eac0c9..bda1b51d44cbf2de323c1cbfd40f6258a49a6853 100644 (file)
 
 #include "acconfig.h"
 
-#include <cerrno>
 #include <cctype>
 #include <fstream>
 #include <iostream>
-#include <algorithm>
-
-#include <experimental/iterator>
 
 #include <unistd.h>
-
 #include <sys/stat.h>
 #include <signal.h>
 #include <boost/scoped_ptr.hpp>
@@ -53,7 +48,6 @@
 #include "common/version.h"
 #include "common/pick_address.h"
 #include "common/SubProcess.h"
-#include "common/PluginRegistry.h"
 
 #include "os/ObjectStore.h"
 #ifdef HAVE_LIBFUSE
@@ -5442,27 +5436,6 @@ void OSD::_send_boot()
   set_state(STATE_BOOTING);
 }
 
-std::string OSD::_collect_compression_algorithms()
-{
-  using std::experimental::make_ostream_joiner;
-
-  const auto& compression_algorithms = Compressor::compression_algorithms;
-  const auto& plugin_registry = cct->get_plugin_registry()->plugins;
-
-  if (plugin_registry.empty())
-   return {};
-
-  ostringstream os;
-
-  copy_if(begin(compression_algorithms), end(compression_algorithms),
-          make_ostream_joiner(os, ", "),
-          [&plugin_registry](const auto& algorithm) {
-            return plugin_registry.end() != plugin_registry.find(algorithm.first);
-         });
-  
-  return os.str();
-}
-
 void OSD::_collect_metadata(map<string,string> *pm)
 {
   // config info
@@ -5494,9 +5467,6 @@ void OSD::_collect_metadata(map<string,string> *pm)
   store->get_devices(&devnames);
   (*pm)["devices"] = stringify(devnames);
 
-  // Other information:
-  (*pm)["supported_compression_algorithms"] = _collect_compression_algorithms();
-
   dout(10) << __func__ << " " << *pm << dendl;
 }
 
index d0acd4b8248f94dc575b005325dae4fed477c1e5..0ebe5ecd2eb8e143b7179195d078c7df392de875 100644 (file)
@@ -1915,7 +1915,6 @@ protected:
   void _preboot(epoch_t oldest, epoch_t newest);
   void _send_boot();
   void _collect_metadata(map<string,string> *pmeta);
-  std::string _collect_compression_algorithms();
 
   void start_waiting_for_healthy();
   bool _is_healthy();