backups: add backup multiple targets
This commit is contained in:
@@ -13,7 +13,6 @@ const archives = require('../archives.js'),
|
||||
common = require('./common.js'),
|
||||
expect = require('expect.js'),
|
||||
moment = require('moment'),
|
||||
settings = require('../settings.js'),
|
||||
tasks = require('../tasks.js'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
@@ -127,6 +126,8 @@ describe('backup cleaner', function () {
|
||||
});
|
||||
|
||||
describe('task', function () {
|
||||
let target;
|
||||
|
||||
const BACKUP_0_BOX = {
|
||||
id: null,
|
||||
remotePath: 'backup-box-0',
|
||||
@@ -226,17 +227,17 @@ describe('backup cleaner', function () {
|
||||
};
|
||||
|
||||
before(async function () {
|
||||
await settings._set(settings.BACKUP_STORAGE_KEY, JSON.stringify({
|
||||
target = await backupTargets._getDefault();
|
||||
await backupTargets.setConfig(target, {
|
||||
provider: 'filesystem',
|
||||
password: 'supersecret',
|
||||
backupFolder: '/tmp/someplace',
|
||||
format: 'tgz'
|
||||
}));
|
||||
await backupTargets.setPolicy({ retention: { keepWithinSecs: 1 }, schedule: '00 00 23 * * *' });
|
||||
});
|
||||
await backupTargets.setRetention(target, { keepWithinSecs: 1 });
|
||||
await backupTargets.setSchedule(target, '00 00 23 * * *');
|
||||
});
|
||||
|
||||
async function cleanupBackups() {
|
||||
const taskId = await backupTargets.startCleanupTask({ username: 'test' });
|
||||
async function cleanupBackups(target) {
|
||||
const taskId = await backupTargets.startCleanupTask(target, { username: 'test' });
|
||||
|
||||
console.log('started task', taskId);
|
||||
|
||||
@@ -253,7 +254,7 @@ describe('backup cleaner', function () {
|
||||
}
|
||||
|
||||
it('succeeds without backups', async function () {
|
||||
await cleanupBackups();
|
||||
await cleanupBackups(target);
|
||||
});
|
||||
|
||||
it('add the backups', async function () {
|
||||
@@ -274,7 +275,7 @@ describe('backup cleaner', function () {
|
||||
});
|
||||
|
||||
it('succeeds with box backups, keeps latest', async function () {
|
||||
await cleanupBackups();
|
||||
await cleanupBackups(target);
|
||||
|
||||
const results = await backupListing.getByTypePaged(backupListing.BACKUP_TYPE_BOX, 1, 1000);
|
||||
expect(results.length).to.equal(1);
|
||||
@@ -286,7 +287,7 @@ describe('backup cleaner', function () {
|
||||
});
|
||||
|
||||
it('does not remove expired backups if only one left', async function () {
|
||||
await cleanupBackups();
|
||||
await cleanupBackups(target);
|
||||
|
||||
const results = await backupListing.getByTypePaged(backupListing.BACKUP_TYPE_BOX, 1, 1000);
|
||||
expect(results[0].id).to.equal(BACKUP_1_BOX.id);
|
||||
@@ -304,7 +305,7 @@ describe('backup cleaner', function () {
|
||||
|
||||
await timers.setTimeout(2000); // wait for expiration
|
||||
|
||||
await cleanupBackups();
|
||||
await cleanupBackups(target);
|
||||
|
||||
let result = await backupListing.getByTypePaged(backupListing.BACKUP_TYPE_APP, 1, 1000);
|
||||
expect(result.length).to.equal(4);
|
||||
|
||||
Reference in New Issue
Block a user