mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
common/config: Add methods to return the default value of a config option
Add wrapper method "get_val_default()" to the ConfigProxy class that takes the config option key to search. This method in-turn calls another method with the same name added to md_config_t class that does the actual work of searching for the config option. If the option is valid, _get_val_default() is used to get the default value. Otherwise, the wrapper method returns std::nullopt. Fixes: https://tracker.ceph.com/issues/51464 Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
This commit is contained in:
parent
1fca4bdfd4
commit
9438e5a4b6
@ -1024,6 +1024,16 @@ void md_config_t::get_config_bl(
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<std::string> md_config_t::get_val_default(std::string_view key)
|
||||
{
|
||||
std::string val;
|
||||
const Option *opt = find_option(key);
|
||||
if (opt && (conf_stringify(_get_val_default(*opt), &val) == 0)) {
|
||||
return std::make_optional(std::move(val));
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
int md_config_t::get_val(const ConfigValues& values,
|
||||
const std::string_view key, char **buf, int len) const
|
||||
{
|
||||
|
@ -192,6 +192,9 @@ public:
|
||||
/// get encoded map<string,string> of compiled-in defaults
|
||||
void get_defaults_bl(const ConfigValues& values, ceph::buffer::list *bl);
|
||||
|
||||
/// Get the default value of a configuration option
|
||||
std::optional<std::string> get_val_default(std::string_view key);
|
||||
|
||||
// Get a configuration value.
|
||||
// No metavariables will be returned (they will have already been expanded)
|
||||
int get_val(const ConfigValues& values, const std::string_view key, char **buf, int len) const;
|
||||
|
@ -344,6 +344,9 @@ public:
|
||||
const std::string& get_conf_path() const {
|
||||
return config.get_conf_path();
|
||||
}
|
||||
std::optional<std::string> get_val_default(std::string_view key) {
|
||||
return config.get_val_default(key);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user