mirror of
https://github.com/GNS3/gns3-server
synced 2024-12-25 16:28:11 +00:00
Spice support
* QEMU VNC options tests * QEMU - SPICE support at build options and schemas * SPICE console_type for nodes
This commit is contained in:
parent
a8e8eac0b4
commit
bc5ec98cd5
@ -1305,6 +1305,14 @@ class QemuVM(BaseNode):
|
||||
else:
|
||||
return []
|
||||
|
||||
def _spice_options(self):
|
||||
|
||||
if self._console:
|
||||
return ["-spice",
|
||||
"addr={},port={},disable-ticketing".format(self._manager.port_manager.console_host, self._console)]
|
||||
else:
|
||||
return []
|
||||
|
||||
def _monitor_options(self):
|
||||
|
||||
if self._monitor:
|
||||
@ -1584,6 +1592,8 @@ class QemuVM(BaseNode):
|
||||
command.extend(self._serial_options())
|
||||
elif self._console_type == "vnc":
|
||||
command.extend(self._vnc_options())
|
||||
elif self._console_type == "spice":
|
||||
command.extend(self._spice_options())
|
||||
else:
|
||||
raise QemuError("Console type {} is unknown".format(self._console_type))
|
||||
command.extend(self._monitor_options())
|
||||
|
@ -144,7 +144,7 @@ NODE_OBJECT_SCHEMA = {
|
||||
},
|
||||
"console_type": {
|
||||
"description": "Console type",
|
||||
"enum": ["vnc", "telnet", "http", None]
|
||||
"enum": ["vnc", "telnet", "http", "spice", None]
|
||||
},
|
||||
"properties": {
|
||||
"description": "Properties specific to an emulator",
|
||||
|
@ -63,7 +63,7 @@ QEMU_CREATE_SCHEMA = {
|
||||
},
|
||||
"console_type": {
|
||||
"description": "Console type",
|
||||
"enum": ["telnet", "vnc"]
|
||||
"enum": ["telnet", "vnc", "spice"]
|
||||
},
|
||||
"hda_disk_image": {
|
||||
"description": "QEMU hda disk image path",
|
||||
@ -244,7 +244,7 @@ QEMU_UPDATE_SCHEMA = {
|
||||
},
|
||||
"console_type": {
|
||||
"description": "Console type",
|
||||
"enum": ["telnet", "vnc"]
|
||||
"enum": ["telnet", "vnc", "spice"]
|
||||
},
|
||||
"linked_clone": {
|
||||
"description": "Whether the VM is a linked clone or not",
|
||||
@ -541,7 +541,7 @@ QEMU_OBJECT_SCHEMA = {
|
||||
},
|
||||
"console_type": {
|
||||
"description": "Console type",
|
||||
"enum": ["telnet", "vnc"]
|
||||
"enum": ["telnet", "vnc", "spice"]
|
||||
},
|
||||
"initrd": {
|
||||
"description": "QEMU initrd path",
|
||||
|
@ -359,6 +359,20 @@ def test_bios_option(vm, tmpdir, loop, fake_qemu_img_binary):
|
||||
assert ' '.join(['-bios', str(tmpdir / "test.img")]) in ' '.join(options)
|
||||
|
||||
|
||||
def test_vnc_option(vm, tmpdir, loop, fake_qemu_img_binary):
|
||||
vm._console_type = 'vnc'
|
||||
vm._console = 5905
|
||||
options = loop.run_until_complete(asyncio.async(vm._build_command()))
|
||||
assert '-vnc 127.0.0.1:5' in ' '.join(options)
|
||||
|
||||
|
||||
def test_spice_option(vm, tmpdir, loop, fake_qemu_img_binary):
|
||||
vm._console_type = 'spice'
|
||||
vm._console = 5905
|
||||
options = loop.run_until_complete(asyncio.async(vm._build_command()))
|
||||
assert '-spice addr=127.0.0.1,port=5905,disable-ticketing' in ' '.join(options)
|
||||
|
||||
|
||||
def test_disk_options_multiple_disk(vm, tmpdir, loop, fake_qemu_img_binary):
|
||||
|
||||
vm._hda_disk_image = str(tmpdir / "test0.qcow2")
|
||||
|
Loading…
Reference in New Issue
Block a user