backups: fix app restore with tgz

This commit is contained in:
Girish Ramakrishnan
2025-07-25 12:55:14 +02:00
parent 83ab701d02
commit fc4da4408c
5 changed files with 43 additions and 32 deletions
+8 -7
View File
@@ -81,16 +81,15 @@ async function upload(remotePath, targetId, dataLayoutString, progressCallback)
await backupFormat.api(backupTarget.format).upload(backupTarget, remotePath, dataLayout, progressCallback);
}
async function download(backupConfig, remotePath, format, dataLayout, progressCallback) {
assert.strictEqual(typeof backupConfig, 'object');
async function download(backupTarget, remotePath, dataLayout, progressCallback) {
assert.strictEqual(typeof backupTarget, 'object');
assert.strictEqual(typeof remotePath, 'string');
assert.strictEqual(typeof format, 'string');
assert(dataLayout instanceof DataLayout, 'dataLayout must be a DataLayout');
assert.strictEqual(typeof progressCallback, 'function');
debug(`download: Downloading ${remotePath} of format ${format} (encrypted: ${!!backupConfig.encryption}) to ${dataLayout.toString()}`);
debug(`download: Downloading ${remotePath} of format ${backupTarget.format} (encrypted: ${!!backupTarget.encryption}) to ${dataLayout.toString()}`);
await backupFormat.api(format).download(backupConfig, remotePath, dataLayout, progressCallback);
await backupFormat.api(backupTarget.format).download(backupTarget, remotePath, dataLayout, progressCallback);
}
async function restore(backupConfig, remotePath, progressCallback) {
@@ -122,9 +121,10 @@ async function downloadApp(app, restoreConfig, progressCallback) {
const dataLayout = new DataLayout(appDataDir, app.storageVolumeId ? [{ localDir: await apps.getStorageDir(app), remoteDir: 'data' }] : []);
const startTime = new Date();
const backupConfig = restoreConfig.backupConfig || await backupTargets.getConfig();
const backup = await backups.get(restoreConfig.backupId);
const backupTarget = await backupTargets.get(backup.targetId);
await download(backupConfig, restoreConfig.remotePath, restoreConfig.backupFormat, dataLayout, progressCallback);
await download(backupTarget, backup.remotePath, dataLayout, progressCallback);
debug('downloadApp: time: %s', (new Date() - startTime)/1000);
}
@@ -518,6 +518,7 @@ async function fullBackup(backupTargetId, options, progressCallback) {
// this function is called from external process
async function appBackup(appId, backupTargetId, options, progressCallback) {
assert.strictEqual(typeof appId, 'string');
assert.strictEqual(typeof backupTargetId, 'string');
assert.strictEqual(typeof options, 'object');
assert.strictEqual(typeof progressCallback, 'function');