127 lines
4.5 KiB
JavaScript
127 lines
4.5 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 } ) );
|