mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 14:01:15 +02:00
Make sure used ports in a project are cleaned up when closing it.
This commit is contained in:
1 parent
2d6d153262
commit
153914bf97
17 files changed
+127
-65
No files matched your search
+3
-3
@@ -114,14 +114,14 @@ def port_manager():
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def free_console_port(request, port_manager):
|
||||
def free_console_port(request, port_manager, project):
|
||||
"""Get a free TCP port"""
|
||||
|
||||
# In case of already use ports we will raise an exception
|
||||
port = port_manager.get_free_tcp_port()
|
||||
port = port_manager.get_free_tcp_port(project)
|
||||
# We release the port immediately in order to allow
|
||||
# the test do whatever the test want
|
||||
port_manager.release_tcp_port(port)
|
||||
port_manager.release_tcp_port(port, project)
|
||||
return port
|
||||
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ def test_close(vm, port_manager, loop):
|
||||
port = vm.console
|
||||
loop.run_until_complete(asyncio.async(vm.close()))
|
||||
# Raise an exception if the port is not free
|
||||
port_manager.reserve_tcp_port(port)
|
||||
port_manager.reserve_tcp_port(port, vm.project)
|
||||
assert vm.is_running() is False
|
||||
|
||||
|
||||
|
||||
@@ -156,9 +156,9 @@ def test_close(vm, port_manager, loop):
|
||||
loop.run_until_complete(asyncio.async(vm.close()))
|
||||
|
||||
# Raise an exception if the port is not free
|
||||
port_manager.reserve_tcp_port(console_port)
|
||||
port_manager.reserve_tcp_port(console_port, vm.project)
|
||||
# Raise an exception if the port is not free
|
||||
port_manager.reserve_tcp_port(monitor_port)
|
||||
port_manager.reserve_tcp_port(monitor_port, vm.project)
|
||||
|
||||
assert vm.is_running() is False
|
||||
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
import aiohttp
|
||||
import pytest
|
||||
from gns3server.modules.port_manager import PortManager
|
||||
|
||||
from gns3server.modules.project import Project
|
||||
|
||||
def test_reserve_tcp_port():
|
||||
pm = PortManager()
|
||||
pm.reserve_tcp_port(4242)
|
||||
project = Project()
|
||||
pm.reserve_tcp_port(4242, project)
|
||||
with pytest.raises(aiohttp.web.HTTPConflict):
|
||||
pm.reserve_tcp_port(4242)
|
||||
pm.reserve_tcp_port(4242, project)
|
||||
@@ -191,14 +191,14 @@ def test_get_startup_script_using_default_script(vm):
|
||||
|
||||
|
||||
def test_change_console_port(vm, port_manager):
|
||||
port1 = port_manager.get_free_tcp_port()
|
||||
port2 = port_manager.get_free_tcp_port()
|
||||
port_manager.release_tcp_port(port1)
|
||||
port_manager.release_tcp_port(port2)
|
||||
port1 = port_manager.get_free_tcp_port(vm.project)
|
||||
port2 = port_manager.get_free_tcp_port(vm.project)
|
||||
port_manager.release_tcp_port(port1, vm.project)
|
||||
port_manager.release_tcp_port(port2, vm.project)
|
||||
vm.console = port1
|
||||
vm.console = port2
|
||||
assert vm.console == port2
|
||||
port_manager.reserve_tcp_port(port1)
|
||||
port_manager.reserve_tcp_port(port1, vm.project)
|
||||
|
||||
|
||||
def test_change_name(vm, tmpdir):
|
||||
@@ -219,5 +219,5 @@ def test_close(vm, port_manager, loop):
|
||||
port = vm.console
|
||||
loop.run_until_complete(asyncio.async(vm.close()))
|
||||
# Raise an exception if the port is not free
|
||||
port_manager.reserve_tcp_port(port)
|
||||
port_manager.reserve_tcp_port(port, vm.project)
|
||||
assert vm.is_running() is False
|
||||
Reference in new issue
Block a user