summaryrefslogtreecommitdiff
path: root/jstests/sharding/rename_across_mongos.js
blob: 5d5dc1fcaf8193690ea876f94d9afc6d481c57b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(function() {

'use strict';

var st = new ShardingTest({ name: 'rename_across_mongos', shards: 1, mongos: 2 });
var dbName = 'RenameDB';

st.s0.getDB(dbName).dropDatabase();
st.s1.getDB(dbName).dropDatabase();

// Create collection on first mongos and insert a document
assert.commandWorked(st.s0.getDB(dbName).runCommand({ create: 'CollNameBeforeRename' }));
assert.writeOK(st.s0.getDB(dbName).CollNameBeforeRename.insert({ Key: 1, Value: 1 }));

if (st.configRS) {
    // Ensure that the second mongos will see the newly created database metadata when
    // it tries to do the collection rename.
    st.configRS.awaitLastOpCommitted();
}

// Rename collection on second mongos and ensure the document is found
assert.commandWorked(
    st.s1.getDB(dbName).CollNameBeforeRename.renameCollection('CollNameAfterRename'));
assert.eq([{ Key: 1, Value: 1 }],
          st.s1.getDB(dbName).CollNameAfterRename.find({}, { _id: false }).toArray());

st.stop();

})();