backup target: create snapshot and cache files per target
snapshot file tracks the snapshot directory. when app gets deleted, the cleaner will remove the upstream snapshot directory when it runs. cache files are used in rsync logic to track what was uploading into snapshot in the previous run without needing to rescan upstream.
This commit is contained in:
+4
-6
@@ -198,7 +198,7 @@ async function uploadBoxSnapshot(backupTarget, progressCallback) {
|
||||
|
||||
debug(`uploadBoxSnapshot: took ${(new Date() - startTime)/1000} seconds`);
|
||||
|
||||
await backupTargets.setSnapshotInfo('box', { timestamp: new Date().toISOString(), format: backupTarget.format });
|
||||
await backupTargets.setSnapshotInfo(backupTarget, 'box', { timestamp: new Date().toISOString() });
|
||||
}
|
||||
|
||||
async function copy(backupTarget, srcRemotePath, destRemotePath, progressCallback) {
|
||||
@@ -272,9 +272,7 @@ async function rotateAppBackup(backupTarget, app, tag, options, progressCallback
|
||||
assert.strictEqual(typeof options, 'object');
|
||||
assert.strictEqual(typeof progressCallback, 'function');
|
||||
|
||||
const snapshotInfo = backupTargets.getSnapshotInfo(app.id);
|
||||
|
||||
const manifest = snapshotInfo.restoreConfig ? snapshotInfo.restoreConfig.manifest : snapshotInfo.manifest; // compat
|
||||
const manifest = app.manifest;
|
||||
const remotePath = `${tag}/app_${app.fqdn}_v${manifest.version}`;
|
||||
|
||||
debug(`rotateAppBackup: rotating ${app.fqdn} to path ${remotePath}`);
|
||||
@@ -362,7 +360,7 @@ async function uploadAppSnapshot(backupTarget, app, progressCallback) {
|
||||
|
||||
debug(`uploadAppSnapshot: ${app.fqdn} uploaded to ${remotePath}. ${(new Date() - startTime)/1000} seconds`);
|
||||
|
||||
await backupTargets.setSnapshotInfo(app.id, { timestamp: new Date().toISOString(), manifest: app.manifest, format: backupTarget.format });
|
||||
await backupTargets.setSnapshotInfo(backupTarget, app.id, { timestamp: new Date().toISOString(), manifest: app.manifest });
|
||||
}
|
||||
|
||||
async function backupAppWithTag(app, backupTarget, tag, options, progressCallback) {
|
||||
@@ -404,7 +402,7 @@ async function uploadMailSnapshot(backupTarget, progressCallback) {
|
||||
|
||||
debug(`uploadMailSnapshot: took ${(new Date() - startTime)/1000} seconds`);
|
||||
|
||||
await backupTargets.setSnapshotInfo('mail', { timestamp: new Date().toISOString(), format: backupTarget.format });
|
||||
await backupTargets.setSnapshotInfo(backupTarget, 'mail', { timestamp: new Date().toISOString() });
|
||||
}
|
||||
|
||||
async function rotateMailBackup(backupTarget, tag, options, progressCallback) {
|
||||
|
||||
Reference in New Issue
Block a user