コード例 #1
0
def server(request, loop, port_manager, monkeypatch):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    for module in MODULES:
        instance = module.instance()
        instance.port_manager = port_manager

    host = "localhost"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:
            srv = loop.create_server(app.make_handler(), host, port)
            srv = loop.run_until_complete(srv)
        except OSError:
            pass
        else:
            break

    def tear_down():
        for module in MODULES:
            instance = module.instance()
            monkeypatch.setattr(
                'gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.close',
                lambda self: True)
            loop.run_until_complete(instance.unload())
        srv.close()
        srv.wait_closed()

    request.addfinalizer(tear_down)
    return Query(loop, host=host, port=port)
コード例 #2
0
ファイル: conftest.py プロジェクト: yuma-bbt/gns3-server
def http_server(request, loop, port_manager, monkeypatch, controller):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)

    host = "127.0.0.1"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:
            srv = loop.create_server(app.make_handler(), host, port)
            srv = loop.run_until_complete(srv)
        except OSError:
            pass
        else:
            break

    yield (host, port)

    loop.run_until_complete(controller.stop())
    for module in MODULES:
        instance = module.instance()
        monkeypatch.setattr(
            'gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.close',
            lambda self: True)
        loop.run_until_complete(instance.unload())
    srv.close()
    srv.wait_closed()
コード例 #3
0
def server(request, loop, port_manager, monkeypatch):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    for module in MODULES:
        instance = module.instance()
        instance.port_manager = port_manager

    host = "localhost"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:
            srv = loop.create_server(app.make_handler(), host, port)
            srv = loop.run_until_complete(srv)
        except OSError:
            pass
        else:
            break

    def tear_down():
        for module in MODULES:
            instance = module.instance()
            monkeypatch.setattr('gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.close', lambda self: True)
            loop.run_until_complete(instance.unload())
        srv.close()
        srv.wait_closed()
    request.addfinalizer(tear_down)
    return Query(loop, host=host, port=port)
コード例 #4
0
async def http_client(aiohttp_client):

    app = web.Application()
    app['websockets'] = weakref.WeakSet()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    return await aiohttp_client(app)
コード例 #5
0
ファイル: conftest.py プロジェクト: athmane/gns3-server
def http_server(request, loop, port_manager, monkeypatch, controller):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)

    host = "127.0.0.1"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:
            srv = loop.create_server(app.make_handler(), host, port)
            srv = loop.run_until_complete(srv)
        except OSError:
            pass
        else:
            break

    yield (host, port)

    loop.run_until_complete(controller.stop())
    for module in MODULES:
        instance = module.instance()
        monkeypatch.setattr('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.close', lambda self: True)
        loop.run_until_complete(instance.unload())
    srv.close()
    srv.wait_closed()
コード例 #6
0
def server(request, loop, port_manager, monkeypatch):
    """A GNS3 server"""

    port = _get_unused_port()
    host = "localhost"
    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    for module in MODULES:
        instance = module.instance()
        instance.port_manager = port_manager
    srv = loop.create_server(app.make_handler(), host, port)
    srv = loop.run_until_complete(srv)

    def tear_down():
        for module in MODULES:
            instance = module.instance()
            monkeypatch.setattr(
                'gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.close',
                lambda self: True)
            loop.run_until_complete(instance.unload())
        srv.close()
        srv.wait_closed()

    request.addfinalizer(tear_down)
    return Query(loop, host=host, port=port)
コード例 #7
0
async def client(aiohttp_client):
    """
    Return an helper allowing you to call the server without any prefix
    """
    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    return await aiohttp_client(app)
コード例 #8
0
ファイル: conftest.py プロジェクト: GNS3/gns3-server
async def client(aiohttp_client):
    """
    Return an helper allowing you to call the server without any prefix
    """
    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    return await aiohttp_client(app)
コード例 #9
0
def http_server(request, loop, port_manager, monkeypatch, controller):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)

    # Keep a list of active websocket connections
    app['websockets'] = weakref.WeakSet()

    host = "127.0.0.1"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:

            runner = web.AppRunner(app)
            loop.run_until_complete(runner.setup())
            site = web.TCPSite(runner, host, port)
            loop.run_until_complete(site.start())
        except OSError:
            pass
        else:
            break

    yield (host, port)

    # close websocket connections
    for ws in set(app['websockets']):
        loop.run_until_complete(
            ws.close(code=aiohttp.WSCloseCode.GOING_AWAY,
                     message='Server shutdown'))

    loop.run_until_complete(controller.stop())
    for module in MODULES:
        instance = module.instance()
        monkeypatch.setattr(
            'gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.close',
            lambda self: True)
        loop.run_until_complete(instance.unload())

    loop.run_until_complete(runner.cleanup())
コード例 #10
0
ファイル: conftest.py プロジェクト: GNS3/gns3-server
def http_server(request, loop, port_manager, monkeypatch, controller):
    """A GNS3 server"""

    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)

    # Keep a list of active websocket connections
    app['websockets'] = weakref.WeakSet()

    host = "127.0.0.1"

    # We try multiple time. Because on Travis test can fail when because the port is taken by someone else
    for i in range(0, 5):
        port = _get_unused_port()
        try:

            runner = web.AppRunner(app)
            loop.run_until_complete(runner.setup())
            site = web.TCPSite(runner, host, port)
            loop.run_until_complete(site.start())
        except OSError:
            pass
        else:
            break

    yield (host, port)

    # close websocket connections
    for ws in set(app['websockets']):
        loop.run_until_complete(ws.close(code=aiohttp.WSCloseCode.GOING_AWAY, message='Server shutdown'))

    loop.run_until_complete(controller.stop())
    for module in MODULES:
        instance = module.instance()
        monkeypatch.setattr('gns3server.compute.virtualbox.virtualbox_vm.VirtualBoxVM.close', lambda self: True)
        loop.run_until_complete(instance.unload())

    loop.run_until_complete(runner.cleanup())
コード例 #11
0
ファイル: conftest.py プロジェクト: astoffel/gns3-server
def server(request, loop, port_manager, monkeypatch):
    """A GNS3 server"""

    port = _get_unused_port()
    host = "localhost"
    app = web.Application()
    for method, route, handler in Route.get_routes():
        app.router.add_route(method, route, handler)
    for module in MODULES:
        instance = module.instance()
        instance.port_manager = port_manager
    srv = loop.create_server(app.make_handler(), host, port)
    srv = loop.run_until_complete(srv)

    def tear_down():
        for module in MODULES:
            instance = module.instance()
            monkeypatch.setattr('gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.close', lambda self: True)
            loop.run_until_complete(instance.unload())
        srv.close()
        srv.wait_closed()
    request.addfinalizer(tear_down)
    return Query(loop, host=host, port=port)