diff options
Diffstat (limited to 'jstests/auth/curop_auth_info.js')
-rw-r--r-- | jstests/auth/curop_auth_info.js | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/jstests/auth/curop_auth_info.js b/jstests/auth/curop_auth_info.js index 94f7426e4f1..2bb329b1eee 100644 --- a/jstests/auth/curop_auth_info.js +++ b/jstests/auth/curop_auth_info.js @@ -1,77 +1,77 @@ (function() { - 'use strict'; +'use strict'; - const runTest = function(conn, failPointConn) { - jsTestLog("Setting up users"); - const db = conn.getDB("admin"); - assert.commandWorked( - db.runCommand({createUser: "admin", pwd: "pwd", roles: jsTest.adminUserRoles})); - assert.eq(db.auth("admin", "pwd"), 1); - assert.commandWorked(db.runCommand({createUser: "testuser", pwd: "pwd", roles: []})); - db.grantRolesToUser("testuser", [{role: "readWrite", db: "test"}]); +const runTest = function(conn, failPointConn) { + jsTestLog("Setting up users"); + const db = conn.getDB("admin"); + assert.commandWorked( + db.runCommand({createUser: "admin", pwd: "pwd", roles: jsTest.adminUserRoles})); + assert.eq(db.auth("admin", "pwd"), 1); + assert.commandWorked(db.runCommand({createUser: "testuser", pwd: "pwd", roles: []})); + db.grantRolesToUser("testuser", [{role: "readWrite", db: "test"}]); - const queryFn = function() { - assert.eq(db.getSiblingDB("admin").auth("testuser", "pwd"), 1); - let testDB = db.getSiblingDB("test"); - testDB.test.insert({}); - assert.eq(testDB.test.find({}).comment("curop_auth_info.js query").itcount(), 1); - }; - - jsTestLog("blocking finds and starting parallel shell to create op"); - assert.commandWorked(failPointConn.getDB("admin").runCommand( - {configureFailPoint: "waitInFindBeforeMakingBatch", mode: "alwaysOn"})); - let finderWait = startParallelShell(queryFn, conn.port); - let myOp; + const queryFn = function() { + assert.eq(db.getSiblingDB("admin").auth("testuser", "pwd"), 1); + let testDB = db.getSiblingDB("test"); + testDB.test.insert({}); + assert.eq(testDB.test.find({}).comment("curop_auth_info.js query").itcount(), 1); + }; - assert.soon(function() { - const curOpResults = db.runCommand({currentOp: 1}); - assert.commandWorked(curOpResults); - print(tojson(curOpResults)); - const myOps = curOpResults["inprog"].filter((op) => { - return (op["command"]["comment"] == "curop_auth_info.js query"); - }); + jsTestLog("blocking finds and starting parallel shell to create op"); + assert.commandWorked(failPointConn.getDB("admin").runCommand( + {configureFailPoint: "waitInFindBeforeMakingBatch", mode: "alwaysOn"})); + let finderWait = startParallelShell(queryFn, conn.port); + let myOp; - if (myOps.length == 0) { - return false; - } - myOp = myOps[0]; - return true; + assert.soon(function() { + const curOpResults = db.runCommand({currentOp: 1}); + assert.commandWorked(curOpResults); + print(tojson(curOpResults)); + const myOps = curOpResults["inprog"].filter((op) => { + return (op["command"]["comment"] == "curop_auth_info.js query"); }); - jsTestLog("found op"); - assert.commandWorked(failPointConn.getDB("admin").runCommand( - {configureFailPoint: "waitInFindBeforeMakingBatch", mode: "off"})); - finderWait(); - - const authedUsers = myOp["effectiveUsers"]; - const impersonators = myOp["runBy"]; - print(tojson(authedUsers), tojson(impersonators)); - if (impersonators) { - assert.eq(authedUsers.length, 1); - assert.docEq(authedUsers[0], {user: "testuser", db: "admin"}); - assert(impersonators); - assert.eq(impersonators.length, 1); - assert.docEq(impersonators[0], {user: "__system", db: "local"}); - } else { - assert(authedUsers); - assert.eq(authedUsers.length, 1); - assert.docEq(authedUsers[0], {user: "testuser", db: "admin"}); + if (myOps.length == 0) { + return false; } - }; + myOp = myOps[0]; + return true; + }); - const m = MongoRunner.runMongod(); - runTest(m, m); - MongoRunner.stopMongod(m); + jsTestLog("found op"); + assert.commandWorked(failPointConn.getDB("admin").runCommand( + {configureFailPoint: "waitInFindBeforeMakingBatch", mode: "off"})); + finderWait(); - const st = new ShardingTest({ - shards: 1, - mongos: 1, - config: 1, - keyFile: 'jstests/libs/key1', - other: { - shardAsReplicaSet: false, - } - }); - runTest(st.s0, st.d0); - st.stop(); + const authedUsers = myOp["effectiveUsers"]; + const impersonators = myOp["runBy"]; + print(tojson(authedUsers), tojson(impersonators)); + if (impersonators) { + assert.eq(authedUsers.length, 1); + assert.docEq(authedUsers[0], {user: "testuser", db: "admin"}); + assert(impersonators); + assert.eq(impersonators.length, 1); + assert.docEq(impersonators[0], {user: "__system", db: "local"}); + } else { + assert(authedUsers); + assert.eq(authedUsers.length, 1); + assert.docEq(authedUsers[0], {user: "testuser", db: "admin"}); + } +}; + +const m = MongoRunner.runMongod(); +runTest(m, m); +MongoRunner.stopMongod(m); + +const st = new ShardingTest({ + shards: 1, + mongos: 1, + config: 1, + keyFile: 'jstests/libs/key1', + other: { + shardAsReplicaSet: false, + } +}); +runTest(st.s0, st.d0); +st.stop(); })(); |