summaryrefslogtreecommitdiff
path: root/jstests/sharding/auth_slaveok_routing.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sharding/auth_slaveok_routing.js')
-rw-r--r--jstests/sharding/auth_slaveok_routing.js68
1 files changed, 33 insertions, 35 deletions
diff --git a/jstests/sharding/auth_slaveok_routing.js b/jstests/sharding/auth_slaveok_routing.js
index 599aed242b5..a01314fe405 100644
--- a/jstests/sharding/auth_slaveok_routing.js
+++ b/jstests/sharding/auth_slaveok_routing.js
@@ -18,25 +18,27 @@
*
* @return {boolean} true if query was routed to a secondary node.
*/
-function doesRouteToSec( coll, query ) {
- var explain = coll.find( query ).explain();
+function doesRouteToSec(coll, query) {
+ var explain = coll.find(query).explain();
assert.eq("SINGLE_SHARD", explain.queryPlanner.winningPlan.stage);
var serverInfo = explain.queryPlanner.winningPlan.shards[0].serverInfo;
- var conn = new Mongo( serverInfo.host + ":" + serverInfo.port.toString());
- var cmdRes = conn.getDB( 'admin' ).runCommand({ isMaster: 1 });
+ var conn = new Mongo(serverInfo.host + ":" + serverInfo.port.toString());
+ var cmdRes = conn.getDB('admin').runCommand({isMaster: 1});
jsTest.log('isMaster: ' + tojson(cmdRes));
return cmdRes.secondary;
}
-var rsOpts = { oplogSize: 50 };
-var st = new ShardingTest({ keyFile: 'jstests/libs/key1', shards: 1,
- rs: rsOpts, other: { nopreallocj: 1 }});
+var rsOpts = {
+ oplogSize: 50
+};
+var st = new ShardingTest(
+ {keyFile: 'jstests/libs/key1', shards: 1, rs: rsOpts, other: {nopreallocj: 1}});
var mongos = st.s;
var replTest = st.rs0;
-var testDB = mongos.getDB( 'AAAAA' );
+var testDB = mongos.getDB('AAAAA');
var coll = testDB.user;
var nodeCount = replTest.nodes.length;
@@ -45,69 +47,65 @@ var nodeCount = replTest.nodes.length;
* connections to access the server from localhost connections if there
* is no admin user.
*/
-var adminDB = mongos.getDB( 'admin' );
+var adminDB = mongos.getDB('admin');
adminDB.createUser({user: 'user', pwd: 'password', roles: jsTest.adminUserRoles});
-adminDB.auth( 'user', 'password' );
-var priAdminDB = replTest.getPrimary().getDB( 'admin' );
-priAdminDB.createUser({user: 'user', pwd: 'password', roles: jsTest.adminUserRoles},
+adminDB.auth('user', 'password');
+var priAdminDB = replTest.getPrimary().getDB('admin');
+priAdminDB.createUser({user: 'user', pwd: 'password', roles: jsTest.adminUserRoles},
{w: 3, wtimeout: 30000});
coll.drop();
-coll.setSlaveOk( true );
+coll.setSlaveOk(true);
/* Secondaries should be up here, but they can still be in RECOVERY
* state, which will make the ReplicaSetMonitor mark them as
* ok = false and not eligible for slaveOk queries.
*/
-ReplSetTest.awaitRSClientHosts( mongos, replTest.getSecondaries(),
- { ok : true, secondary : true });
+ReplSetTest.awaitRSClientHosts(mongos, replTest.getSecondaries(), {ok: true, secondary: true});
var bulk = coll.initializeUnorderedBulkOp();
-for ( var x = 0; x < 20; x++ ) {
- bulk.insert({ v: x, k: 10 });
+for (var x = 0; x < 20; x++) {
+ bulk.insert({v: x, k: 10});
}
-assert.writeOK(bulk.execute({ w: nodeCount }));
+assert.writeOK(bulk.execute({w: nodeCount}));
/* Although mongos never caches query results, try to do a different query
* everytime just to be sure.
*/
var vToFind = 0;
-jsTest.log( 'First query to SEC' );
-assert( doesRouteToSec( coll, { v: vToFind++ }));
+jsTest.log('First query to SEC');
+assert(doesRouteToSec(coll, {v: vToFind++}));
var SIG_TERM = 15;
-replTest.stopSet( SIG_TERM, true, { auth: { user: 'user', pwd: 'password' }});
+replTest.stopSet(SIG_TERM, true, {auth: {user: 'user', pwd: 'password'}});
-for ( var n = 0; n < nodeCount; n++ ) {
- replTest.restart( n, rsOpts );
+for (var n = 0; n < nodeCount; n++) {
+ replTest.restart(n, rsOpts);
}
replTest.awaitSecondaryNodes();
-coll.setSlaveOk( true );
+coll.setSlaveOk(true);
/* replSetMonitor does not refresh the nodes information when getting secondaries.
* A node that is previously labeled as secondary can now be a primary, so we
* wait for the replSetMonitorWatcher thread to refresh the nodes information.
*/
-ReplSetTest.awaitRSClientHosts( mongos, replTest.getSecondaries(),
- { ok : true, secondary : true });
+ReplSetTest.awaitRSClientHosts(mongos, replTest.getSecondaries(), {ok: true, secondary: true});
//
-// We also need to wait for the primary, it's possible that the mongos may think a node is a
+// We also need to wait for the primary, it's possible that the mongos may think a node is a
// secondary but it actually changed to a primary before we send our final query.
//
-ReplSetTest.awaitRSClientHosts( mongos, replTest.getPrimary(),
- { ok : true, ismaster : true });
+ReplSetTest.awaitRSClientHosts(mongos, replTest.getPrimary(), {ok: true, ismaster: true});
// Recheck if we can still query secondaries after refreshing connections.
-jsTest.log( 'Final query to SEC' );
-assert( doesRouteToSec( coll, { v: vToFind++ }));
+jsTest.log('Final query to SEC');
+assert(doesRouteToSec(coll, {v: vToFind++}));
// Cleanup auth so Windows will be able to shutdown gracefully
-priAdminDB = replTest.getPrimary().getDB( 'admin' );
-priAdminDB.auth( 'user', 'password' );
-priAdminDB.dropUser( 'user' );
+priAdminDB = replTest.getPrimary().getDB('admin');
+priAdminDB.auth('user', 'password');
+priAdminDB.dropUser('user');
st.stop();
-