summaryrefslogtreecommitdiff
path: root/jstests/replsets/drop_oplog.js
blob: ddac3904457b974d1cf58e9be4b35425bf1759e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Test that dropping either the replset oplog or the local database is prohibited in a replset.

(function() {
    "use strict";
    var rt = new ReplSetTest({name: "drop_oplog", nodes: 1, oplogSize: 30});

    var nodes = rt.startSet();
    rt.initiate();
    var master = rt.getPrimary();
    var ml = master.getDB('local');

    var threw = false;

    var ret = assert.commandFailed(ml.runCommand({drop: 'oplog.rs'}));
    assert.eq('can\'t drop live oplog while replicating', ret.errmsg);

    var dropOutput = ml.dropDatabase();
    assert.eq(dropOutput.ok, 0);
    assert.eq(dropOutput.errmsg, "Cannot drop 'local' database while replication is active");

    var renameOutput = ml.oplog.rs.renameCollection("poison");
    assert.eq(renameOutput.ok, 0);
    assert.eq(renameOutput.errmsg, "can't rename live oplog while replicating");

    assert.writeOK(ml.foo.insert({a: 1}));
    renameOutput = ml.foo.renameCollection("oplog.rs");
    assert.eq(renameOutput.ok, 0);
    assert.eq(renameOutput.errmsg, "can't rename to live oplog while replicating");

}());