[pve-devel] [PATCH qemu-server, manager v7 0/4] fix #1926 autodetect xtermjs or novnc for VM console
Michael Köppl
m.koeppl at proxmox.com
Wed Apr 9 11:14:09 CEST 2025
Tested this by creating a VM with "Serial terminal 0" set as display
during creation and then changing the display option in the hardware menu:
- Keeping serial terminal -> xtermjs is used
- Changing to default -> noVNC is used
- Changing to SPICE -> remote-viewer is used
The patches behave as I would expect them to and changing the display
option results in the correct console being used even if the serial port
is still connected as hardware.
I also had a look at the implementation and, since the suggested changes
from the previous versions have been made, did not notice anything I
would change.
So please consider this:
Reviewed-by: Michael Köppl <m.koeppl at proxmox.com>
Tested-by: Michael Köppl <m.koeppl at proxmox.com>
On 4/8/25 14:27, Aaron Lauterer wrote:
> Sorry for the noise, after the feedback from Fiona on v6 and some
> off-list discussion, we decided to improve the backend part by moving
> the "default" logic out of `get_vga_properties` and move it into a
> separate public `get_default_vga_type` function. This way we can leave
> all the other functions private to the QemuServer.pm module.
>
>
> We add a new property in the VM status/current API result that includes
> the display configurtion of the VM. This way we can check in the
> frontend what to do with it.
>
> I chose a nested return value, as that makes it easier to add/move
> additional display properties into it.
>
> Patch 1/4 moves the default display logic into its own public function
>
> Patch 2/4 adds the new display property. If not explicitly set in the VM
> config, it will return the default value.
>
> Patch 3/4 implements the changes in the UI. The final result isn't
> really a lot simpler on the UI side than in V4 where we had the extra
> API call to the VM's config directly. Because we still need to wait for
> the API call to finish when initially navigating to the VM. But we have
> one fewer call.
>
> Patch 4/4 then introduces some changes to make loading of the console
> faster if we just navigate in the submenu of a VM itself where we
> already have the current status of a VM already cached.
>
> Changes from
> v6: backend only: create new `get_default_vga_type` function.
> v5: implement suggestions:
>
> * use get_vga_properties for default VGA
> * UI: use helper to determine if serial display
>
> qemu-server: Aaron Lauterer (2):
> QemuServer: add new public get_default_vga_type function
> api: status/current: add display property
>
> PVE/API2/Qemu.pm | 13 +++++++++++++
> PVE/QemuServer.pm | 29 ++++++++++++++++++++++-------
> 2 files changed, 35 insertions(+), 7 deletions(-)
>
>
> manager: Aaron Lauterer (2):
> fix #1926 ui: vm console: autodetect novnc or xtermjs
> ui: console: check on activate if display info for VMs is present
>
> www/manager6/Utils.js | 4 +++
> www/manager6/VNCConsole.js | 60 ++++++++++++++++++++++++++-----------
> www/manager6/qemu/Config.js | 7 ++++-
> 3 files changed, 53 insertions(+), 18 deletions(-)
>
More information about the pve-devel
mailing list