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.eb...@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



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to