[pve-devel] [PATCH qemu-server v3 4/5] add ability to suspend a vm to disk from the api

Dominik Csapak d.csapak at proxmox.com
Thu Mar 14 17:04:49 CET 2019


this enables the use of the suspend to disk code

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v2:
* forbid ha vms to be suspended to disk

 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 at 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.11.0





More information about the pve-devel mailing list