external ldap: run syncer every 4 hours
hardcoded for now but we should make this configurable
This commit is contained in:
21
src/cron.js
21
src/cron.js
@@ -15,6 +15,7 @@ exports = module.exports = {
|
||||
handleTimeZoneChanged,
|
||||
handleAutoupdatePatternChanged,
|
||||
handleDynamicDnsChanged,
|
||||
handleExternalLdapChanged,
|
||||
|
||||
DEFAULT_AUTOUPDATE_PATTERN,
|
||||
};
|
||||
@@ -29,6 +30,7 @@ const appHealthMonitor = require('./apphealthmonitor.js'),
|
||||
CronJob = require('cron').CronJob,
|
||||
debug = require('debug')('box:cron'),
|
||||
dyndns = require('./dyndns.js'),
|
||||
externalLdap = require('./externalldap.js'),
|
||||
eventlog = require('./eventlog.js'),
|
||||
janitor = require('./janitor.js'),
|
||||
mail = require('./mail.js'),
|
||||
@@ -57,7 +59,8 @@ const gJobs = {
|
||||
dynamicDns: null,
|
||||
schedulerSync: null,
|
||||
appHealthMonitor: null,
|
||||
diskUsage: null
|
||||
diskUsage: null,
|
||||
externalLdapSyncer: null
|
||||
};
|
||||
|
||||
// cron format
|
||||
@@ -173,6 +176,7 @@ async function startJobs() {
|
||||
await handleBackupPolicyChanged(await backups.getPolicy());
|
||||
await handleAutoupdatePatternChanged(await updater.getAutoupdatePattern());
|
||||
await handleDynamicDnsChanged(await network.getDynamicDns());
|
||||
await handleExternalLdapChanged(await externalLdap.getConfig());
|
||||
}
|
||||
|
||||
async function handleBackupPolicyChanged(value) {
|
||||
@@ -257,6 +261,21 @@ function handleDynamicDnsChanged(enabled) {
|
||||
}
|
||||
}
|
||||
|
||||
async function handleExternalLdapChanged(config) {
|
||||
assert.strictEqual(typeof config, 'object');
|
||||
|
||||
if (config.provider !== 'noop') {
|
||||
gJobs.externalLdapSyncer = new CronJob({
|
||||
cronTime: '00 00 */4 * * *', // every 4 hours
|
||||
onTick: async () => await safe(externalLdap.startSyncer(AuditSource.CRON), { debug }),
|
||||
start: true
|
||||
});
|
||||
} else {
|
||||
if (gJobs.externalLdapSyncer) gJobs.externalLdapSyncer.stop();
|
||||
gJobs.externalLdapSyncer = null;
|
||||
}
|
||||
}
|
||||
|
||||
async function stopJobs() {
|
||||
for (const job in gJobs) {
|
||||
if (!gJobs[job]) continue;
|
||||
|
||||
Reference in New Issue
Block a user