2018-01-19 16:24:05 -05:00
|
|
|
/**
|
|
|
|
|
* Test of complex sharding initialization
|
|
|
|
|
*/
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2024-08-20 17:54:15 -04:00
|
|
|
import {ShardingTest} from "jstests/libs/shardingtest.js";
|
|
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
function shardingTestUsingObjects() {
|
2025-08-28 15:11:44 -04:00
|
|
|
let st = new ShardingTest({
|
2018-01-19 16:24:05 -05:00
|
|
|
mongos: {s0: {verbose: 6}, s1: {verbose: 5}},
|
|
|
|
|
config: {c0: {verbose: 4}},
|
2021-07-09 19:39:00 +00:00
|
|
|
shards: {
|
|
|
|
|
d0: {verbose: 3},
|
|
|
|
|
rs1: {
|
|
|
|
|
nodes: {
|
|
|
|
|
d0: {verbose: 2},
|
|
|
|
|
a1: {verbose: 1},
|
|
|
|
|
d2: {verbose: 2},
|
|
|
|
|
d3: {verbose: 2},
|
2025-08-21 10:17:44 -07:00
|
|
|
d4: {verbose: 2},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2018-01-19 16:24:05 -05:00
|
|
|
});
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let s0 = st.s0;
|
2018-01-19 16:24:05 -05:00
|
|
|
assert.eq(s0, st._mongos[0]);
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let s1 = st.s1;
|
2018-01-19 16:24:05 -05:00
|
|
|
assert.eq(s1, st._mongos[1]);
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let c0 = st.c0;
|
2021-07-21 04:07:28 +00:00
|
|
|
assert.eq(c0, st.configRS.nodes[0]);
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs0 = st.rs0;
|
2018-02-07 17:38:49 -05:00
|
|
|
assert.eq(rs0, st._rsObjects[0]);
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs1 = st.rs1;
|
2018-01-19 16:24:05 -05:00
|
|
|
assert.eq(rs1, st._rsObjects[1]);
|
2012-04-28 20:22:32 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs0_d0 = rs0.nodes[0];
|
2018-02-07 17:38:49 -05:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs1_d0 = rs1.nodes[0];
|
|
|
|
|
let rs1_a1 = rs1.nodes[1];
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
assert(s0.commandLine.hasOwnProperty("vvvvvv"));
|
|
|
|
|
assert(s1.commandLine.hasOwnProperty("vvvvv"));
|
2023-04-17 22:11:41 +00:00
|
|
|
if (!TestData.configShard) {
|
2023-04-04 01:37:34 +00:00
|
|
|
assert(c0.commandLine.hasOwnProperty("vvvv"));
|
|
|
|
|
} else {
|
|
|
|
|
// Same as shard 1.
|
|
|
|
|
assert(c0.commandLine.hasOwnProperty("vvv"));
|
|
|
|
|
}
|
2018-02-07 17:38:49 -05:00
|
|
|
assert(rs0_d0.commandLine.hasOwnProperty("vvv"));
|
2018-01-19 16:24:05 -05:00
|
|
|
assert(rs1_d0.commandLine.hasOwnProperty("vv"));
|
|
|
|
|
assert(rs1_a1.commandLine.hasOwnProperty("v"));
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
st.stop();
|
|
|
|
|
}
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
function shardingTestUsingArrays() {
|
2025-08-28 15:11:44 -04:00
|
|
|
let st = new ShardingTest({
|
2018-01-19 16:24:05 -05:00
|
|
|
mongos: [{verbose: 5}, {verbose: 4}],
|
|
|
|
|
config: [{verbose: 3}],
|
2025-08-21 10:17:44 -07:00
|
|
|
shards: [{verbose: 2}, {verbose: 1}],
|
2018-01-19 16:24:05 -05:00
|
|
|
});
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let s0 = st.s0;
|
2018-01-19 16:24:05 -05:00
|
|
|
assert.eq(s0, st._mongos[0]);
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let s1 = st.s1;
|
2018-01-19 16:24:05 -05:00
|
|
|
assert.eq(s1, st._mongos[1]);
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let c0 = st.c0;
|
2021-07-21 04:07:28 +00:00
|
|
|
assert.eq(c0, st.configRS.nodes[0]);
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs0 = st.rs0;
|
2018-02-07 17:38:49 -05:00
|
|
|
assert.eq(rs0, st._rsObjects[0]);
|
|
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs1 = st.rs1;
|
2018-02-07 17:38:49 -05:00
|
|
|
assert.eq(rs1, st._rsObjects[1]);
|
|
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs0_d0 = rs0.nodes[0];
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2025-08-28 15:11:44 -04:00
|
|
|
let rs1_d0 = rs1.nodes[0];
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
assert(s0.commandLine.hasOwnProperty("vvvvv"));
|
|
|
|
|
assert(s1.commandLine.hasOwnProperty("vvvv"));
|
2023-04-17 22:11:41 +00:00
|
|
|
if (!TestData.configShard) {
|
2023-04-04 01:37:34 +00:00
|
|
|
assert(c0.commandLine.hasOwnProperty("vvv"));
|
|
|
|
|
} else {
|
|
|
|
|
// Same as shard 1.
|
|
|
|
|
assert(c0.commandLine.hasOwnProperty("vv"));
|
|
|
|
|
}
|
2018-02-07 17:38:49 -05:00
|
|
|
assert(rs0_d0.commandLine.hasOwnProperty("vv"));
|
|
|
|
|
assert(rs1_d0.commandLine.hasOwnProperty("v"));
|
2011-10-13 17:43:35 -04:00
|
|
|
|
2018-01-19 16:24:05 -05:00
|
|
|
st.stop();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
shardingTestUsingObjects();
|
2024-03-27 19:26:15 +01:00
|
|
|
shardingTestUsingArrays();
|