From 22371fe00e527f6063df64681a87632a9e2448b9 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 14 Mar 2019 17:04:49 +0100 Subject: [PATCH] add ability to suspend a vm to disk from the api this enables the use of the suspend to disk code Signed-off-by: Dominik Csapak --- PVE/API2/Qemu.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 49aaa48..7c6288f 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -2349,6 +2349,12 @@ __PACKAGE__->register_method({ vmid => get_standard_option('pve-vmid', { completion => \&PVE::QemuServer::complete_vmid_running }), skiplock => get_standard_option('skiplock'), + todisk => { + type => 'boolean', + default => 0, + optional => 1, + description => 'If set, suspends the VM to disk. Will be resumed on next VM start.', + }, }, }, returns => { @@ -2365,18 +2371,23 @@ __PACKAGE__->register_method({ my $vmid = extract_param($param, 'vmid'); + my $todisk = extract_param($param, 'todisk') // 0; + my $skiplock = extract_param($param, 'skiplock'); raise_param_exc({ skiplock => "Only root may use this option." }) if $skiplock && $authuser ne 'root@pam'; die "VM $vmid not running\n" if !PVE::QemuServer::check_running($vmid); + die "Cannot suspend HA managed VM to disk\n" + if $todisk && PVE::HA::Config::vm_is_ha_managed($vmid); + my $realcmd = sub { my $upid = shift; syslog('info', "suspend VM $vmid: $upid\n"); - PVE::QemuServer::vm_suspend($vmid, $skiplock); + PVE::QemuServer::vm_suspend($vmid, $skiplock, $todisk); return; }; -- 2.39.2