mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 11:18:11 +00:00
parent
c361d27531
commit
d853ffe791
@ -70,9 +70,9 @@ class Qemu(BaseManager):
|
|||||||
if "PROGRAMFILES" in os.environ and os.path.exists(os.environ["PROGRAMFILES"]):
|
if "PROGRAMFILES" in os.environ and os.path.exists(os.environ["PROGRAMFILES"]):
|
||||||
paths.add(os.path.join(os.environ["PROGRAMFILES"], "qemu"))
|
paths.add(os.path.join(os.environ["PROGRAMFILES"], "qemu"))
|
||||||
elif sys.platform.startswith("darwin"):
|
elif sys.platform.startswith("darwin"):
|
||||||
# add specific locations on Mac OS X regardless of what's in $PATH
|
|
||||||
paths.update(["/usr/bin", "/usr/local/bin", "/opt/local/bin"])
|
|
||||||
if hasattr(sys, "frozen"):
|
if hasattr(sys, "frozen"):
|
||||||
|
# add specific locations on Mac OS X regardless of what's in $PATH
|
||||||
|
paths.update(["/usr/bin", "/usr/local/bin", "/opt/local/bin"])
|
||||||
try:
|
try:
|
||||||
exec_dir = os.path.dirname(os.path.abspath(sys.executable))
|
exec_dir = os.path.dirname(os.path.abspath(sys.executable))
|
||||||
paths.add(os.path.abspath(os.path.join(exec_dir, "../Resources/qemu/bin/")))
|
paths.add(os.path.abspath(os.path.join(exec_dir, "../Resources/qemu/bin/")))
|
||||||
|
@ -142,7 +142,10 @@ class QemuVM(BaseVM):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if qemu_path and os.pathsep not in qemu_path:
|
if qemu_path and os.pathsep not in qemu_path:
|
||||||
qemu_path = shutil.which(qemu_path)
|
new_qemu_path = shutil.which(qemu_path, path=os.pathsep.join(self._manager.paths_list()))
|
||||||
|
if new_qemu_path is None:
|
||||||
|
raise QemuError("QEMU binary path {} is not found in the path".format(qemu_path))
|
||||||
|
qemu_path = new_qemu_path
|
||||||
|
|
||||||
self._check_qemu_path(qemu_path)
|
self._check_qemu_path(qemu_path)
|
||||||
self._qemu_path = qemu_path
|
self._qemu_path = qemu_path
|
||||||
@ -161,7 +164,7 @@ class QemuVM(BaseVM):
|
|||||||
|
|
||||||
def _check_qemu_path(self, qemu_path):
|
def _check_qemu_path(self, qemu_path):
|
||||||
if qemu_path is None:
|
if qemu_path is None:
|
||||||
raise QemuError("QEMU binary path is not set or not found in the path")
|
raise QemuError("QEMU binary path is not set")
|
||||||
if not os.path.exists(qemu_path):
|
if not os.path.exists(qemu_path):
|
||||||
raise QemuError("QEMU binary '{}' is not accessible".format(qemu_path))
|
raise QemuError("QEMU binary '{}' is not accessible".format(qemu_path))
|
||||||
if not os.access(qemu_path, os.X_OK):
|
if not os.access(qemu_path, os.X_OK):
|
||||||
|
@ -25,7 +25,9 @@ import re
|
|||||||
from tests.utils import asyncio_patch
|
from tests.utils import asyncio_patch
|
||||||
|
|
||||||
|
|
||||||
|
from unittest import mock
|
||||||
from unittest.mock import patch, MagicMock
|
from unittest.mock import patch, MagicMock
|
||||||
|
|
||||||
from gns3server.modules.qemu.qemu_vm import QemuVM
|
from gns3server.modules.qemu.qemu_vm import QemuVM
|
||||||
from gns3server.modules.qemu.qemu_error import QemuError
|
from gns3server.modules.qemu.qemu_error import QemuError
|
||||||
from gns3server.modules.qemu import Qemu
|
from gns3server.modules.qemu import Qemu
|
||||||
@ -276,9 +278,9 @@ def test_set_platform(project, manager):
|
|||||||
with patch("gns3server.modules.qemu.QemuVM._check_qemu_path"):
|
with patch("gns3server.modules.qemu.QemuVM._check_qemu_path"):
|
||||||
vm = QemuVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager, platform="x86_64")
|
vm = QemuVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager, platform="x86_64")
|
||||||
if sys.platform.startswith("win"):
|
if sys.platform.startswith("win"):
|
||||||
which_mock.assert_called_with("qemu-system-x86_64w.exe")
|
which_mock.assert_called_with("qemu-system-x86_64w.exe", path=mock.ANY)
|
||||||
else:
|
else:
|
||||||
which_mock.assert_called_with("qemu-system-x86_64")
|
which_mock.assert_called_with("qemu-system-x86_64", path=mock.ANY)
|
||||||
assert vm.platform == "x86_64"
|
assert vm.platform == "x86_64"
|
||||||
assert vm.qemu_path == "/bin/qemu-system-x86_64"
|
assert vm.qemu_path == "/bin/qemu-system-x86_64"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user