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.koe...@proxmox.com>
Tested-by: Michael Köppl <m.koe...@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(-)
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel