Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com>
---
 PVE/API2/Qemu.pm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index a539b5c..3d4079e 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -888,6 +888,7 @@ __PACKAGE__->register_method({
        die "$emsg $@" if $@;
 
        my $restored_data = 0;
+       my $hook_executed = 0;
        my $restorefn = sub {
            my $conf = PVE::QemuConfig->load_config($vmid);
 
@@ -895,6 +896,9 @@ __PACKAGE__->register_method({
 
            die "$emsg vm is running\n" if 
PVE::QemuServer::check_running($vmid);
 
+           PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'pre-restore', 1);
+           $hook_executed = 1;
+
            my $realcmd = sub {
                my $restore_options = {
                    storage => $storage,
@@ -922,6 +926,8 @@ __PACKAGE__->register_method({
                    eval { PVE::QemuServer::template_create($vmid, 
$restored_conf) };
                    warn $@ if $@;
                }
+
+               PVE::GuestHelpers::exec_hookscript($restored_conf, $vmid, 
'post-restore');
            };
 
            # ensure no old replication state are exists
@@ -1016,10 +1022,10 @@ __PACKAGE__->register_method({
                if (my $err = $@) {
                    eval { PVE::QemuConfig->remove_lock($vmid, 'create') };
                    warn $@ if $@;
-                   if ($restored_data) {
+                   if ($hook_executed && $restored_data) {
                        warn "error after data was restored, VM disks should be 
OK but config may "
                            ."require adaptions. VM $vmid state is NOT cleaned 
up.\n";
-                   } else {
+                   } elsif ($hook_executed && !$restored_data) {
                        warn "error before or during data restore, some or all 
disks were not "
                            ."completely restored. VM $vmid state is NOT 
cleaned up.\n";
                    }
-- 
2.30.2


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

Reply via email to