mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
Merge remote-tracking branch 'origin/master' into 2.1
This commit is contained in:
commit
a8e8eac0b4
@ -1305,14 +1305,6 @@ class QemuVM(BaseNode):
|
|||||||
else:
|
else:
|
||||||
return []
|
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):
|
def _monitor_options(self):
|
||||||
|
|
||||||
if self._monitor:
|
if self._monitor:
|
||||||
@ -1592,8 +1584,6 @@ class QemuVM(BaseNode):
|
|||||||
command.extend(self._serial_options())
|
command.extend(self._serial_options())
|
||||||
elif self._console_type == "vnc":
|
elif self._console_type == "vnc":
|
||||||
command.extend(self._vnc_options())
|
command.extend(self._vnc_options())
|
||||||
elif self._console_type == "spice":
|
|
||||||
command.extend(self._spice_options())
|
|
||||||
else:
|
else:
|
||||||
raise QemuError("Console type {} is unknown".format(self._console_type))
|
raise QemuError("Console type {} is unknown".format(self._console_type))
|
||||||
command.extend(self._monitor_options())
|
command.extend(self._monitor_options())
|
||||||
|
@ -391,7 +391,7 @@ class ProjectHandler:
|
|||||||
controller = Controller.instance()
|
controller = Controller.instance()
|
||||||
project = yield from controller.get_loaded_project(request.match_info["project_id"])
|
project = yield from controller.get_loaded_project(request.match_info["project_id"])
|
||||||
path = request.match_info["path"]
|
path = request.match_info["path"]
|
||||||
path = os.path.normpath(path)
|
path = os.path.normpath(path).strip('/')
|
||||||
|
|
||||||
# Raise error if user try to escape
|
# Raise error if user try to escape
|
||||||
if path[0] == ".":
|
if path[0] == ".":
|
||||||
|
@ -144,7 +144,7 @@ NODE_OBJECT_SCHEMA = {
|
|||||||
},
|
},
|
||||||
"console_type": {
|
"console_type": {
|
||||||
"description": "Console type",
|
"description": "Console type",
|
||||||
"enum": ["vnc", "telnet", "http", "spice", None]
|
"enum": ["vnc", "telnet", "http", None]
|
||||||
},
|
},
|
||||||
"properties": {
|
"properties": {
|
||||||
"description": "Properties specific to an emulator",
|
"description": "Properties specific to an emulator",
|
||||||
|
@ -63,7 +63,7 @@ QEMU_CREATE_SCHEMA = {
|
|||||||
},
|
},
|
||||||
"console_type": {
|
"console_type": {
|
||||||
"description": "Console type",
|
"description": "Console type",
|
||||||
"enum": ["telnet", "vnc", "spice"]
|
"enum": ["telnet", "vnc"]
|
||||||
},
|
},
|
||||||
"hda_disk_image": {
|
"hda_disk_image": {
|
||||||
"description": "QEMU hda disk image path",
|
"description": "QEMU hda disk image path",
|
||||||
@ -244,7 +244,7 @@ QEMU_UPDATE_SCHEMA = {
|
|||||||
},
|
},
|
||||||
"console_type": {
|
"console_type": {
|
||||||
"description": "Console type",
|
"description": "Console type",
|
||||||
"enum": ["telnet", "vnc", "spice"]
|
"enum": ["telnet", "vnc"]
|
||||||
},
|
},
|
||||||
"linked_clone": {
|
"linked_clone": {
|
||||||
"description": "Whether the VM is a linked clone or not",
|
"description": "Whether the VM is a linked clone or not",
|
||||||
@ -541,7 +541,7 @@ QEMU_OBJECT_SCHEMA = {
|
|||||||
},
|
},
|
||||||
"console_type": {
|
"console_type": {
|
||||||
"description": "Console type",
|
"description": "Console type",
|
||||||
"enum": ["telnet", "vnc", "spice"]
|
"enum": ["telnet", "vnc"]
|
||||||
},
|
},
|
||||||
"initrd": {
|
"initrd": {
|
||||||
"description": "QEMU initrd path",
|
"description": "QEMU initrd path",
|
||||||
|
@ -359,20 +359,6 @@ def test_bios_option(vm, tmpdir, loop, fake_qemu_img_binary):
|
|||||||
assert ' '.join(['-bios', str(tmpdir / "test.img")]) in ' '.join(options)
|
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):
|
def test_disk_options_multiple_disk(vm, tmpdir, loop, fake_qemu_img_binary):
|
||||||
|
|
||||||
vm._hda_disk_image = str(tmpdir / "test0.qcow2")
|
vm._hda_disk_image = str(tmpdir / "test0.qcow2")
|
||||||
|
@ -254,7 +254,7 @@ def test_update_startup_script_h(vm):
|
|||||||
def test_update_startup_script_with_escaping_characters_in_name(vm):
|
def test_update_startup_script_with_escaping_characters_in_name(vm):
|
||||||
vm.startup_script = "set pcname initial-name\n"
|
vm.startup_script = "set pcname initial-name\n"
|
||||||
vm.name = "test\\"
|
vm.name = "test\\"
|
||||||
assert vm.startup_script == "set pcname test\\\n"
|
assert vm.startup_script == "set pcname test\\{}".format(os.linesep)
|
||||||
|
|
||||||
|
|
||||||
def test_get_startup_script(vm):
|
def test_get_startup_script(vm):
|
||||||
|
@ -217,6 +217,15 @@ def test_write_file(http_controller, tmpdir, project):
|
|||||||
assert response.status == 403
|
assert response.status == 403
|
||||||
|
|
||||||
|
|
||||||
|
def test_write_and_get_file_with_leading_slashes_in_filename(http_controller, tmpdir, loop, project):
|
||||||
|
response = http_controller.post("/projects/{project_id}/files//hello".format(project_id=project.id), body="world", raw=True)
|
||||||
|
assert response.status == 200
|
||||||
|
|
||||||
|
response = http_controller.get("/projects/{project_id}/files//hello".format(project_id=project.id), raw=True)
|
||||||
|
assert response.status == 200
|
||||||
|
assert response.body == b"world"
|
||||||
|
|
||||||
|
|
||||||
def test_import(http_controller, tmpdir, controller):
|
def test_import(http_controller, tmpdir, controller):
|
||||||
|
|
||||||
with zipfile.ZipFile(str(tmpdir / "test.zip"), 'w') as myzip:
|
with zipfile.ZipFile(str(tmpdir / "test.zip"), 'w') as myzip:
|
||||||
|
Loading…
Reference in New Issue
Block a user