mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-09 11:46:49 +00:00
feat(instances): a VM's console settings in two cards, with a password action
Settings > Console was one horizontal form, and on a running VM its
Update button was disabled. The owner chose this layout from three
rendered options: the console type on top, then a "VNC connection" card
(listen address, keymap) and a "VNC password" card.
- The password is changed by an action: keep it, generate a new one,
set a new one or remove it. This replaces the Generate and Clear
boxes and their precedence, and an emptied field no longer removes
the password silently. The pane says whether a password is set; the
form no longer carries the password itself.
- A VNC password takes at most 8 bytes: libvirt refuses a longer one
("VNC password is 9 characters long, only 8 permitted"). Generate and
a new VM's random password now make 8 characters; they made 12, which
libvirt 11 refuses. A set password keeps its spaces.
- Every check is in the form, so a refused save changes nothing; before,
a refused password removal still saved the other settings.
- The settings can be saved while the VM runs: they are in the
persistent definition. A line says the running console keeps its
settings until the VM is shut down and started.
- The console type shown and compared is the persistent one; it was the
running VM's, so a pending switch to Serial showed VNC and a later
save could switch again.
- While the saved type is Serial, the VNC settings are not shown or
taken; choosing Serial ignores the posted VNC settings.
This commit is contained in:
parent
20cfc25367
commit
301b73155d
12 changed files with 248 additions and 126 deletions
|
|
@ -1530,14 +1530,11 @@ class wvmInstance(wvmConnect):
|
|||
socket = util.get_xml_path(self._XMLDesc(0), "/domain/devices/graphics/@socket")
|
||||
return socket
|
||||
|
||||
def get_console_type(self):
|
||||
console_type = util.get_xml_path(
|
||||
self._XMLDesc(0), "/domain/devices/graphics/@type"
|
||||
)
|
||||
def get_console_type(self, config=False):
|
||||
xml = self._XMLDesc(PERSISTENT_XML if config else 0)
|
||||
console_type = util.get_xml_path(xml, "/domain/devices/graphics/@type")
|
||||
if console_type is None:
|
||||
console_type = util.get_xml_path(
|
||||
self._XMLDesc(0), "/domain/devices/console/@type"
|
||||
)
|
||||
console_type = util.get_xml_path(xml, "/domain/devices/console/@type")
|
||||
return console_type
|
||||
|
||||
def get_console_port(self, console_type=None):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue