mirror of
https://github.com/ceph/ceph
synced 2025-03-21 17:57:38 +00:00
mgr: get config defaults on session open
Leave them encoded until they are used, since usually we won't use them. This is about 50k currently. Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
parent
ed77b096ec
commit
86cf85e0a2
@ -34,6 +34,9 @@ public:
|
||||
// encode map<string,map<int32_t,string>> of current config
|
||||
bufferlist config_bl;
|
||||
|
||||
// encode map<string,string> of compiled-in defaults
|
||||
bufferlist config_defaults_bl;
|
||||
|
||||
void decode_payload() override
|
||||
{
|
||||
bufferlist::iterator p = payload.begin();
|
||||
@ -48,6 +51,7 @@ public:
|
||||
}
|
||||
if (header.version >= 3) {
|
||||
::decode(config_bl, p);
|
||||
::decode(config_defaults_bl, p);
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,6 +65,7 @@ public:
|
||||
encode(daemon_status, payload);
|
||||
}
|
||||
::encode(config_bl, payload);
|
||||
::encode(config_defaults_bl, payload);
|
||||
}
|
||||
|
||||
const char *get_type_name() const override { return "mgropen"; }
|
||||
|
@ -395,6 +395,10 @@ bool DaemonServer::handle_open(MMgrOpen *m)
|
||||
::decode(daemon->config, p);
|
||||
dout(20) << " got config " << daemon->config << dendl;
|
||||
}
|
||||
daemon->config_defaults_bl = m->config_defaults_bl;
|
||||
daemon->config_defaults.clear();
|
||||
dout(20) << " got config_defaults_bl " << daemon->config_defaults_bl.length()
|
||||
<< " bytes" << dendl;
|
||||
}
|
||||
|
||||
if (m->get_connection()->get_peer_type() != entity_name_t::TYPE_CLIENT &&
|
||||
|
@ -109,6 +109,10 @@ class DaemonState
|
||||
// running config
|
||||
std::map<std::string,std::map<int32_t,std::string>> config;
|
||||
|
||||
// compiled-in config defaults (rarely used, so we leave them encoded!)
|
||||
bufferlist config_defaults_bl;
|
||||
std::map<std::string,std::string> config_defaults;
|
||||
|
||||
// The perf counters received in MMgrReport messages
|
||||
DaemonPerfCounters perf_counters;
|
||||
|
||||
|
@ -175,6 +175,7 @@ void MgrClient::_send_open()
|
||||
open->daemon_metadata = daemon_metadata;
|
||||
}
|
||||
cct->_conf->get_config_bl(&open->config_bl);
|
||||
cct->_conf->get_defaults_bl(&open->config_defaults_bl);
|
||||
session->con->send_message(open);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user