From 20d3faa306554c5bcbd2ef222c2a6817d886ae12 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 29 Mar 2018 10:48:57 +0200 Subject: [PATCH] fix(xo-server/backups-ng): delete unused snapshot on delta failure --- packages/xo-server/src/xo-mixins/backups-ng/index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/xo-server/src/xo-mixins/backups-ng/index.js b/packages/xo-server/src/xo-mixins/backups-ng/index.js index 1ffad7518..395a77b33 100644 --- a/packages/xo-server/src/xo-mixins/backups-ng/index.js +++ b/packages/xo-server/src/xo-mixins/backups-ng/index.js @@ -562,7 +562,6 @@ export default class BackupNg { // 2. next run should be a full // - [ ] add a lock on the job/VDI during merge which should prevent other merges and restoration // - [ ] import for delta - // - [ ] do not delete rolling snapshot in case of failure! // // Low: // - [ ] check merge/transfert duration/size are what we want for delta @@ -591,6 +590,7 @@ export default class BackupNg { // - [x] backups should be deletable from the API // - [x] adding and removing VDIs should behave // - [x] isolate VHD chains by job + // - [x] do not delete rolling snapshot in case of failure! @defer async _backupVm ( $defer: any, @@ -793,6 +793,11 @@ export default class BackupNg { transferSize: xva.size, } } else if (job.mode === 'delta') { + if (snapshotRetention === 0) { + // only keep the snapshot in case of success + $defer.onFailure.call(xapi, 'deleteVm', snapshot) + } + const baseSnapshot = last(snapshots) if (baseSnapshot !== undefined) { console.log(baseSnapshot.$id) // TODO: remove