When migrating a VM that suspended itself via ACPI, it will no longer be
resumed automatically.

Signed-off-by: Filip Schauer <f.scha...@proxmox.com>
---
 PVE/QemuMigrate.pm |  2 +-
 PVE/QemuServer.pm  | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 506911e..d9aeca8 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -223,7 +223,7 @@ sub prepare {
            }
        }
 
-       $self->{vm_was_paused} = 1 if PVE::QemuServer::vm_is_paused($vmid);
+       $self->{vm_was_paused} = 1 if (PVE::QemuServer::vm_is_paused($vmid) or 
PVE::QemuServer::vm_is_suspended($vmid));
     }
 
     my ($loc_res, $mapped_res, $missing_mappings_by_node) = 
PVE::QemuServer::check_local_resources($conf, 1);
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index bf1de17..866b585 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -8599,6 +8599,16 @@ sub vm_is_paused {
     return $qmpstatus && $qmpstatus->{status} eq "paused";
 }
 
+sub vm_is_suspended {
+    my ($vmid) = @_;
+    my $qmpstatus = eval {
+       PVE::QemuConfig::assert_config_exists_on_node($vmid);
+       mon_cmd($vmid, "query-status");
+    };
+    warn "$@\n" if $@;
+    return $qmpstatus && $qmpstatus->{status} eq "suspended";
+}
+
 sub check_volume_storage_type {
     my ($storecfg, $vol) = @_;
 
-- 
2.39.2



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

Reply via email to