117 lines
3.9 KiB
JavaScript
117 lines
3.9 KiB
JavaScript
// Tests for accessing logLevel server parameter using getParameter/setParameter commands
|
|
// and shell helpers.
|
|
|
|
old = db.adminCommand({"getParameter": "*"});
|
|
tmp1 = db.adminCommand({"setParameter": 1, "logLevel": 5});
|
|
tmp2 = db.adminCommand({"setParameter": 1, "logLevel": old.logLevel});
|
|
now = db.adminCommand({"getParameter": "*"});
|
|
|
|
assert.eq(old, now, "A");
|
|
assert.eq(old.logLevel, tmp1.was, "B");
|
|
assert.eq(5, tmp2.was, "C");
|
|
|
|
//
|
|
// component verbosity
|
|
//
|
|
|
|
// verbosity for log component hierarchy
|
|
printjson(old.logComponentVerbosity);
|
|
assert.neq(undefined, old.logComponentVerbosity, "log component verbosity not available");
|
|
assert.eq(old.logLevel,
|
|
old.logComponentVerbosity.verbosity,
|
|
"default component verbosity should match logLevel");
|
|
assert.neq(undefined,
|
|
old.logComponentVerbosity.storage.journal.verbosity,
|
|
"journal verbosity not available");
|
|
|
|
// Non-object log component verbosity should be rejected.
|
|
assert.commandFailed(db.adminCommand({"setParameter": 1, logComponentVerbosity: "not an object"}));
|
|
|
|
// Non-numeric verbosity for component should be rejected.
|
|
assert.commandFailed(db.adminCommand(
|
|
{"setParameter": 1, logComponentVerbosity: {storage: {journal: {verbosity: "not a number"}}}}));
|
|
|
|
// Invalid component shall be rejected
|
|
assert.commandFailed(
|
|
db.adminCommand({"setParameter": 1, logComponentVerbosity: {NoSuchComponent: {verbosity: 2}}}));
|
|
|
|
// Set multiple component log levels at once.
|
|
(function() {
|
|
assert.commandWorked(db.adminCommand({
|
|
"setParameter": 1,
|
|
logComponentVerbosity: {
|
|
verbosity: 2,
|
|
accessControl: {verbosity: 0},
|
|
storage: {verbosity: 3, journal: {verbosity: 5}}
|
|
}
|
|
}));
|
|
|
|
var result =
|
|
assert.commandWorked(db.adminCommand({"getParameter": 1, logComponentVerbosity: 1}))
|
|
.logComponentVerbosity;
|
|
|
|
assert.eq(2, result.verbosity);
|
|
assert.eq(0, result.accessControl.verbosity);
|
|
assert.eq(3, result.storage.verbosity);
|
|
assert.eq(5, result.storage.journal.verbosity);
|
|
})();
|
|
|
|
// Set multiple component log levels at once.
|
|
// Unrecognized field names not mapping to a log component shall be rejected
|
|
// No changes shall apply.
|
|
(function() {
|
|
assert.commandFailed(db.adminCommand({
|
|
"setParameter": 1,
|
|
logComponentVerbosity: {
|
|
verbosity: 6,
|
|
accessControl: {verbosity: 5},
|
|
storage: {verbosity: 4, journal: {verbosity: 6}},
|
|
NoSuchComponent: {verbosity: 2},
|
|
extraField: 123
|
|
}
|
|
}));
|
|
|
|
var result =
|
|
assert.commandWorked(db.adminCommand({"getParameter": 1, logComponentVerbosity: 1}))
|
|
.logComponentVerbosity;
|
|
|
|
assert.eq(2, result.verbosity);
|
|
assert.eq(0, result.accessControl.verbosity);
|
|
assert.eq(3, result.storage.verbosity);
|
|
assert.eq(5, result.storage.journal.verbosity);
|
|
})();
|
|
|
|
// Clear verbosity for default and journal.
|
|
(function() {
|
|
assert.commandWorked(db.adminCommand({
|
|
"setParameter": 1,
|
|
logComponentVerbosity: {verbosity: -1, storage: {journal: {verbosity: -1}}}
|
|
}));
|
|
|
|
var result =
|
|
assert.commandWorked(db.adminCommand({"getParameter": 1, logComponentVerbosity: 1}))
|
|
.logComponentVerbosity;
|
|
|
|
assert.eq(0, result.verbosity);
|
|
assert.eq(0, result.accessControl.verbosity);
|
|
assert.eq(3, result.storage.verbosity);
|
|
assert.eq(-1, result.storage.journal.verbosity);
|
|
})();
|
|
|
|
// Set accessControl verbosity using numerical level instead of
|
|
// subdocument with 'verbosity' field.
|
|
(function() {
|
|
assert.commandWorked(
|
|
db.adminCommand({"setParameter": 1, logComponentVerbosity: {accessControl: 5}}));
|
|
|
|
var result =
|
|
assert.commandWorked(db.adminCommand({"getParameter": 1, logComponentVerbosity: 1}))
|
|
.logComponentVerbosity;
|
|
|
|
assert.eq(5, result.accessControl.verbosity);
|
|
})();
|
|
|
|
// Restore old verbosity values.
|
|
assert.commandWorked(
|
|
db.adminCommand({"setParameter": 1, logComponentVerbosity: old.logComponentVerbosity}));
|