backups: add backup multiple targets
This commit is contained in:
13
src/apps.js
13
src/apps.js
@@ -164,6 +164,7 @@ const appTaskManager = require('./apptaskmanager.js'),
|
||||
domains = require('./domains.js'),
|
||||
eventlog = require('./eventlog.js'),
|
||||
fs = require('fs'),
|
||||
hush = require('./hush.js'),
|
||||
Location = require('./location.js'),
|
||||
locks = require('./locks.js'),
|
||||
logs = require('./logs.js'),
|
||||
@@ -2363,7 +2364,7 @@ async function importApp(app, data, auditSource) {
|
||||
if (error) throw error;
|
||||
|
||||
if ('password' in backupConfig) {
|
||||
backupConfig.encryption = backupTargets.generateEncryptionKeysSync(backupConfig.password);
|
||||
backupConfig.encryption = hush.generateEncryptionKeysSync(backupConfig.password);
|
||||
delete backupConfig.password;
|
||||
} else {
|
||||
backupConfig.encryption = null;
|
||||
@@ -2404,7 +2405,8 @@ async function exportApp(app, data, auditSource) {
|
||||
|
||||
if (!canBackupApp(app)) throw new BoxError(BoxError.BAD_STATE, 'App cannot be backed up in this state');
|
||||
|
||||
const taskId = await tasks.add(`${tasks.TASK_APP_BACKUP_PREFIX}${app.id}`, [ appId, { snapshotOnly: true } ]);
|
||||
const backupTarget = await backupTargets._getDefault();
|
||||
const taskId = await tasks.add(`${tasks.TASK_APP_BACKUP_PREFIX}${app.id}`, [ appId, backupTarget.id, { snapshotOnly: true } ]);
|
||||
safe(tasks.startTask(taskId, {}), { debug }); // background
|
||||
return { taskId };
|
||||
}
|
||||
@@ -2778,10 +2780,11 @@ async function backup(app, auditSource) {
|
||||
|
||||
if (!canBackupApp(app)) throw new BoxError(BoxError.BAD_STATE, 'App cannot be backed up in this state');
|
||||
|
||||
const taskId = await tasks.add(`${tasks.TASK_APP_BACKUP_PREFIX}${app.id}`, [ app.id, { snapshotOnly: false } ]);
|
||||
const backupTarget = await backupTargets._getDefault();
|
||||
|
||||
const backupConfig = await backupTargets.getConfig();
|
||||
const memoryLimit = backupConfig.limits?.memoryLimit ? Math.max(backupConfig.limits.memoryLimit/1024/1024, 1024) : 1024;
|
||||
const taskId = await tasks.add(`${tasks.TASK_APP_BACKUP_PREFIX}${app.id}`, [ app.id, backupTarget.id, { snapshotOnly: false } ]);
|
||||
|
||||
const memoryLimit = backupTarget.limits?.memoryLimit ? Math.max(backupTarget.limits.memoryLimit/1024/1024, 1024) : 1024;
|
||||
|
||||
// background
|
||||
tasks.startTask(taskId, { timeout: 24 * 60 * 60 * 1000 /* 24 hours */, nice: 15, memoryLimit, oomScoreAdjust: -999 })
|
||||
|
||||
Reference in New Issue
Block a user