0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-27 15:06:34 +01:00

SERVER-93699: Remove shell-only testing code from opcounters_active.js (#26319)

GitOrigin-RevId: 694acd84471d3000fb911cf5a993cbc96ed2191e
This commit is contained in:
Erin McNulty 2024-08-22 09:25:58 -04:00 committed by MongoDB Bot
parent 34822e2e1f
commit 7184dd30da
4 changed files with 14 additions and 69 deletions

View File

@ -184,7 +184,6 @@ globals:
shellPrintHelper: true
shellAutocomplete: true
__autocomplete__: true
getActiveCommands: true
defaultPrompt: true
___it___: true
__promptWrapper__: true

View File

@ -1,35 +0,0 @@
// checks that db.serverStatus will not throw errors when metrics tree is not present.
//
// @tags: [
// # The test runs commands that are not allowed with security token: mapreduce.
// not_allowed_with_signed_security_token
// ]
// Test the getActiveCommands function
// Should remove the listCollections section but keep the rest
var testInput = {
"isMaster": {"failed": NumberLong(0), "total": NumberLong(3)},
"mapreduce": {"failed": NumberLong(0), "total": NumberLong(1)},
"listCollections": {"failed": NumberLong(0), "total": NumberLong(0)}
};
var testExpected = {
"isMaster": {"failed": NumberLong(0), "total": NumberLong(3)},
"mapreduce": {"failed": NumberLong(0), "total": NumberLong(1)}
};
var testResult = getActiveCommands(testInput);
assert.eq(testResult, testExpected, "getActiveCommands did not return the expected result");
// Test that the serverstatus helper works
var result = db.serverStatus();
assert.neq(undefined, result, tojson(result));
// Test that the metrics tree returns
assert.neq(undefined, result.metrics, tojson(result));
// Test that the metrics.commands tree returns
assert.neq(undefined, result.metrics.commands, tojson(result));
// Test that the metrics.commands.serverStatus value is non-zero
assert.neq(0, result.metrics.commands.serverStatus.total, tojson(result));
// Test that the command returns successfully when no metrics tree is present
var result = db.serverStatus({"metrics": 0});
assert.eq(undefined, result.metrics, tojson(result));

View File

@ -0,0 +1,12 @@
// Checks that db.serverStatus will not throw errors when metrics tree is not present.
{
const result = db.serverStatus().metrics.commands;
// Test that the metrics.commands.serverStatus value is non-zero
assert.neq(0, db.serverStatus().metrics.commands.serverStatus.total, tojson(result));
}
{
// Test that the command returns successfully when no metrics tree is present
const result = db.serverStatus({"metrics": 0});
assert.eq(undefined, result.metrics, tojson(result));
}

View File

@ -1046,44 +1046,13 @@ DB.prototype.serverBuildInfo = function() {
this.getSiblingDB("admin")._runCommandWithoutApiStrict({buildinfo: 1}));
};
// Used to trim entries from the metrics.commands that have never been executed
getActiveCommands = function(tree) {
var result = {};
for (var i in tree) {
if (!tree.hasOwnProperty(i))
continue;
if (tree[i].hasOwnProperty("total")) {
if (tree[i].total > 0) {
result[i] = tree[i];
}
continue;
}
if (i == "<UNKNOWN>") {
if (tree[i] > 0) {
result[i] = tree[i];
}
continue;
}
// Handles nested commands
var subStatus = getActiveCommands(tree[i]);
if (Object.keys(subStatus).length > 0) {
result[i] = tree[i];
}
}
return result;
};
DB.prototype.serverStatus = function(options) {
var cmd = {serverStatus: 1};
if (options) {
Object.extend(cmd, options);
}
var res = this._adminCommand(cmd);
// Only prune if we have a metrics tree with commands.
if (res.metrics && res.metrics.commands) {
res.metrics.commands = getActiveCommands(res.metrics.commands);
}
return res;
return this._adminCommand(cmd);
};
DB.prototype.hostInfo = function() {