}
}
+const char** OSD::get_tracked_conf_keys() const
+{
+ static const char* KEYS[] = {
+ "osd_beacon_report_interval",
+ nullptr
+ };
+ return KEYS;
+}
+
+void OSD::handle_conf_change(
+ const crimson::common::ConfigProxy& conf,
+ const std::set <std::string> &changed)
+{
+ if (changed.count("osd_beacon_report_interval")) {
+ beacon_timer.rearm_periodic(
+ std::chrono::seconds(conf->osd_beacon_report_interval));
+ }
+}
+
void OSD::update_stats()
{
osd_stat_seq++;
class OSD final : public crimson::net::Dispatcher,
private crimson::common::AuthHandler,
- private crimson::mgr::WithStats {
+ private crimson::mgr::WithStats,
+ public md_config_obs_t {
const int whoami;
const uint32_t nonce;
seastar::abort_source& abort_source;
std::unique_ptr<Heartbeat> heartbeat;
seastar::timer<seastar::lowres_clock> tick_timer;
+ const char** get_tracked_conf_keys() const final;
+ void handle_conf_change(const ConfigProxy& conf,
+ const std::set<std::string> &changed) final;
+
// admin-socket
seastar::lw_shared_ptr<crimson::admin::AdminSocket> asok;