var ReplSet = require('./lib2/topologies/replset'),
|
|
ReadPreference = require('./lib2/topologies/read_preference');
|
|
|
|
// Attempt to connect
|
|
var server = new ReplSet([{
|
|
host: 'localhost', port: 31000
|
|
}, {
|
|
host: 'localhost', port: 31001
|
|
}], {
|
|
setName: 'rs'
|
|
});
|
|
|
|
function executeCursors(_server, cb) {
|
|
var count = 100;
|
|
|
|
for(var i = 0; i < 100; i++) {
|
|
// Execute the write
|
|
var cursor = _server.cursor('test.test', {
|
|
find: 'test.test'
|
|
, query: {a:1}
|
|
}, {readPreference: new ReadPreference('secondary')});
|
|
|
|
// Get the first document
|
|
cursor.next(function(err, doc) {
|
|
count = count - 1;
|
|
if(err) console.dir(err)
|
|
if(count == 0) return cb();
|
|
});
|
|
}
|
|
}
|
|
|
|
server.on('connect', function(_server) {
|
|
console.log("---------------------------------- 0")
|
|
// Attempt authentication
|
|
_server.auth('scram-sha-1', 'admin', 'root', 'root', function(err, r) {
|
|
console.log("---------------------------------- 1")
|
|
// console.dir(err)
|
|
// console.dir(r)
|
|
|
|
_server.insert('test.test', [{a:1}], function(err, r) {
|
|
console.log("---------------------------------- 2")
|
|
console.dir(err)
|
|
if(r)console.dir(r.result)
|
|
var name = null;
|
|
|
|
_server.on('joined', function(_t, _server) {
|
|
if(name == _server.name) {
|
|
console.log("=========== joined :: " + _t + " :: " + _server.name)
|
|
executeCursors(_server, function() {
|
|
});
|
|
}
|
|
})
|
|
|
|
// var s = _server.s.replicaSetState.secondaries[0];
|
|
// s.destroy({emitClose:true});
|
|
executeCursors(_server, function() {
|
|
console.log("============== 0")
|
|
// Attempt to force a server reconnect
|
|
var s = _server.s.replicaSetState.secondaries[0];
|
|
name = s.name;
|
|
s.destroy({emitClose:true});
|
|
// console.log("============== 1")
|
|
|
|
// _server.destroy();
|
|
// test.done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
server.connect();
|