[pve-devel] [PATCH manager] restore default value of 0 for remove/maxfiles

Fabian Ebner f.ebner at proxmox.com
Fri Nov 6 09:44:21 CET 2020


AFAICT the previous behavior is maxfiles = 1 when it's not set anywhere. 
That's the default value in the VZDump schema.

And that should happen a bit below in the code:
     if (!defined($opts->{'prune-backups'})) {
         my $maxfiles = delete $opts->{maxfiles} // $defaults->{maxfiles};
         $opts->{'prune-backups'} = { 'keep-last' => $maxfiles } if 
$maxfiles;

Or is there some weird perl behavior that makes this not work?

Am 05.11.20 um 16:21 schrieb Stefan Reiter:
> If neither the 'remove' option of vzdump nor the 'maxfiles' option in
> the storage config are set, assume a value of 0, i.e. do not delete
> anything and allow unlimited backups.
> 
> Restores previous behaviour that was broken in 7ab7d6f15f.
> 
> Also fixes a warning about using '== 0' on a non-number type.
> 
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
>   PVE/VZDump.pm | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
> index 6873ceaf..517becb1 100644
> --- a/PVE/VZDump.pm
> +++ b/PVE/VZDump.pm
> @@ -474,7 +474,7 @@ sub new {
>   
>   	    if (!defined($opts->{'prune-backups'}) && !defined($opts->{maxfiles})) {
>   		$opts->{'prune-backups'} = $info->{'prune-backups'};
> -		$opts->{maxfiles} = $info->{maxfiles};
> +		$opts->{maxfiles} = $info->{maxfiles} // 0;
>   		if ($opts->{maxfiles} == 0) {
Wouldn't adding a definedness check here be sufficient?

>   		    # zero means keep all, so avoid triggering any remove code path to be safe
>   		    $opts->{remove} = 0;
> 





More information about the pve-devel mailing list