This refactors things a bit to avoid having the same two lines in 3 places and allows the plugin to set the "guest was resumed" time stamp at the point it really was resumed, not only once the backup completed (see #503). Further, if a plugin prints it's own "resumed/running after X seconds" message, it can unset the vmstop time and thus avoid printing the message twice.
related to a fix for #503 Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- PVE/VZDump.pm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm index 6508c833..0a35eea7 100644 --- a/PVE/VZDump.pm +++ b/PVE/VZDump.pm @@ -750,7 +750,12 @@ sub exec_backup_task { my $cleanup = {}; - my $vmstoptime = 0; + my $log_vm_online_again = sub { + return if !defined($task->{vmstoptime}); + $task->{vmconttime} //= time(); + my $delay = $task->{vmconttime} - $task->{vmstoptime}; + debugmsg ('info', "guest is online again after $delay seconds", $logfd); + }; eval { die "unable to find VM '$vmid'\n" if !$plugin; @@ -877,7 +882,7 @@ sub exec_backup_task { if ($running) { debugmsg ('info', "stopping vm", $logfd); - $vmstoptime = time (); + $task->{vmstoptime} = time(); $self->run_hook_script ('pre-stop', $task, $logfd); $plugin->stop_vm ($task, $vmid); $cleanup->{restart} = 1; @@ -896,7 +901,7 @@ sub exec_backup_task { } debugmsg ('info', "suspend vm", $logfd); - $vmstoptime = time (); + $task->{vmstoptime} = time (); $self->run_hook_script ('pre-stop', $task, $logfd); $plugin->suspend_vm ($task, $vmid); $cleanup->{resume} = 1; @@ -910,8 +915,7 @@ sub exec_backup_task { $self->run_hook_script('pre-restart', $task, $logfd); $plugin->resume_vm($task, $vmid); $self->run_hook_script('post-restart', $task, $logfd); - my $delay = time () - $vmstoptime; - debugmsg('info', "vm is online again after $delay seconds", $logfd); + $log_vm_online_again->(); } } elsif ($mode eq 'snapshot') { @@ -924,7 +928,7 @@ sub exec_backup_task { if ($snapshot_count > 1) { debugmsg ('info', "suspend vm to make snapshot", $logfd); - $vmstoptime = time (); + $task->{vmstoptime} = time (); $plugin->suspend_vm ($task, $vmid); $cleanup->{resume} = 1; } @@ -937,8 +941,7 @@ sub exec_backup_task { debugmsg ('info', "resume vm", $logfd); $cleanup->{resume} = 0; $plugin->resume_vm ($task, $vmid); - my $delay = time () - $vmstoptime; - debugmsg ('info', "vm is online again after $delay seconds", $logfd); + $log_vm_online_again->(); } $self->run_hook_script ('post-restart', $task, $logfd); @@ -1026,8 +1029,7 @@ sub exec_backup_task { if ($err) { warn $err; } else { - my $delay = time () - $vmstoptime; - debugmsg ('info', "vm is online again after $delay seconds", $logfd); + $log_vm_online_again->(); } } } -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel