summaryrefslogtreecommitdiff
path: root/jstests/replsets/initial_sync3.js
diff options
context:
space:
mode:
authorKristina Chodorow <kristina@10gen.com>2010-11-17 18:30:24 -0500
committerKristina Chodorow <kristina@10gen.com>2010-11-17 18:30:24 -0500
commit05218bfa2730d6c0aff8f84aeb46139b928703e5 (patch)
tree1846070e345faa8acc92fe2c740d48fa6e756f19 /jstests/replsets/initial_sync3.js
parent4c11954523aeac6f3036df8f2fe4e9348c295a7f (diff)
downloadmongo-05218bfa2730d6c0aff8f84aeb46139b928703e5.tar.gz
lots of options for initial sync SERVER-1829
Diffstat (limited to 'jstests/replsets/initial_sync3.js')
-rw-r--r--jstests/replsets/initial_sync3.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/jstests/replsets/initial_sync3.js b/jstests/replsets/initial_sync3.js
new file mode 100644
index 00000000000..9e901639498
--- /dev/null
+++ b/jstests/replsets/initial_sync3.js
@@ -0,0 +1,60 @@
+/* test initial sync options
+ *
+ * {state : 1}
+ * {state : 2}
+ * {name : host+":"+port}
+ * {_id : 2}
+ * {optime : now}
+ * {optime : 1970}
+ */
+
+load("jstests/replsets/rslib.js");
+var name = "initialsync3";
+var host = getHostName();
+var port = allocatePorts(7);
+
+print("Start set with three nodes");
+var replTest = new ReplSetTest( {name: name, nodes: 7} );
+var nodes = replTest.startSet();
+replTest.initiate({
+ _id : name,
+ members : [
+ {_id:0, host : host+":"+port[0]},
+ {_id:1, host : host+":"+port[1], initialSync : {state : 1}},
+ {_id:2, host : host+":"+port[2], initialSync : {state : 2}},
+ {_id:3, host : host+":"+port[3], initialSync : {name : host+":"+port[2]}},
+ {_id:4, host : host+":"+port[4], initialSync : {_id : 2}},
+ {_id:5, host : host+":"+port[5], initialSync : {optime : new Date()}},
+ {_id:6, host : host+":"+port[6], initialSync : {optime : new Date(0)}}
+ ]});
+
+var master = replTest.getMaster();
+
+
+print("Initial sync");
+master.getDB("foo").bar.baz.insert({x:1});
+
+replTest.awaitReplication();
+
+print("Make sure everyone's secondary");
+wait(function() {
+ var status = master.getDB("admin").runCommand({replSetGetStatus:1});
+ occasionally(function() {
+ printjson(status);
+ });
+
+ if (!status.members) {
+ return false;
+ }
+
+ for (i=0; i<7; i++) {
+ if (status.members[i].state != 1 && status.members[i].state != 2) {
+ return false;
+ }
+ }
+ return true;
+
+ });
+
+replTest.stopSet();
+