diff --git a/src/cron.js b/src/cron.js index a3c6d99e5..a1afea165 100644 --- a/src/cron.js +++ b/src/cron.js @@ -174,7 +174,7 @@ function backupConfigChanged(value, tz) { assert.strictEqual(typeof value, 'object'); assert.strictEqual(typeof tz, 'string'); - debug(`backupConfigChanged: interval ${value.intervalSecs} (${tz})`); + debug(`backupConfigChanged: schedule ${value.schedulePattern} (${tz})`); if (gJobs.backup) gJobs.backup.stop(); diff --git a/src/routes/test/backups-test.js b/src/routes/test/backups-test.js index 0c92fd707..824d8774a 100644 --- a/src/routes/test/backups-test.js +++ b/src/routes/test/backups-test.js @@ -62,7 +62,7 @@ function setup(done) { }, function createSettings(callback) { - settings.setBackupConfig({ provider: 'filesystem', backupFolder: '/tmp', format: 'tgz', retentionPolicy: { keepWithinSecs: 2 * 24 * 60 * 60 } }, callback); + settings.setBackupConfig({ provider: 'filesystem', backupFolder: '/tmp', format: 'tgz', retentionPolicy: { keepWithinSecs: 2 * 24 * 60 * 60 }, schedulePattern: '00 00 23 * * *' }, callback); } ], done); } diff --git a/src/routes/test/cloudron-test.js b/src/routes/test/cloudron-test.js index 068965602..38784475a 100644 --- a/src/routes/test/cloudron-test.js +++ b/src/routes/test/cloudron-test.js @@ -32,7 +32,7 @@ function setup(done) { server.start.bind(server), database._clear, settings._setApiServerOrigin.bind(null, 'http://localhost:6060'), - settings.setBackupConfig.bind(null, { provider: 'filesystem', backupFolder: '/tmp', format: 'tgz', retentionPolicy: { keepWithinSecs: 10000 } }) + settings.setBackupConfig.bind(null, { provider: 'filesystem', backupFolder: '/tmp', format: 'tgz', retentionPolicy: { keepWithinSecs: 10000 }, schedulePattern: '00 00 23 * * *' }) ], done); } diff --git a/src/routes/test/settings-test.js b/src/routes/test/settings-test.js index 0e50e67a6..b2bf1aea8 100644 --- a/src/routes/test/settings-test.js +++ b/src/routes/test/settings-test.js @@ -220,7 +220,7 @@ describe('Settings API', function () { format: 'tgz', encryption: null, retentionPolicy: { keepWithinSecs: 2 * 24 * 60 * 60 }, // 2 days - intervalSecs: 24 * 60 * 60 // ~1 day + schedulePattern: '00 00 23 * * *' // every day at 11pm }; it('can get backup_config (default)', function (done) { @@ -259,9 +259,9 @@ describe('Settings API', function () { }); }); - it('cannot set backup_config without intervalSecs', function (done) { + it('cannot set backup_config without schedulePattern', function (done) { var tmp = JSON.parse(JSON.stringify(defaultConfig)); - delete tmp.intervalSecs; + delete tmp.schedulePattern; superagent.post(SERVER_URL + '/api/v1/settings/backup_config') .query({ access_token: token }) @@ -272,9 +272,9 @@ describe('Settings API', function () { }); }); - it('cannot set backup_config with invalid intervalSecs', function (done) { + it('cannot set backup_config with invalid schedulePattern', function (done) { var tmp = JSON.parse(JSON.stringify(defaultConfig)); - tmp.intervalSecs = 'not a number'; + tmp.schedulePattern = 'not a pattern'; superagent.post(SERVER_URL + '/api/v1/settings/backup_config') .query({ access_token: token }) diff --git a/src/settings.js b/src/settings.js index 2a55e8708..df50bf938 100644 --- a/src/settings.js +++ b/src/settings.js @@ -150,7 +150,7 @@ let gDefaults = (function () { format: 'tgz', encryption: null, retentionPolicy: { keepWithinSecs: 2 * 24 * 60 * 60 }, // 2 days - intervalSecs: 24 * 60 * 60 // ~1 day + schedulePattern: '00 00 23 * * *' // every day at 11pm }; result[exports.PLATFORM_CONFIG_KEY] = {}; result[exports.EXTERNAL_LDAP_KEY] = { diff --git a/src/test/backups-test.js b/src/test/backups-test.js index e87cf5c3d..51ea0b453 100644 --- a/src/test/backups-test.js +++ b/src/test/backups-test.js @@ -411,7 +411,8 @@ describe('backups', function () { provider: 'filesystem', backupFolder: path.join(os.tmpdir(), 'backups-test-filesystem'), format: 'tgz', - retentionPolicy: { keepWithinSecs: 10000 } + retentionPolicy: { keepWithinSecs: 10000 }, + schedulePattern: '00 00 23 * * *' }; before(function (done) {