diff options
author | Sophia Tan <sophia_tll@hotmail.com> | 2021-12-16 06:00:16 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-12-16 06:24:38 +0000 |
commit | ff09a4be4a337eb39616368d2806027233cf6f46 (patch) | |
tree | 6176595ef52783dad2ea320a54f5874d076dbbd9 | |
parent | c3a0c1fd88a26d52b17b8895a90fade3a2bc2174 (diff) | |
download | mongo-ff09a4be4a337eb39616368d2806027233cf6f46.tar.gz |
SERVER-61463 Create javascript library for adding and removing entries from config.shards
-rw-r--r-- | jstests/serverless/rd.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/jstests/serverless/rd.js b/jstests/serverless/rd.js new file mode 100644 index 00000000000..9662dd7f2aa --- /dev/null +++ b/jstests/serverless/rd.js @@ -0,0 +1,35 @@ +/** + * Set up a mocked Rd which supports to add and remove entries from config.shards. + */ + +class Rd { + constructor() { + jsTest.log("Going to create and start Rd."); + this.rs = new ReplSetTest({name: "Rd", nodes: 3, useHostName: true}); + this.rs.startSet({journal: "", storageEngine: 'wiredTiger'}); + this.rs.initiate(); + + jsTest.log("Going to create connection with Rd."); + this.conn = new Mongo(this.rs.getURL()); + } + + addShard(shardId, shardUrl) { + jsTestLog("Add entry to config.shards: " + shardId); + + let coll = this.conn.getCollection("config.shards"); + let request = {insert: coll.getName(), documents: [{_id: shardId, host: shardUrl}]}; + assert.commandWorked(coll.runCommand(request)); + } + + removeShard(shardId) { + jsTestLog("Remove entry from config.shards: " + shardId); + + let coll = this.conn.getCollection("config.shards"); + let request = {delete: coll.getName(), deletes: [{q: {_id: shardId}, limit: 1}]}; + assert.commandWorked(coll.runCommand(request)); + } + + stop() { + this.rs.stopSet(); + } +} |