69 lines
2.1 KiB
JavaScript
69 lines
2.1 KiB
JavaScript
//
|
|
// Test checks whether or not config version excludes prevent mongos startup
|
|
//
|
|
|
|
load('./jstests/multiVersion/libs/verify_versions.js');
|
|
|
|
jsTest.log( "Starting cluster..." );
|
|
|
|
var options = {
|
|
|
|
mongosOptions : { },
|
|
configOptions : { },
|
|
shardOptions : { },
|
|
|
|
separateConfig : true,
|
|
sync : false
|
|
}
|
|
|
|
var st = new ShardingTest({ shards : 2, mongos : 3, other : options });
|
|
|
|
var mongos = st.s0
|
|
var parallelMongoses = st._mongos.concat([]).splice(1);
|
|
var config = mongos.getDB("config")
|
|
var configVersion = config.getMongo().getCollection("config.version");
|
|
var admin = mongos.getDB("admin")
|
|
|
|
var configConnStr = st._configDB;
|
|
|
|
// Make sure adding an excluded version actually prevents mongos from starting
|
|
|
|
jsTest.log("Testing excluded mongos versions...")
|
|
|
|
// Since the version isn't being tested via javascript, we want to find the actual version
|
|
// that "latest" is mapped to.
|
|
// Implicitly, the above cluster is started at "latest" version, so we can check this way.
|
|
var realLatestVersion = mongos.getBinVersion();
|
|
|
|
configVersion.update({ _id : 1 }, { $addToSet : { excluding : realLatestVersion } });
|
|
printjson(configVersion.findOne());
|
|
|
|
// Make sure down
|
|
var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
|
|
assert.eq(null, mongosNew);
|
|
|
|
jsTest.log("Testing excluded ranges...")
|
|
|
|
configVersion.update({ _id : 1 }, { $unset : { excluding : 1 } });
|
|
configVersion.update({ _id : 1 }, { $addToSet : { excluding : ["1.8",
|
|
realLatestVersion] } });
|
|
printjson(configVersion.findOne());
|
|
|
|
// Make sure down
|
|
var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
|
|
assert.eq(null, mongosNew);
|
|
|
|
jsTest.log("Testing empty excluded...")
|
|
|
|
configVersion.update({ _id : 1 }, { $unset : { excluding : 1 } });
|
|
printjson(configVersion.findOne());
|
|
|
|
// Make sure up
|
|
var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
|
|
assert.neq(null, mongosNew);
|
|
MongoRunner.stopMongos(mongosNew);
|
|
|
|
jsTest.log("DONE!")
|
|
|
|
st.stop();
|