On 5/6/20 10:57 AM, Fabian Grünbichler wrote: > this unifies the logic into a single place instead of all over this > module and the plugins. > > it also fixes tons of 'uninitialized value' warnings when backing up > with --dumpdir but no --storage set, since the existing conditions for > PBS targets are missing a definedness check. > > Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> > --- > > Notes: > this commit alone does not break anything, but since the plugins in > qemu-server > and pve-container can't have a versioned depends on pve-manager, we need > to > break the old versions of pve-manager in those two packages to ensure we > get a > version setting the now required option.
no we don't need that, this is experimental and we support only latest versions together anway. > > PVE/VZDump.pm | 20 +++++++++++--------- > 1 file changed, 11 insertions(+), 9 deletions(-) > > diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm > index 6fd3aeed..623c6f8c 100644 > --- a/PVE/VZDump.pm > +++ b/PVE/VZDump.pm > @@ -86,6 +86,7 @@ sub storage_info { > return { > scfg => $scfg, > maxfiles => $scfg->{maxfiles}, > + pbs => 1, > }; > } else { > return { > @@ -459,6 +460,7 @@ sub new { > if ($@); > $opts->{dumpdir} = $info->{dumpdir}; > $opts->{scfg} = $info->{scfg}; > + $opts->{pbs} = $info->{pbs}; > $maxfiles //= $info->{maxfiles}; > } elsif ($opts->{dumpdir}) { > $errors .= "dumpdir '$opts->{dumpdir}' does not exist" > @@ -651,7 +653,7 @@ sub exec_backup_task { > my $pbs_group_name; > my $pbs_snapshot_name; > > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > if ($vmtype eq 'lxc') { > $pbs_group_name = "ct/$vmid"; > } elsif ($vmtype eq 'qemu') { > @@ -697,7 +699,7 @@ sub exec_backup_task { > > if ($maxfiles && !$opts->{remove}) { > my $count; > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > my $res = > PVE::Storage::PBSPlugin::run_client_cmd($opts->{scfg}, $opts->{storage}, > 'snapshots', $pbs_group_name); > $count = scalar(@$res); > } else { > @@ -710,7 +712,7 @@ sub exec_backup_task { > if $count >= $maxfiles; > } > > - if ($opts->{scfg}->{type} ne 'pbs') { > + if (!$self->{opts}->{pbs}) { > $task->{logfile} = "$opts->{dumpdir}/$basename.log"; > } > > @@ -720,7 +722,7 @@ sub exec_backup_task { > $ext .= ".${comp_ext}"; > } > > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > die "unable to pipe backup to stdout\n" if $opts->{stdout}; > } else { > if ($opts->{stdout}) { > @@ -735,7 +737,7 @@ sub exec_backup_task { > > $task->{vmtype} = $vmtype; > > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > $task->{tmpdir} = "/var/tmp/vzdumptmp$$"; #fixme > } elsif ($opts->{tmpdir}) { > $task->{tmpdir} = "$opts->{tmpdir}/vzdumptmp$$"; > @@ -898,14 +900,14 @@ sub exec_backup_task { > } > > # fixme: ?? > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > debugmsg ('info', "creating pbs archive on storage > '$opts->{storage}'", $logfd); > } else { > debugmsg ('info', "creating archive '$task->{tarfile}'", $logfd); > } > $plugin->archive($task, $vmid, $task->{tmptar}, $comp); > > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > # fixme: log size ? > debugmsg ('info', "pbs upload finished", $logfd); > } else { > @@ -921,7 +923,7 @@ sub exec_backup_task { > # purge older backup > if ($maxfiles && $opts->{remove}) { > > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > my $args = [$pbs_group_name, '--keep-last', $maxfiles]; > my $logfunc = sub { my $line = shift; debugmsg ('info', $line, > $logfd); }; > PVE::Storage::PBSPlugin::run_raw_client_cmd( > @@ -1012,7 +1014,7 @@ sub exec_backup_task { > close ($logfd) if $logfd; > > if ($task->{tmplog}) { > - if ($opts->{scfg}->{type} eq 'pbs') { > + if ($self->{opts}->{pbs}) { > if ($task->{state} eq 'ok') { > my $param = [$pbs_snapshot_name, $task->{tmplog}]; > PVE::Storage::PBSPlugin::run_raw_client_cmd( > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel