backups: use a real targetId

This commit is contained in:
Girish Ramakrishnan
2025-07-25 07:44:25 +02:00
parent cfce39c1de
commit 276db17f0c
12 changed files with 81 additions and 62 deletions
+4 -2
View File
@@ -13,7 +13,7 @@ const archives = require('../archives.js'),
safe = require('safetydance');
describe('Archives', function () {
const { setup, cleanup, auditSource } = common;
const { setup, cleanup, auditSource, getDefaultBackupTarget } = common;
const appBackup = {
id: null,
@@ -27,11 +27,13 @@ describe('Archives', function () {
manifest: null,
preserveSecs: 0,
label: '',
appConfig: { loc: 'loc1' }
appConfig: { loc: 'loc1' },
targetId: null
};
before(async function () {
await setup();
appBackup.targetId = (await getDefaultBackupTarget()).id;
appBackup.id = await backups.add(appBackup);
});
after(cleanup);
+20 -9
View File
@@ -17,7 +17,7 @@ const archives = require('../archives.js'),
timers = require('timers/promises');
describe('backup cleaner', function () {
const { setup, cleanup, app } = common;
const { setup, cleanup, app, getDefaultBackupTarget } = common;
before(setup);
after(cleanup);
@@ -139,7 +139,8 @@ describe('backup cleaner', function () {
dependsOn: [ 'backup-app-00', 'backup-app-01' ],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_0_APP_0 = { // backup of installed app
@@ -153,7 +154,8 @@ describe('backup cleaner', function () {
dependsOn: [],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_0_APP_1 = { // this app is uninstalled
@@ -167,7 +169,8 @@ describe('backup cleaner', function () {
dependsOn: [],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_1_BOX = {
@@ -181,7 +184,8 @@ describe('backup cleaner', function () {
dependsOn: [ 'backup-app-10', 'backup-app-11' ],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_1_APP_0 = {
@@ -195,7 +199,8 @@ describe('backup cleaner', function () {
dependsOn: [],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_1_APP_1 = {
@@ -209,7 +214,8 @@ describe('backup cleaner', function () {
dependsOn: [],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
const BACKUP_2_APP_2 = { // this is archived and left alone
@@ -223,11 +229,12 @@ describe('backup cleaner', function () {
dependsOn: [],
manifest: null,
preserveSecs: 0,
appConfig: null
appConfig: null,
targetId: null
};
before(async function () {
target = await backupTargets._getDefault();
target = await getDefaultBackupTarget();
await backupTargets.setConfig(target, {
provider: 'filesystem',
backupFolder: '/tmp/someplace',
@@ -258,6 +265,10 @@ describe('backup cleaner', function () {
});
it('add the backups', async function () {
for (const b of [BACKUP_0_APP_0, BACKUP_0_APP_1, BACKUP_0_BOX, BACKUP_1_APP_0, BACKUP_1_APP_1, BACKUP_1_BOX, BACKUP_2_APP_2]) {
b.targetId = target.id;
}
BACKUP_0_APP_0.id = await backups.add(BACKUP_0_APP_0);
BACKUP_0_APP_1.id = await backups.add(BACKUP_0_APP_1);
BACKUP_0_BOX.dependsOn = [ BACKUP_0_APP_0.id, BACKUP_0_APP_1.id ];
+2 -3
View File
@@ -14,7 +14,7 @@ const backups = require('../backups.js'),
safe = require('safetydance');
describe('backups', function () {
const { setup, cleanup } = common;
const { setup, cleanup, getDefaultBackupTarget } = common;
const boxBackup = {
id: null,
@@ -52,13 +52,12 @@ describe('backups', function () {
before(async function () {
await setup();
defaultBackupTarget = await backupTargets._getDefault();
defaultBackupTarget = await getDefaultBackupTarget();
boxBackup.targetId = defaultBackupTarget.id;
appBackup.targetId = defaultBackupTarget.id;
});
after(cleanup);
describe('crud', function () {
it('add succeeds', async function () {
boxBackup.id = await backups.add(boxBackup);
+1 -1
View File
@@ -32,7 +32,7 @@ describe('backups', function () {
it('can get backup target', async function () {
const backupTarget = await backupTargets.get(defaultBackupTarget.id);
expect(backupTarget.config.provider).to.be('filesystem');
expect(backupTarget.config.backupFolder).to.be('/var/backups');
expect(backupTarget.config.backupFolder).to.be.ok(); // the test sets this to some tmp location
expect(backupTarget.format).to.be('tgz');
expect(backupTarget.encryption).to.be(null);
});
+2 -2
View File
@@ -17,7 +17,7 @@ const backups = require('../backups.js'),
timers = require('timers/promises');
describe('backuptask', function () {
const { setup, cleanup } = common;
const { setup, cleanup, getDefaultBackupTarget } = common;
before(setup);
after(cleanup);
@@ -34,7 +34,7 @@ describe('backuptask', function () {
before(async function () {
fs.rmSync(backupConfig.backupFolder, { recursive: true, force: true });
defaultBackupTarget = await backupTargets._getDefault();
defaultBackupTarget = await getDefaultBackupTarget();
await backupTargets.setConfig(defaultBackupTarget, backupConfig);
});
+1 -1
View File
@@ -28,7 +28,7 @@ describe('Cloudron', function () {
expect(error.reason).to.be(BoxError.BAD_FIELD);
});
it('cannot set valid timezone', async function () {
it('can set valid timezone', async function () {
await cloudron.setTimeZone('Africa/Johannesburg');
const tz = await cloudron.getTimeZone();
expect(tz).to.be('Africa/Johannesburg');
+17 -1
View File
@@ -173,6 +173,8 @@ exports = module.exports = {
checkMails,
clearMailQueue,
getDefaultBackupTarget,
mockApiServerOrigin: 'http://localhost:6060',
dashboardDomain: domain.domain,
dashboardFqdn: `my.${domain.domain}`,
@@ -218,7 +220,16 @@ async function databaseSetup() {
await database._clear();
await appstore._setApiServerOrigin(exports.mockApiServerOrigin);
await dashboard._setLocation(constants.DASHBOARD_SUBDOMAIN, exports.dashboardDomain);
await backupTargets._addDefault();
// duplicated here since we clear the database
await backupTargets.add({
provider: 'filesystem',
label: '',
config: { backupFolder: '/tmp/boxtest' },
format: 'tgz',
retention: { keepWithinSecs: 2 * 24 * 60 * 60 },
schedule: '00 00 23 * * *'
});
}
async function domainSetup() {
@@ -263,3 +274,8 @@ async function checkMails(number) {
// return for further investigation
return emails;
}
async function getDefaultBackupTarget() {
const result = await backupTargets.list(1, 1);
return result[0];
}
+2 -4
View File
@@ -24,7 +24,7 @@ const backupTargets = require('../backuptargets.js'),
const chunk = s3._chunk;
describe('Storage', function () {
const { setup, cleanup } = common;
const { setup, cleanup, getDefaultBackupTarget } = common;
before(setup);
after(cleanup);
@@ -41,9 +41,7 @@ describe('Storage', function () {
before(async function () {
gTmpFolder = fs.mkdtempSync(path.join(os.tmpdir(), 'filesystem-storage-test_'));
defaultBackupTarget = await backupTargets._getDefault();
defaultBackupTarget = await getDefaultBackupTarget();
gBackupConfig.backupFolder = path.join(gTmpFolder, 'backups/');
});