2010-07-26 11:51:40 -04:00
|
|
|
|
|
|
|
|
doTest = function( signal ) {
|
2010-07-26 15:08:04 -04:00
|
|
|
// Test add node
|
|
|
|
|
|
2011-02-28 12:57:43 -05:00
|
|
|
var replTest = new ReplSetTest( {name: 'testSet', nodes: 0, host:"localhost"} );
|
2010-07-26 15:08:04 -04:00
|
|
|
|
|
|
|
|
var first = replTest.add();
|
|
|
|
|
|
|
|
|
|
// Initiate replica set
|
|
|
|
|
assert.soon(function() {
|
2011-05-06 10:43:39 -04:00
|
|
|
var res = first.getDB("admin").runCommand({replSetInitiate: {
|
|
|
|
|
_id : 'testSet',
|
|
|
|
|
members : [{_id : 0, host : "localhost:"+replTest.ports[0]}]
|
|
|
|
|
}
|
|
|
|
|
});
|
2010-07-26 15:08:04 -04:00
|
|
|
return res['ok'] == 1;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Get status
|
|
|
|
|
assert.soon(function() {
|
|
|
|
|
var result = first.getDB("admin").runCommand({replSetGetStatus: true});
|
|
|
|
|
return result['ok'] == 1;
|
|
|
|
|
});
|
|
|
|
|
|
2011-05-06 10:43:39 -04:00
|
|
|
replTest.getMaster();
|
|
|
|
|
|
2010-07-26 15:08:04 -04:00
|
|
|
// Start a second node
|
|
|
|
|
var second = replTest.add();
|
|
|
|
|
|
|
|
|
|
// Add the second node.
|
|
|
|
|
// This runs the equivalent of rs.add(newNode);
|
2011-03-17 11:49:24 -04:00
|
|
|
print("calling add again");
|
|
|
|
|
try {
|
|
|
|
|
replTest.reInitiate();
|
|
|
|
|
}
|
|
|
|
|
catch(e) {
|
|
|
|
|
print(e);
|
|
|
|
|
}
|
2010-07-26 15:08:04 -04:00
|
|
|
|
2011-05-06 10:43:39 -04:00
|
|
|
print("try to change to localhost to "+getHostName());
|
2011-02-28 12:57:43 -05:00
|
|
|
var master = replTest.getMaster();
|
2011-05-06 10:43:39 -04:00
|
|
|
|
2011-02-28 12:57:43 -05:00
|
|
|
var config = master.getDB("local").system.replset.findOne();
|
|
|
|
|
config.version++;
|
|
|
|
|
config.members.forEach(function(m) {
|
|
|
|
|
m.host = m.host.replace("localhost", getHostName());
|
|
|
|
|
print(m.host);
|
|
|
|
|
});
|
2011-05-06 10:43:39 -04:00
|
|
|
printjson(config);
|
2011-02-28 12:57:43 -05:00
|
|
|
|
2011-03-17 11:49:24 -04:00
|
|
|
print("trying reconfig that shouldn't work");
|
2011-02-28 12:57:43 -05:00
|
|
|
var result = master.getDB("admin").runCommand({replSetReconfig: config});
|
2011-09-22 13:52:25 -04:00
|
|
|
assert.eq(result.ok, 0, tojson(result));
|
|
|
|
|
assert.eq(result.code, 13645, tojson(result));
|
2011-02-28 12:57:43 -05:00
|
|
|
|
2010-07-26 15:08:04 -04:00
|
|
|
replTest.stopSet( signal );
|
2010-07-26 11:51:40 -04:00
|
|
|
}
|
|
|
|
|
|
2010-07-29 11:32:11 -04:00
|
|
|
doTest( 15 );
|