[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