all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH qemu-server 1/2] fix #3502: VM start timeout config parameter
@ 2022-06-21 15:20 Daniel Tschlatscher
  2022-06-21 15:20 ` [pve-devel] [PATCH manager 2/2] VM start Timeout "Options" parameter in the GUI Daniel Tschlatscher
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Daniel Tschlatscher @ 2022-06-21 15:20 UTC (permalink / raw)
  To: pve-devel

It was already possible to set the timeout parameter for the VM config
via the API. However, the value was not considered when the function
config_aware_timeout() was called.
Now, if the timeout parameter is set, it will override the heuristic
calculation of the VM start timeout.

During testing I found a problem where really big values (10^20)+
would be converted to scientific notation, which means they no longer
pass the integer type check. To get around this, I set the maximum
value for the timeout to 2,680,000 seconds, which is around 31 days.
This I'd wager, is an upper limit in which nobody should realistically
run into.

Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com>
---
 PVE/API2/Qemu.pm          | 1 +
 PVE/QemuServer.pm         | 7 +++++++
 PVE/QemuServer/Helpers.pm | 3 +++
 3 files changed, 11 insertions(+)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index a824657..d0a4eaa 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -2494,6 +2494,7 @@ __PACKAGE__->register_method({
 		description => "Wait maximal timeout seconds.",
 		type => 'integer',
 		minimum => 0,
+		maximum => 2680000,
 		default => 'max(30, vm memory in GiB)',
 		optional => 1,
 	    },
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index e9aa248..81a7f6d 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -713,6 +713,13 @@ EODESCR
 	description => "Some (read-only) meta-information about this guest.",
 	optional => 1,
     },
+    timeout => {
+	optional => 1,
+	type => 'integer',
+	description => 'The maximum timeout to wait for a VM to start',
+	minimum => 0,
+	maximum => 2680000,
+    }
 };
 
 my $cicustom_fmt = {
diff --git a/PVE/QemuServer/Helpers.pm b/PVE/QemuServer/Helpers.pm
index c10d842..c26d0dc 100644
--- a/PVE/QemuServer/Helpers.pm
+++ b/PVE/QemuServer/Helpers.pm
@@ -142,6 +142,9 @@ sub version_cmp {
 
 sub config_aware_timeout {
     my ($config, $is_suspended) = @_;
+
+    return $config->{timeout} if defined($config->{timeout});
+
     my $memory = $config->{memory};
     my $timeout = 30;
 
-- 
2.30.2





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-22 12:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-21 15:20 [pve-devel] [PATCH qemu-server 1/2] fix #3502: VM start timeout config parameter Daniel Tschlatscher
2022-06-21 15:20 ` [pve-devel] [PATCH manager 2/2] VM start Timeout "Options" parameter in the GUI Daniel Tschlatscher
2022-06-21 15:20 ` [pve-devel] [PATCH qemu-server 1/1] make the timeout value editable when the VM is locked Daniel Tschlatscher
2022-06-21 15:52 ` [pve-devel] [PATCH qemu-server 1/2] fix #3502: VM start timeout config parameter Thomas Lamprecht
2022-06-21 15:59   ` Thomas Lamprecht
2022-06-22 12:57   ` Daniel Tschlatscher

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal