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"