1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-25 08:18:30 +00:00

Do not crash if no console port is available for VBox

I don't know how user manage to fall in this situation.

Fix #127
This commit is contained in:
Julien Duponchelle 2015-04-01 17:59:58 +02:00
parent 90d55fcb8a
commit a3c8201bcc
3 changed files with 4 additions and 3 deletions

View File

@ -189,7 +189,7 @@ class VirtualBoxVM(BaseVM):
# add a guest property to let the VM know about the GNS3 project directory # add a guest property to let the VM know about the GNS3 project directory
yield from self.manager.execute("guestproperty", ["set", self._vmname, "ProjectDirInGNS3", self.working_dir]) yield from self.manager.execute("guestproperty", ["set", self._vmname, "ProjectDirInGNS3", self.working_dir])
if self._enable_remote_console: if self._enable_remote_console and self._console is not None:
self._start_remote_console() self._start_remote_console()
@asyncio.coroutine @asyncio.coroutine

View File

@ -38,12 +38,14 @@ def test_vm_invalid_vboxmanage_path(manager):
with pytest.raises(VirtualBoxError): with pytest.raises(VirtualBoxError):
manager.find_vboxmanage() manager.find_vboxmanage()
def test_vm_non_executable_vboxmanage_path(manager): def test_vm_non_executable_vboxmanage_path(manager):
tmpfile = tempfile.NamedTemporaryFile() tmpfile = tempfile.NamedTemporaryFile()
with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": tmpfile.name}): with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": tmpfile.name}):
with pytest.raises(VirtualBoxError): with pytest.raises(VirtualBoxError):
manager.find_vboxmanage() manager.find_vboxmanage()
def test_vm_invalid_executable_name_vboxmanage_path(manager, tmpdir): def test_vm_invalid_executable_name_vboxmanage_path(manager, tmpdir):
path = str(tmpdir / "vpcs") path = str(tmpdir / "vpcs")
with open(path, "w+") as f: with open(path, "w+") as f:
@ -54,6 +56,7 @@ def test_vm_invalid_executable_name_vboxmanage_path(manager, tmpdir):
with pytest.raises(VirtualBoxError): with pytest.raises(VirtualBoxError):
manager.find_vboxmanage() manager.find_vboxmanage()
def test_vboxmanage_path(manager, tmpdir): def test_vboxmanage_path(manager, tmpdir):
path = str(tmpdir / "VBoxManage") path = str(tmpdir / "VBoxManage")
with open(path, "w+") as f: with open(path, "w+") as f:
@ -62,4 +65,3 @@ def test_vboxmanage_path(manager, tmpdir):
tmpfile = tempfile.NamedTemporaryFile() tmpfile = tempfile.NamedTemporaryFile()
with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": path}): with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": path}):
assert manager.find_vboxmanage() == path assert manager.find_vboxmanage() == path

View File

@ -54,4 +54,3 @@ def test_vm_invalid_virtualbox_api_version(loop, project, manager):
with pytest.raises(VirtualBoxError): with pytest.raises(VirtualBoxError):
vm = VirtualBoxVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager, "test", False) vm = VirtualBoxVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager, "test", False)
loop.run_until_complete(asyncio.async(vm.create())) loop.run_until_complete(asyncio.async(vm.create()))