If we already have the display information for a VM, we can proceed loading the correct console (noVNC or xtermjs).
This way, we don't need to wait for the callback of the VM's status/current API call to finish setting up the console. Signed-off-by: Aaron Lauterer <[email protected]> Tested-by: Hannes Duerr <[email protected]> Reviewed-by: Michael Köppl <[email protected]> Tested-by: Michael Köppl <[email protected]> --- changes since: v7: * rebased v6: none v5: * introduce PVE.Utils.isSerialDisplay helper * avoid 'rec' assignment in callback when setting the 'xtermjs' variable v4: * use new status/current display property v3: * fixed spacing issues * add 'current' parameter when fetching config as the pending might have a different display set v2: * change approach and do it in the UI alone by fetching the VM config before deciding which console to use v1: * set 'autodetect' to always true in 'VNCConsole.js' * add additional checks in pveproxy * only if autodetect is enabled and console is set to 'kvm' * username exists and has VM.Console permissions for the guest www/manager6/VNCConsole.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/www/manager6/VNCConsole.js b/www/manager6/VNCConsole.js index d903f2d5..b7f90bda 100644 --- a/www/manager6/VNCConsole.js +++ b/www/manager6/VNCConsole.js @@ -67,6 +67,14 @@ Ext.define('PVE.noVncConsole', { activate: function () { if (me.consoleType !== 'kvm') { me.loadConsole(me.xtermjs, me.consoleType); + } else { + let display = me.up().statusStore.getById('display'); + if (PVE.Utils.isSerialDisplay(display?.data.value.type)) { + me.xtermjs = true; + } + if (display) { + me.loadConsole(me.xtermjs, me.consoleType); + } } }, }, -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
