mirror of
https://github.com/ceph/ceph
synced 2025-03-25 11:48:05 +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
|
// encode map<string,map<int32_t,string>> of current config
|
||||||
bufferlist config_bl;
|
bufferlist config_bl;
|
||||||
|
|
||||||
|
// encode map<string,string> of compiled-in defaults
|
||||||
|
bufferlist config_defaults_bl;
|
||||||
|
|
||||||
void decode_payload() override
|
void decode_payload() override
|
||||||
{
|
{
|
||||||
bufferlist::iterator p = payload.begin();
|
bufferlist::iterator p = payload.begin();
|
||||||
@ -48,6 +51,7 @@ public:
|
|||||||
}
|
}
|
||||||
if (header.version >= 3) {
|
if (header.version >= 3) {
|
||||||
::decode(config_bl, p);
|
::decode(config_bl, p);
|
||||||
|
::decode(config_defaults_bl, p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,6 +65,7 @@ public:
|
|||||||
encode(daemon_status, payload);
|
encode(daemon_status, payload);
|
||||||
}
|
}
|
||||||
::encode(config_bl, payload);
|
::encode(config_bl, payload);
|
||||||
|
::encode(config_defaults_bl, payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *get_type_name() const override { return "mgropen"; }
|
const char *get_type_name() const override { return "mgropen"; }
|
||||||
|
@ -395,6 +395,10 @@ bool DaemonServer::handle_open(MMgrOpen *m)
|
|||||||
::decode(daemon->config, p);
|
::decode(daemon->config, p);
|
||||||
dout(20) << " got config " << daemon->config << dendl;
|
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 &&
|
if (m->get_connection()->get_peer_type() != entity_name_t::TYPE_CLIENT &&
|
||||||
|
@ -109,6 +109,10 @@ class DaemonState
|
|||||||
// running config
|
// running config
|
||||||
std::map<std::string,std::map<int32_t,std::string>> 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
|
// The perf counters received in MMgrReport messages
|
||||||
DaemonPerfCounters perf_counters;
|
DaemonPerfCounters perf_counters;
|
||||||
|
|
||||||
|
@ -175,6 +175,7 @@ void MgrClient::_send_open()
|
|||||||
open->daemon_metadata = daemon_metadata;
|
open->daemon_metadata = daemon_metadata;
|
||||||
}
|
}
|
||||||
cct->_conf->get_config_bl(&open->config_bl);
|
cct->_conf->get_config_bl(&open->config_bl);
|
||||||
|
cct->_conf->get_defaults_bl(&open->config_defaults_bl);
|
||||||
session->con->send_message(open);
|
session->con->send_message(open);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user