if the reboot trigger file was set, start the vm again
also cleanup the reboot trigger on vm startup, to prevent
leftover files to trigger a reboot at the next shutdown

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
change from rfc:
* use remove_reboot_trigger sub
* cleanup also on vm start

 PVE/CLI/qm.pm     | 13 +++++++++++++
 PVE/QemuServer.pm |  2 ++
 2 files changed, 15 insertions(+)

diff --git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm
index 3aae23c..f9b0fd7 100755
--- a/PVE/CLI/qm.pm
+++ b/PVE/CLI/qm.pm
@@ -763,6 +763,7 @@ __PACKAGE__->register_method({
        my $vmid = $param->{vmid};
        my $clean = $param->{'clean-shutdown'};
        my $guest = $param->{'guest-requested'};
+       my $restart = 0;
 
        # return if we do not have the config anymore
        return if !-f PVE::QemuConfig->config_file($vmid);
@@ -790,10 +791,22 @@ __PACKAGE__->register_method({
                PVE::QemuServer::vm_stop_cleanup($storecfg, $vmid, $conf, 0, 0);
            }
            PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'post-stop');
+
+           if (PVE::QemuServer::remove_reboot_trigger($vmid)) {
+               $restart = 1;
+           }
        });
 
        warn "Finished cleanup for $vmid\n";
 
+       if ($restart) {
+           warn "Restarting VM $vmid\n";
+           PVE::API2::Qemu->vm_start({
+               vmid => $vmid,
+               node => $nodename,
+           });
+       }
+
        return undef;
     }});
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index d1767a9..cc0c95e 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -5307,6 +5307,8 @@ sub vm_start {
        PVE::QemuConfig->check_lock($conf)
            if !($skiplock || $is_suspended);
 
+       PVE::QemuServer::remove_reboot_trigger($vmid);
+
        die "VM $vmid already running\n" if check_running($vmid, undef, 
$migratedfrom);
 
        if (!$statefile && scalar(keys %{$conf->{pending}})) {
-- 
2.20.1


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

Reply via email to