diff options
Diffstat (limited to 'src/mongo/db/server_options_helpers.cpp')
| -rw-r--r-- | src/mongo/db/server_options_helpers.cpp | 61 |
1 files changed, 31 insertions, 30 deletions
diff --git a/src/mongo/db/server_options_helpers.cpp b/src/mongo/db/server_options_helpers.cpp index 9ed7af1f62a..a3dc5ec59df 100644 --- a/src/mongo/db/server_options_helpers.cpp +++ b/src/mongo/db/server_options_helpers.cpp @@ -134,42 +134,43 @@ Status validateBaseOptions(const moe::Environment& params) { } } + std::map<std::string, std::string> parameters; if (params.count("setParameter")) { - const auto parameters = params["setParameter"].as<std::map<std::string, std::string>>(); - - const bool enableTestCommandsValue = ([¶meters] { - const auto etc = parameters.find("enableTestCommands"); - if (etc == parameters.end()) { - return false; - } - const auto& val = etc->second; - return (0 == val.compare("1")) || (0 == val.compare("true")); - })(); + parameters = params["setParameter"].as<std::map<std::string, std::string>>(); + } - if (enableTestCommandsValue) { - // Only register failpoint server parameters if enableTestCommands=1. - globalFailPointRegistry().registerAllFailPointsAsServerParameters(); - } else { - // Deregister test-only parameters. - ServerParameterSet::getNodeParameterSet()->disableTestParameters(); - ServerParameterSet::getClusterParameterSet()->disableTestParameters(); + const bool enableTestCommandsValue = ([¶meters] { + const auto etc = parameters.find("enableTestCommands"); + if (etc == parameters.end()) { + return false; } + const auto& val = etc->second; + return (0 == val.compare("1")) || (0 == val.compare("true")); + })(); + + if (enableTestCommandsValue) { + // Only register failpoint server parameters if enableTestCommands=1. + globalFailPointRegistry().registerAllFailPointsAsServerParameters(); + } else { + // Deregister test-only parameters. + ServerParameterSet::getNodeParameterSet()->disableTestParameters(); + ServerParameterSet::getClusterParameterSet()->disableTestParameters(); + } - // Must come after registerAllFailPointsAsServerParameters() above. - auto* paramSet = ServerParameterSet::getNodeParameterSet(); - for (const auto& setParam : parameters) { - auto* param = paramSet->getIfExists(setParam.first); + // Must come after registerAllFailPointsAsServerParameters() above. + auto* paramSet = ServerParameterSet::getNodeParameterSet(); + for (const auto& setParam : parameters) { + auto* param = paramSet->getIfExists(setParam.first); - if (!param) { - return {ErrorCodes::BadValue, - str::stream() << "Unknown --setParameter '" << setParam.first << "'"}; - } + if (!param) { + return {ErrorCodes::BadValue, + str::stream() << "Unknown --setParameter '" << setParam.first << "'"}; + } - if (!param->isEnabled()) { - return {ErrorCodes::BadValue, - str::stream() << "--setParameter '" << setParam.first - << "' only available when used with 'enableTestCommands'"}; - } + if (!param->isEnabled()) { + return {ErrorCodes::BadValue, + str::stream() << "--setParameter '" << setParam.first + << "' only available when used with 'enableTestCommands'"}; } } |
