[pve-devel] [PATCH v2 guest-common] vzdump: correctly handle prune-backups option in commandline and cron config

Fabian Ebner f.ebner at proxmox.com
Tue Nov 24 12:27:28 CET 2020


Previously only the hash reference was printed instead of the property string.
It's also necessary to parse the property string when reading the cron config.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/VZDump/Common.pm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/PVE/VZDump/Common.pm b/PVE/VZDump/Common.pm
index 63a4689..f35acbe 100644
--- a/PVE/VZDump/Common.pm
+++ b/PVE/VZDump/Common.pm
@@ -29,6 +29,17 @@ my $dowhash_to_dow = sub {
     return join ',', @da;
 };
 
+my $fixup_prune_backups_option = sub {
+    my ($opts) = @_;
+
+    return if !defined($opts->{'prune-backups'});
+
+    $opts->{'prune-backups'} = PVE::JSONSchema::parse_property_string(
+	'prune-backups',
+	$opts->{'prune-backups'}
+    );
+};
+
 # parse crontab style day of week
 sub parse_dow {
     my ($dowstr, $noerr) = @_;
@@ -290,6 +301,8 @@ sub parse_vzdump_cron_config {
 		$opts->{starttime} = sprintf "%02d:%02d", $hour, $minute;
 		$opts->{dow} = &$dowhash_to_dow($dowhash);
 
+		$fixup_prune_backups_option->($opts); # parse the property string
+
 		push @$jobs, $opts;
 	    };
 	    my $err = $@;
@@ -377,6 +390,10 @@ sub command_line {
 	    foreach my $path (split(/\0/, $v || '')) {
 		$cmd .= " --$p " . PVE::Tools::shellquote($path);
 	    }
+	} elsif ($p eq 'prune-backups') {
+	    my $property_string = PVE::JSONSchema::print_property_string($v, 'prune-backups');
+	    $cmd .= " --$p " . PVE::Tools::shellquote($property_string)
+		if defined($property_string) && $property_string ne '';
 	} else {
 	    $cmd .= " --$p " . PVE::Tools::shellquote($v) if defined($v) && $v ne '';
 	}
-- 
2.20.1






More information about the pve-devel mailing list