mirror of https://github.com/mongodb/mongo
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import "jstests/multiVersion/libs/multi_rs.js";
|
|
|
|
import {ReplSetTest} from "jstests/libs/replsettest.js";
|
|
|
|
let oldVersion = "last-lts";
|
|
|
|
let nodes = {
|
|
n1: {binVersion: oldVersion},
|
|
n2: {binVersion: oldVersion},
|
|
n3: {binVersion: oldVersion},
|
|
};
|
|
|
|
let keyFile = "jstests/libs/key1";
|
|
let rst = new ReplSetTest({nodes: nodes, keyFile: keyFile});
|
|
|
|
rst.startSet();
|
|
|
|
rst.initiate(Object.extend(rst.getReplSetConfig(), {writeConcernMajorityJournalDefault: true}), null, {
|
|
initiateWithDefaultElectionTimeout: true,
|
|
});
|
|
|
|
// Wait for a primary node...
|
|
let primary = rst.getPrimary();
|
|
|
|
primary.getDB("admin").createUser({user: "root", pwd: "root", roles: ["root"]}, {w: 3});
|
|
|
|
let rsConn = new Mongo(rst.getURL());
|
|
assert.eq(1, rsConn.getDB("admin").auth("root", "root"));
|
|
assert.commandWorked(rsConn.adminCommand({hello: 1}));
|
|
print("clusterTime: " + tojson(rsConn.getDB("admin").getSession().getClusterTime()));
|
|
|
|
jsTest.log("Upgrading replica set...");
|
|
|
|
TestData.auth = true;
|
|
TestData.keyFile = keyFile;
|
|
TestData.authUser = "__system";
|
|
TestData.keyFileData = "foopdedoop";
|
|
TestData.authenticationDatabase = "local";
|
|
rst.upgradeSet({keyFile: keyFile, binVersion: "latest"});
|
|
|
|
jsTest.log("Replica set upgraded.");
|
|
|
|
TestData.keyFile = undefined;
|
|
|
|
try {
|
|
rsConn.adminCommand({hello: 1});
|
|
} catch (e) {}
|
|
|
|
assert.eq(1, rsConn.getDB("admin").auth("root", "root"));
|
|
assert.commandWorked(rsConn.adminCommand({hello: 1}));
|
|
print("clusterTime2: " + tojson(rsConn.getDB("admin").getSession().getClusterTime()));
|
|
|
|
rst.stopSet();
|