#include <sstream>
+#include <tuple>
#include <stdlib.h>
#include <signal.h>
#include <limits.h>
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()
#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>
#include "common/version.h"
#include "common/pick_address.h"
#include "common/SubProcess.h"
-#include "common/PluginRegistry.h"
#include "os/ObjectStore.h"
#ifdef HAVE_LIBFUSE
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
store->get_devices(&devnames);
(*pm)["devices"] = stringify(devnames);
- // Other information:
- (*pm)["supported_compression_algorithms"] = _collect_compression_algorithms();
-
dout(10) << __func__ << " " << *pm << dendl;
}
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();