mirror of
https://github.com/ceph/ceph
synced 2025-02-20 17:37:29 +00:00
Merge PR #39206 into master
* refs/pull/39206/head: mgr/MetricTypes: condition encoding on feature bits Reviewed-by: Josh Durgin <jdurgin@redhat.com> Reviewed-by: Venky Shankar <vshankar@redhat.com>
This commit is contained in:
commit
cced65aab7
@ -59,7 +59,12 @@ public:
|
||||
encode(stats_period, payload);
|
||||
encode(stats_threshold, payload);
|
||||
encode(osd_perf_metric_queries, payload);
|
||||
encode(metric_config_message, payload);
|
||||
if (metric_config_message && metric_config_message->should_encode(features)) {
|
||||
encode(metric_config_message, payload);
|
||||
} else {
|
||||
boost::optional<MetricConfigMessage> empty;
|
||||
encode(empty, payload);
|
||||
}
|
||||
}
|
||||
|
||||
std::string_view get_type_name() const override { return "mgrconfigure"; }
|
||||
|
@ -157,7 +157,12 @@ public:
|
||||
encode(config_bl, payload);
|
||||
encode(osd_perf_metric_reports, payload);
|
||||
encode(task_status, payload);
|
||||
encode(metric_report_message, payload);
|
||||
if (metric_report_message && metric_report_message->should_encode(features)) {
|
||||
encode(metric_report_message, payload);
|
||||
} else {
|
||||
boost::optional<MetricReportMessage> empty;
|
||||
encode(empty, payload);
|
||||
}
|
||||
}
|
||||
|
||||
std::string_view get_type_name() const override { return "mgrreport"; }
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
#include <boost/variant.hpp>
|
||||
#include "include/denc.h"
|
||||
#include "include/ceph_features.h"
|
||||
#include "mgr/OSDPerfMetricTypes.h"
|
||||
#include "mgr/MDSPerfMetricTypes.h"
|
||||
|
||||
@ -104,6 +105,14 @@ struct MetricReportMessage {
|
||||
: payload(payload) {
|
||||
}
|
||||
|
||||
bool should_encode(uint64_t features) const {
|
||||
if (!HAVE_FEATURE(features, SERVER_PACIFIC) &&
|
||||
boost::get<MDSMetricPayload>(&payload)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void encode(ceph::buffer::list &bl) const {
|
||||
boost::apply_visitor(EncodeMetricPayloadVisitor(bl), payload);
|
||||
}
|
||||
@ -229,6 +238,14 @@ struct MetricConfigMessage {
|
||||
: payload(payload) {
|
||||
}
|
||||
|
||||
bool should_encode(uint64_t features) const {
|
||||
if (!HAVE_FEATURE(features, SERVER_PACIFIC) &&
|
||||
boost::get<MDSConfigPayload>(&payload)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void encode(ceph::buffer::list &bl) const {
|
||||
boost::apply_visitor(EncodeConfigPayloadVisitor(bl), payload);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user