backups.backupApp was used by the app update logic
This commit is contained in:
+20
-10
@@ -7,6 +7,7 @@ exports = module.exports = {
|
||||
restore,
|
||||
|
||||
downloadApp,
|
||||
backupApp,
|
||||
|
||||
backupMail,
|
||||
downloadMail,
|
||||
@@ -302,6 +303,24 @@ async function rotateAppBackup(backupConfig, app, tag, options, progressCallback
|
||||
return id;
|
||||
}
|
||||
|
||||
async function backupApp(app, options, progressCallback) {
|
||||
assert.strictEqual(typeof app, 'object');
|
||||
assert.strictEqual(typeof options, 'object');
|
||||
assert.strictEqual(typeof progressCallback, 'function');
|
||||
|
||||
let backupId = null;
|
||||
await locks.wait(`${locks.TYPE_APP_BACKUP_PREFIX}${app.id}`);
|
||||
if (options.snapshotOnly) {
|
||||
await snapshotApp(app, progressCallback);
|
||||
} else {
|
||||
const tag = (new Date()).toISOString().replace(/[T.]/g, '-').replace(/[:Z]/g,'');
|
||||
backupId = await backupAppWithTag(app, tag, options, progressCallback);
|
||||
}
|
||||
await locks.release(`${locks.TYPE_APP_BACKUP_PREFIX}${app.id}`);
|
||||
|
||||
return backupId;
|
||||
}
|
||||
|
||||
async function snapshotApp(app, progressCallback) {
|
||||
assert.strictEqual(typeof app, 'object');
|
||||
assert.strictEqual(typeof progressCallback, 'function');
|
||||
@@ -512,18 +531,9 @@ async function appBackup(appId, options, progressCallback) {
|
||||
const app = await apps.get(appId);
|
||||
if (!app) throw new BoxError(BoxError.BAD_FIELD, 'App not found');
|
||||
|
||||
let backupId = null;
|
||||
await progressCallback({ percent: 1, message: `Backing up ${app.fqdn}. Waiting for lock` });
|
||||
await locks.wait(`${locks.TYPE_APP_BACKUP_PREFIX}${app.id}`);
|
||||
const startTime = new Date();
|
||||
if (options.snapshotOnly) {
|
||||
await snapshotApp(app, progressCallback);
|
||||
} else {
|
||||
const tag = (new Date()).toISOString().replace(/[T.]/g, '-').replace(/[:Z]/g,'');
|
||||
backupId = await backupAppWithTag(app, tag, options, progressCallback);
|
||||
}
|
||||
await locks.release(`${locks.TYPE_APP_BACKUP_PREFIX}${app.id}`);
|
||||
|
||||
const backupId = await backupApp(app, options, progressCallback);
|
||||
await progressCallback({ percent: 100, message: `app ${app.fqdn} backup finished. Took ${(new Date() - startTime)/1000} seconds` });
|
||||
return backupId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user