Added MongoDbChangeStream option.

Ylian Saint-Hilaire committed May 28, 2019 at 17:42 UTC 162de5153bfed9581530d5ea1c768216b111f455
3 files changed +8 -7
db.js
+3 -3
@@ -230,8 +230,8 @@ module.exports.CreateDB = function (parent, func) {
230 });
231
232 // Setup the changeStream on the MongoDB main collection if possible
233 - try {
234 - obj.fileChangeStream = obj.file.watch([{ $match: { 'fullDocument.type': { $in: [ 'node', 'mesh', 'user' ] } } }], { fullDocument: 'updateLookup' });
233 + if (parent.args.mongodbchangestream == true) {
234 + obj.fileChangeStream = obj.file.watch([{ $match: { 'fullDocument.type': { $in: ['node', 'mesh', 'user'] } } }], { fullDocument: 'updateLookup' });
235 obj.fileChangeStream.on('change', function (change) {
236 switch (change.fullDocument.type) {
237 case 'node': { dbNodeChange(change); break; } // A node has changed
@@ -240,7 +240,7 @@ module.exports.CreateDB = function (parent, func) {
240 }
241 });
242 obj.changeStream = true;
243 - } catch (ex) { }
243 + }
244
245 // Setup MongoDB events collection and indexes
246 obj.eventsfile = db.collection('events'); // Collection containing all events
meshcentral.js
+3 -3
@@ -869,12 +869,12 @@ function CreateMeshCentralServer(config, args) {
869 obj.updateServerState('state', 'running');
870
871 // Setup auto-backup defaults
872 - if (obj.config.settings.autobackup == null) { obj.config.settings.autobackup = { backupinvervalhours: 24, keeplastdaysbackup: 10 }; }
872 + if (obj.config.settings.autobackup == null) { obj.config.settings.autobackup = { backupintervalhours: 24, keeplastdaysbackup: 10 }; }
873 else if (obj.config.settings.autobackup === false) { delete obj.config.settings.autobackup; }
874
875 // Setup auto-backup timer
876 - if (obj.config.settings.autobackup && (typeof obj.config.settings.autobackup.backupinvervalhours == 'number')) {
877 - setInterval(obj.db.performBackup, obj.config.settings.autobackup.backupinvervalhours * 60 * 60 * 1000);
876 + if (obj.config.settings.autobackup && (typeof obj.config.settings.autobackup.backupintervalhours == 'number')) {
877 + setInterval(obj.db.performBackup, obj.config.settings.autobackup.backupintervalhours * 60 * 60 * 1000);
878 }
879 });
880 });
sample-config.json
+2 -1
@@ -3,6 +3,7 @@
3 "settings": {
4 "_Cert": "myserver.mydomain.com",
5 "_MongoDb": "mongodb://127.0.0.1:27017/meshcentral",
6 + "_MongoDbChangeStream": true,
7 "_WANonly": true,
8 "_LANonly": true,
9 "_Minify": 1,
@@ -41,7 +42,7 @@
42 ]
43 },
44 "_AutoBackup": {
44 - "backupInvervalHours": 24,
45 + "backupIntervalHours": 24,
46 "keepLastDaysBackup": 10,
47 "zipPassword": "MyReallySecretPassword3",
48 "_backupPath": "C:\\backups"