[pve-devel] [PATCH v2 manager 3/8] only use plugin after truthiness check

Fabian Ebner f.ebner at proxmox.com
Thu Oct 22 12:30:12 CEST 2020


Commit 62fc2aa9fa2eb82596f98aa014d3b0ccfc0ec542 introduced
a usage of plugin before the truthiness check for plugin.

At the moment it might not be possible to trigger this anymore,
because of the guest inclusion rework that happened later on.
But to make tasks for inexistent guest IDs visibly fail again,
this check will be necessary. Also, to get the error message in
the mail, it needs to fail inside the eval block.

Thus, keep the check in the eval block and move the block of code
using the plugin to below the check.

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

diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index ee4e68b5..e6082f3b 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -672,25 +672,12 @@ sub exec_backup_task {
     my $cfg = PVE::Storage::config();
     my $vmid = $task->{vmid};
     my $plugin = $task->{plugin};
-    my $vmtype = $plugin->type();
 
     $task->{backup_time} = time();
 
     my $pbs_group_name;
     my $pbs_snapshot_name;
 
-    if ($self->{opts}->{pbs}) {
-	if ($vmtype eq 'lxc') {
-	    $pbs_group_name = "ct/$vmid";
-	} elsif  ($vmtype eq 'qemu') {
-	    $pbs_group_name = "vm/$vmid";
-	} else {
-	    die "pbs backup not implemented for plugin type '$vmtype'\n";
-	}
-	my $btime = strftime("%FT%TZ", gmtime($task->{backup_time}));
-	$pbs_snapshot_name = "$pbs_group_name/$btime";
-    }
-
     my $vmstarttime = time ();
 
     my $logfd;
@@ -708,6 +695,20 @@ sub exec_backup_task {
     eval {
 	die "unable to find VM '$vmid'\n" if !$plugin;
 
+	my $vmtype = $plugin->type();
+
+	if ($self->{opts}->{pbs}) {
+	    if ($vmtype eq 'lxc') {
+		$pbs_group_name = "ct/$vmid";
+	    } elsif  ($vmtype eq 'qemu') {
+		$pbs_group_name = "vm/$vmid";
+	    } else {
+		die "pbs backup not implemented for plugin type '$vmtype'\n";
+	    }
+	    my $btime = strftime("%FT%TZ", gmtime($task->{backup_time}));
+	    $pbs_snapshot_name = "$pbs_group_name/$btime";
+	}
+
 	# for now we deny backups of a running ha managed service in *stop* mode
 	# as it interferes with the HA stack (started services should not stop).
 	if ($opts->{mode} eq 'stop' &&
-- 
2.20.1






More information about the pve-devel mailing list