eventlog: add backup target eventlog

This commit is contained in:
Girish Ramakrishnan
2025-07-25 12:08:33 +02:00
parent 59aaabecc7
commit 83ab701d02
12 changed files with 77 additions and 55 deletions
+5 -5
View File
@@ -17,7 +17,7 @@ const archives = require('../archives.js'),
timers = require('timers/promises');
describe('backup cleaner', function () {
const { setup, cleanup, app, getDefaultBackupTarget } = common;
const { setup, cleanup, app, getDefaultBackupTarget, auditSource } = common;
before(setup);
after(cleanup);
@@ -238,13 +238,13 @@ describe('backup cleaner', function () {
await backupTargets.setConfig(target, {
provider: 'filesystem',
backupFolder: '/tmp/someplace',
});
await backupTargets.setRetention(target, { keepWithinSecs: 1 });
await backupTargets.setSchedule(target, '00 00 23 * * *');
}, auditSource);
await backupTargets.setRetention(target, { keepWithinSecs: 1 }, auditSource);
await backupTargets.setSchedule(target, '00 00 23 * * *', auditSource);
});
async function cleanupBackups(target) {
const taskId = await backupTargets.startCleanupTask(target, { username: 'test' });
const taskId = await backupTargets.startCleanupTask(target, auditSource);
console.log('started task', taskId);
+6 -6
View File
@@ -14,7 +14,7 @@ const backupTargets = require('../backuptargets.js'),
safe = require('safetydance');
describe('backups', function () {
const { setup, cleanup } = common;
const { setup, cleanup, auditSource } = common;
before(async function () {
await setup();
@@ -44,33 +44,33 @@ describe('backups', function () {
it('can set backup config', async function () {
const newConfig = Object.assign({}, defaultBackupTarget.config, { backupFolder: '/tmp/backups' });
await backupTargets.setConfig(defaultBackupTarget, newConfig);
await backupTargets.setConfig(defaultBackupTarget, newConfig, auditSource);
const result = await backupTargets.get(defaultBackupTarget.id);
expect(result.config.backupFolder).to.be('/tmp/backups');
});
it('cannot set invalid schedule', async function () {
const [error] = await safe(backupTargets.setSchedule(defaultBackupTarget, ''));
const [error] = await safe(backupTargets.setSchedule(defaultBackupTarget, '', auditSource));
expect(error.reason).to.be(BoxError.BAD_FIELD);
});
it('can set valid schedule', async function () {
for (const pattern of [ '00 * * * * *', constants.CRON_PATTERN_NEVER ]) {
await backupTargets.setSchedule(defaultBackupTarget, pattern);
await backupTargets.setSchedule(defaultBackupTarget, pattern, auditSource);
const backupTarget = await backupTargets.get(defaultBackupTarget.id);
expect(backupTarget.schedule).to.be(pattern);
}
});
it('cannot set invalid retention', async function () {
const [error] = await safe(backupTargets.setRetention(defaultBackupTarget, { keepWhenever: 4 }));
const [error] = await safe(backupTargets.setRetention(defaultBackupTarget, { keepWhenever: 4 }, auditSource));
expect(error.reason).to.be(BoxError.BAD_FIELD);
});
it('can set valid retention', async function () {
for (const retention of [ { keepWithinSecs: 1 }, { keepYearly: 3 }, { keepMonthly: 14 } ]) {
await backupTargets.setRetention(defaultBackupTarget, retention);
await backupTargets.setRetention(defaultBackupTarget, retention, auditSource);
const backupTarget = await backupTargets.get(defaultBackupTarget.id);
expect(backupTarget.retention).to.eql(retention);
}
+3 -3
View File
@@ -17,7 +17,7 @@ const backups = require('../backups.js'),
timers = require('timers/promises');
describe('backuptask', function () {
const { setup, cleanup, getDefaultBackupTarget } = common;
const { setup, cleanup, getDefaultBackupTarget, auditSource } = common;
before(setup);
after(cleanup);
@@ -35,11 +35,11 @@ describe('backuptask', function () {
before(async function () {
fs.rmSync(backupConfig.backupFolder, { recursive: true, force: true });
defaultBackupTarget = await getDefaultBackupTarget();
await backupTargets.setConfig(defaultBackupTarget, backupConfig);
await backupTargets.setConfig(defaultBackupTarget, backupConfig, auditSource);
});
async function createBackup(target) {
const taskId = await backupTargets.startBackupTask(target, { username: 'test' });
const taskId = await backupTargets.startBackupTask(target, auditSource);
while (true) {
await timers.setTimeout(1000);
+2 -2
View File
@@ -229,8 +229,8 @@ async function databaseSetup() {
format: 'tgz',
retention: { keepWithinSecs: 2 * 24 * 60 * 60 },
schedule: '00 00 23 * * *'
});
await backupTargets.setPrimary({ id });
}, auditSource);
await backupTargets.setPrimary({ id }, auditSource);
}
async function domainSetup() {
@@ -24,7 +24,7 @@ const backupTargets = require('../backuptargets.js'),
const chunk = s3._chunk;
describe('Storage', function () {
const { setup, cleanup, getDefaultBackupTarget } = common;
const { setup, cleanup, getDefaultBackupTarget, auditSource } = common;
before(setup);
after(cleanup);
@@ -52,12 +52,12 @@ describe('Storage', function () {
it('fails to set backup storage for bad folder', async function () {
const tmp = Object.assign({}, gBackupConfig, { backupFolder: '/root/oof' });
const [error] = await safe(backupTargets.setConfig(defaultBackupTarget, tmp));
const [error] = await safe(backupTargets.setConfig(defaultBackupTarget, tmp, auditSource));
expect(error.reason).to.equal(BoxError.BAD_FIELD);
});
it('succeeds to set backup storage', async function () {
await backupTargets.setConfig(defaultBackupTarget, gBackupConfig);
await backupTargets.setConfig(defaultBackupTarget, gBackupConfig, auditSource);
expect(fs.existsSync(path.join(gBackupConfig.backupFolder, 'snapshot'))).to.be(true); // auto-created
});
+1 -1
View File
@@ -94,7 +94,7 @@ describe('System', function () {
const usageTask = await system.getFilesystemUsage(rootFs.filesystem);
return new Promise((resolve, reject) => {
usageTask.on('data', (type, data) => console.log(type, data));
// usageTask.on('data', (type, data) => console.log(type, data));
usageTask.on('done', (error) => {
if (error.errorMessage) reject(new Error(error.errorMessage)); else resolve();
});