]> git.proxmox.com Git - proxmox-backup.git/commitdiff
prune sim: correctly keep track of already included backups
authorFabian Ebner <f.ebner@proxmox.com>
Mon, 14 Dec 2020 15:04:53 +0000 (15:04 +0000)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 15 Dec 2020 13:03:18 +0000 (14:03 +0100)
This needs to happen in a separate loop, because some time intervals are not
subsets of others, i.e. weeks and months. Previously, with a daily backup
schedule, having:
* a backup on Sun, 06 Dec 2020 kept by keep-daily
* a backup on Sun, 29 Nov 2020 kept by keep-weekly
would lead to the backup on Mon, 30 Nov 2020 to be selected for keep-monthly,
because the iteration did not yet reach the backup on Sun, 29 Nov 2020 that
would mark November as being covered.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
docs/prune-simulator/prune-simulator.js

index 37d97e2c8e620e9676e1df1b30a6de633c00bbcb..7d79238375401d89393d7c3095c54c9ed9c512bf 100644 (file)
@@ -482,16 +482,17 @@ Ext.onReady(function() {
 
                backups.forEach(function(backup) {
                    let mark = backup.mark;
-                   let id = idFunc(backup);
-
-                   if (finished || alreadyIncluded[id]) {
-                       return;
+                   if (mark && mark === 'keep') {
+                       let id = idFunc(backup);
+                       alreadyIncluded[id] = true;
                    }
+               });
 
-                   if (mark) {
-                       if (mark === 'keep') {
-                           alreadyIncluded[id] = true;
-                       }
+               backups.forEach(function(backup) {
+                   let mark = backup.mark;
+                   let id = idFunc(backup);
+
+                   if (finished || alreadyIncluded[id] || mark) {
                        return;
                    }