Fixed MongoDB bulk write of events and power events.

Ylian Saint-Hilaire committed Aug 26, 2021 at 14:48 UTC 88ae5a30b49e48733564dbbd2c63974bf9887fe3
2 files changed +8 -3
db.js
+2 -2
@@ -1901,7 +1901,7 @@ module.exports.CreateDB = function (parent, func) {
1901 // Perform pending operations
1902 obj.dbCounters.eventsSetBulk++;
1903 var ops = [];
1904 - for (var i in obj.eventsFilePendingSets) { ops.push({ document: obj.eventsFilePendingSets[i] }); }
1904 + for (var i in obj.eventsFilePendingSets) { ops.push({ insertOne: { document: obj.eventsFilePendingSets[i] } }); }
1905 obj.eventsFilePendingCbs = obj.eventsFilePendingCb;
1906 obj.eventsFilePendingCb = null;
1907 obj.eventsFilePendingSets = null;
@@ -1920,7 +1920,7 @@ module.exports.CreateDB = function (parent, func) {
1920 // Perform pending operations
1921 obj.dbCounters.powerSetBulk++;
1922 var ops = [];
1923 - for (var i in obj.powerFilePendingSets) { ops.push({ document: obj.powerFilePendingSets[i] }); }
1923 + for (var i in obj.powerFilePendingSets) { ops.push({ insertOne: { document: obj.powerFilePendingSets[i] } }); }
1924 obj.powerFilePendingCbs = obj.powerFilePendingCb;
1925 obj.powerFilePendingCb = null;
1926 obj.powerFilePendingSets = null;
meshagent.js
+6 -1
@@ -1481,8 +1481,13 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) {
1481 // TODO: This this extra stats from the tunnel, you can merge this into the tunnel event in the database.
1482 //console.log(command);
1483
1484 + // Validate input
1485 + if ((command.sent == null) || (typeof command.sent != 'string')) return;
1486 + if ((command.sentActual == null) || (typeof command.sentActual != 'string')) return;
1487 + if ((command.sentActual == null) || (typeof command.sentActual != 'number')) return;
1488 +
1489 // Event the session closed compression data.
1485 - var event = { etype: 'node', action: 'sessioncompression', nodeid: obj.dbNodeKey, domain: domain.id, sent: command.sent, sentActual: command.sentActual, msgid: 54, msgArgs: [command.sentRatio, command.sent, command.sentActual], msg: 'Agent closed session with ' + command.sentRatio + '% agent to server compression. Sent: ' + command.sent + ', Compressed: ' + command.sentActual + '.' };
1490 + var event = { etype: 'node', action: 'sessioncompression', nodeid: obj.dbNodeKey, domain: domain.id, sent: parseInt(command.sent), sentActual: parseInt(command.sentActual), msgid: 54, msgArgs: [command.sentRatio, parseInt(command.sent), parseInt(command.sentActual)], msg: 'Agent closed session with ' + command.sentRatio + '% agent to server compression. Sent: ' + command.sent + ', Compressed: ' + command.sentActual + '.' };
1491 parent.parent.DispatchEvent(parent.CreateMeshDispatchTargets(obj.dbMeshKey, [obj.dbNodeKey]), obj, event);
1492 break;
1493 }