Support relative path in iou

This commit is contained in:
Julien Duponchelle 2015-02-25 16:26:17 +01:00
parent 47f8ac00c0
commit 818676ce5e
2 changed files with 13 additions and 0 deletions

View File

@ -39,6 +39,7 @@ from ..nios.nio_tap import NIOTAP
from ..nios.nio_generic_ethernet import NIOGenericEthernet
from ..base_vm import BaseVM
from .ioucon import start_ioucon
from ...config import Config
import gns3server.utils.asyncio
@ -131,6 +132,10 @@ class IOUVM(BaseVM):
:params path: Path to the binary
"""
if path[0] != "/":
server_config = Config.instance().get_section_config("Server")
path = os.path.join(os.path.expanduser(server_config.get("images_path", "~/GNS3/images")), path)
self._path = path
if not os.path.isfile(self._path) or not os.path.exists(self._path):
if os.path.islink(self._path):

View File

@ -175,6 +175,14 @@ def test_path(vm, fake_iou_bin):
assert vm.path == fake_iou_bin
def test_path_relative(vm, fake_iou_bin, tmpdir):
with patch("gns3server.config.Config.get_section_config", return_value={"images_path": str(tmpdir)}):
vm.path = "iou.bin"
assert vm.path == fake_iou_bin
def test_path_invalid_bin(vm, tmpdir):
path = str(tmpdir / "test.bin")