]> git.proxmox.com Git - pve-storage.git/blobdiff - PVE/Storage.pm
zfspool: add zfs_get_sorted_snapshot_list helper
[pve-storage.git] / PVE / Storage.pm
index c04b5a21b45a98f77e45f56f2d5d69208070691f..71d6ad78db1255286c64d48549f10894011b9094 100755 (executable)
@@ -103,7 +103,7 @@ PVE::Storage::Plugin->init();
 
 our $iso_extension_re = qr/\.(?:iso|img)/i;
 
-our $vztmpl_extension_re = qr/\.tar\.([gx]z)/i;
+our $vztmpl_extension_re = qr/\.tar\.(gz|xz|zst)/i;
 
 #  PVE::Storage utility functions
 
@@ -1666,10 +1666,9 @@ my $prune_mark = sub {
 sub prune_mark_backup_group {
     my ($backup_group, $keep) = @_;
 
-    my $keep_all = delete $keep->{'keep-all'};
+    my @positive_opts = grep { $_ ne 'keep-all' && $keep->{$_} > 0 } keys $keep->%*;
 
-    if ($keep_all || !scalar(grep {$_ > 0} values %{$keep})) {
-       $keep = { 'keep-all' => 1 } if $keep_all;
+    if ($keep->{'keep-all'} || scalar(@positive_opts) == 0) {
        foreach my $prune_entry (@{$backup_group}) {
            $prune_entry->{mark} = 'keep';
        }