mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-09 03:36:48 +00:00
feat(instances): choose VNC or the serial console on the VM page
Settings > Console gets a Console type field. Serial removes the VM's graphics device (adding a pty console when there is none); VNC adds the graphics device new VMs get, on localhost, and then applies the form's VNC fields, so an administrator can open it to all interfaces for a TCP compute. Serial is offered only while SERIAL_CONSOLE_ENABLED is on.
This commit is contained in:
parent
d37aa42392
commit
0f9bbd3e86
6 changed files with 53 additions and 3 deletions
|
|
@ -1341,6 +1341,19 @@ class wvmInstance(wvmConnect):
|
|||
newxml = etree.tostring(root).decode()
|
||||
return self._defineXML(newxml)
|
||||
|
||||
def set_console_type(self, console_type):
|
||||
"""VNC: a VNC graphics device on localhost; "pty": no graphics, so the
|
||||
serial console opens (libvirt adds the serial port for the console)."""
|
||||
root = etree.fromstring(self._XMLDesc(PERSISTENT_XML))
|
||||
devices = root.find("devices")
|
||||
for graphic in devices.findall("graphics"):
|
||||
devices.remove(graphic)
|
||||
if console_type == "vnc":
|
||||
etree.SubElement(devices, "graphics", type="vnc", port="-1", autoport="yes", listen="127.0.0.1")
|
||||
elif devices.find("console") is None:
|
||||
etree.SubElement(devices, "console", type="pty")
|
||||
return self._defineXML(etree.tostring(root).decode())
|
||||
|
||||
def get_console_socket(self):
|
||||
socket = util.get_xml_path(self._XMLDesc(0), "/domain/devices/graphics/@socket")
|
||||
return socket
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue