summaryrefslogtreecommitdiff
path: root/src/mongo/db/mongod_options.cpp
diff options
context:
space:
mode:
authorShaun Verch <shaun.verch@mongodb.com>2014-03-28 09:57:22 -0400
committerShaun Verch <shaun.verch@mongodb.com>2014-03-28 13:46:54 -0400
commit1c2ec3d69bbb5b6ae34f57abf1fabcaf32833a57 (patch)
tree4f6400e4713a60cc4f43e703e66ae33a48042080 /src/mongo/db/mongod_options.cpp
parent3973a76ece2b85b8258831ae7dae97e8e3da8eec (diff)
downloadmongo-1c2ec3d69bbb5b6ae34f57abf1fabcaf32833a57.tar.gz
SERVER-13379 Canonicalize shardsvr and configsvr as sharding.clusterRole
Diffstat (limited to 'src/mongo/db/mongod_options.cpp')
-rw-r--r--src/mongo/db/mongod_options.cpp49
1 files changed, 30 insertions, 19 deletions
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp
index ddd61111489..7749f16760a 100644
--- a/src/mongo/db/mongod_options.cpp
+++ b/src/mongo/db/mongod_options.cpp
@@ -332,16 +332,16 @@ namespace mongo {
// Sharding Options
- sharding_options.addOptionChaining("sharding.configsvr", "configsvr", moe::Switch,
+ sharding_options.addOptionChaining("configsvr", "configsvr", moe::Switch,
"declare this is a config db of a cluster; default port 27019; "
"default dir /data/configdb")
.setSources(moe::SourceAllLegacy)
- .incompatibleWith("sharding.clusterRole");
+ .incompatibleWith("shardsvr");
- sharding_options.addOptionChaining("sharding.shardsvr", "shardsvr", moe::Switch,
+ sharding_options.addOptionChaining("shardsvr", "shardsvr", moe::Switch,
"declare this is a shard db of a cluster; default port 27018")
.setSources(moe::SourceAllLegacy)
- .incompatibleWith("sharding.clusterRole");
+ .incompatibleWith("configsvr");
sharding_options.addOptionChaining("sharding.clusterRole", "", moe::String,
"Choose what role this mongod has in a sharded cluster. Possible values are:\n"
@@ -350,8 +350,6 @@ namespace mongo {
" \"shardsvr\": Start this node as a shard server. Starts on port 27018 by "
"default.")
.setSources(moe::SourceYAMLConfig)
- .incompatibleWith("sharding.configsvr")
- .incompatibleWith("sharding.shardsvr")
.format("(:?configsvr)|(:?shardsvr)",
"(configsvr/shardsvr)");
@@ -685,6 +683,30 @@ namespace mongo {
}
}
+ // "sharding.clusterRole" comes from the config file, so override it if "configsvr" or
+ // "shardsvr" are set since those come from the command line.
+ if (params->count("configsvr")) {
+ Status ret = params->set("sharding.clusterRole", moe::Value(std::string("configsvr")));
+ if (!ret.isOK()) {
+ return ret;
+ }
+ ret = params->remove("configsvr");
+ if (!ret.isOK()) {
+ return ret;
+ }
+ }
+ if (params->count("shardsvr")) {
+ Status ret = params->set("sharding.clusterRole", moe::Value(std::string("shardsvr")));
+ if (!ret.isOK()) {
+ return ret;
+ }
+ ret = params->remove("shardsvr");
+ if (!ret.isOK()) {
+ return ret;
+ }
+ }
+
+
return Status::OK();
}
@@ -937,16 +959,6 @@ namespace mongo {
return Status(ErrorCodes::BadValue, "--cacheSize option not currently supported");
}
if (!params.count("net.port")) {
- if( params.count("sharding.configsvr") ) {
- serverGlobalParams.port = ServerGlobalParams::ConfigServerPort;
- }
- if( params.count("sharding.shardsvr") ) {
- if( params.count("sharding.configsvr") ) {
- return Status(ErrorCodes::BadValue,
- "can't do --shardsvr and --configsvr at the same time");
- }
- serverGlobalParams.port = ServerGlobalParams::ShardServerPort;
- }
if (params.count("sharding.clusterRole")) {
std::string clusterRole = params["sharding.clusterRole"].as<std::string>();
if (clusterRole == "configsvr") {
@@ -968,9 +980,8 @@ namespace mongo {
return Status(ErrorCodes::BadValue, "bad --port number");
}
}
- if (params.count("sharding.configsvr") ||
- (params.count("sharding.clusterRole") &&
- params["sharding.clusterRole"].as<std::string>() == "configsvr")) {
+ if (params.count("sharding.clusterRole") &&
+ params["sharding.clusterRole"].as<std::string>() == "configsvr") {
serverGlobalParams.configsvr = true;
storageGlobalParams.smallfiles = true; // config server implies small files
if (replSettings.usingReplSets() || replSettings.master || replSettings.slave) {