コード例 #1
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def stop_capture(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        yield from vm.stop_capture(port_number)
        response.set_status(204)
コード例 #2
0
def test_start(loop, vm, async_run):
    process = MagicMock()
    process.returncode = None

    with NotificationManager.instance().queue() as queue:
        async_run(queue.get(0))  # Ping

        with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM._check_requirements", return_value=True):
            with asyncio_patch("asyncio.create_subprocess_exec", return_value=process) as mock_exec:
                with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM.start_wrap_console"):
                    nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
                    async_run(vm.port_add_nio_binding(0, nio))
                    loop.run_until_complete(asyncio.async(vm.start()))
                    assert mock_exec.call_args[0] == (vm._vpcs_path(),
                                                      '-p',
                                                      str(vm._internal_console_port),
                                                      '-m', '1',
                                                      '-i',
                                                      '1',
                                                      '-F',
                                                      '-R',
                                                      '-s',
                                                      ANY,
                                                      '-c',
                                                      ANY,
                                                      '-t',
                                                      '127.0.0.1')
                assert vm.is_running()
                assert vm.command_line == ' '.join(mock_exec.call_args[0])
        (action, event, kwargs) = async_run(queue.get(0))
        assert action == "node.updated"
        assert event == vm
コード例 #3
0
def test_reload(loop, vm, async_run):
    process = MagicMock()

    # Wait process kill success
    future = asyncio.Future()
    future.set_result(True)
    process.wait.return_value = future
    process.returncode = None

    with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM._check_requirements", return_value=True):
        with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM.start_wrap_console"):
            with asyncio_patch("asyncio.create_subprocess_exec", return_value=process):
                nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
                async_run(vm.port_add_nio_binding(0, nio))
                async_run(vm.start())
                assert vm.is_running()

                with asyncio_patch("gns3server.utils.asyncio.wait_for_process_termination"):
                    async_run(vm.reload())
                assert vm.is_running() is True

                if sys.platform.startswith("win"):
                    process.send_signal.assert_called_with(1)
                else:
                    process.terminate.assert_called_with()
コード例 #4
0
    async def start(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        await vm.start()
        response.json(vm)
コード例 #5
0
ファイル: test_vpcs_vm.py プロジェクト: AJNOURI/gns3-server
def test_start_0_6_1(loop, vm, async_run):
    """
    Version 0.6.1 doesn't have the -R options. It's not require
    because GNS3 provide a patch for this.
    """
    process = MagicMock()
    process.returncode = None
    vm._vpcs_version = parse_version("0.6.1")

    with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM._check_requirements", return_value=True):
        with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM.start_wrap_console"):
            with asyncio_patch("asyncio.create_subprocess_exec", return_value=process) as mock_exec:
                nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
                async_run(vm.port_add_nio_binding(0, nio))
                async_run(vm.start())
                assert mock_exec.call_args[0] == (vm._vpcs_path(),
                                                  '-p',
                                                  str(vm._internal_console_port),
                                                  '-m', '1',
                                                  '-i',
                                                  '1',
                                                  '-F',
                                                  '-s',
                                                  ANY,
                                                  '-c',
                                                  ANY,
                                                  '-t',
                                                  '127.0.0.1')
                assert vm.is_running()
コード例 #6
0
def test_stop(loop, vm, async_run):
    process = MagicMock()

    # Wait process kill success
    future = asyncio.Future()
    future.set_result(True)
    process.wait.return_value = future
    process.returncode = None

    with NotificationManager.instance().queue() as queue:
        with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM._check_requirements", return_value=True):
            with asyncio_patch("gns3server.compute.vpcs.vpcs_vm.VPCSVM.start_wrap_console"):
                with asyncio_patch("asyncio.create_subprocess_exec", return_value=process):
                    nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
                    async_run(vm.port_add_nio_binding(0, nio))

                    async_run(vm.start())
                    assert vm.is_running()

                    with asyncio_patch("gns3server.utils.asyncio.wait_for_process_termination"):
                        loop.run_until_complete(asyncio.async(vm.stop()))
                    assert vm.is_running() is False

                    if sys.platform.startswith("win"):
                        process.send_signal.assert_called_with(1)
                    else:
                        process.terminate.assert_called_with()

                    async_run(queue.get(0))  #  Ping
                    async_run(queue.get(0))  #  Started

                    (action, event, kwargs) = async_run(queue.get(0))
                    assert action == "node.updated"
                    assert event == vm
コード例 #7
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    async def stream_pcap_file(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        nio = vm.get_nio(port_number)
        await vpcs_manager.stream_pcap_file(nio, vm.project.id, request, response)
コード例 #8
0
    async def reload(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        await vm.reload()
        response.set_status(204)
コード例 #9
0
    def stop(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        yield from vm.stop()
        response.set_status(204)
コード例 #10
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    async def delete_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        await vm.port_remove_nio_binding(port_number)
        response.set_status(204)
コード例 #11
0
async def test_start_0_6_1(vm):
    """
    Version 0.6.1 doesn't have the -R options. It's not require
    because GNS3 provide a patch for this.
    """

    process = MagicMock()
    process.returncode = None
    vm._vpcs_version = parse_version("0.6.1")

    with asyncio_patch(
            "gns3server.compute.vpcs.vpcs_vm.VPCSVM._check_requirements",
            return_value=True):
        with asyncio_patch(
                "gns3server.compute.vpcs.vpcs_vm.VPCSVM.start_wrap_console"):
            with asyncio_patch("asyncio.create_subprocess_exec",
                               return_value=process) as mock_exec:
                nio = VPCS.instance().create_nio({
                    "type": "nio_udp",
                    "lport": 4242,
                    "rport": 4243,
                    "rhost": "127.0.0.1",
                    "filters": {}
                })
                await vm.port_add_nio_binding(0, nio)
                await vm.start()
                assert mock_exec.call_args[0] == (
                    vm._vpcs_path(), '-p', str(vm._internal_console_port),
                    '-m', '1', '-i', '1', '-F', '-s', ANY, '-c', ANY, '-t',
                    '127.0.0.1')
                assert vm.is_running()
コード例 #12
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def stop_capture(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        yield from vm.stop_capture(port_number)
        response.set_status(204)
コード例 #13
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def start_capture(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        pcap_file_path = os.path.join(vm.project.capture_working_directory(), request.json["capture_file_name"])
        yield from vm.start_capture(port_number, pcap_file_path)
        response.json({"pcap_file_path": pcap_file_path})
コード例 #14
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def update(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        vm.name = request.json.get("name", vm.name)
        vm.console = request.json.get("console", vm.console)
        vm.updated()
        response.json(vm)
コード例 #15
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def start_capture(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        pcap_file_path = os.path.join(vm.project.capture_working_directory(), request.json["capture_file_name"])
        yield from vm.start_capture(port_number, pcap_file_path)
        response.json({"pcap_file_path": pcap_file_path})
コード例 #16
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def duplicate(request, response):

        new_node = yield from VPCS.instance().duplicate_node(
            request.match_info["node_id"],
            request.json["destination_node_id"]
        )
        response.set_status(201)
        response.json(new_node)
コード例 #17
0
    async def delete_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        await vm.port_remove_nio_binding(port_number)
        response.set_status(204)
コード例 #18
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def update(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        vm.name = request.json.get("name", vm.name)
        vm.console = request.json.get("console", vm.console)
        vm.updated()
        response.json(vm)
コード例 #19
0
    async def stream_pcap_file(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        nio = vm.get_nio(port_number)
        await vpcs_manager.stream_pcap_file(nio, vm.project.id, request,
                                            response)
コード例 #20
0
def test_add_nio_binding_udp(vm, async_run):
    nio = VPCS.instance().create_nio({
        "type": "nio_udp",
        "lport": 4242,
        "rport": 4243,
        "rhost": "127.0.0.1"
    })
    async_run(vm.port_add_nio_binding(0, nio))
    assert nio.lport == 4242
コード例 #21
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def create(request, response):

        vpcs = VPCS.instance()
        vm = yield from vpcs.create_node(request.json["name"],
                                         request.match_info["project_id"],
                                         request.json.get("node_id"),
                                         console=request.json.get("console"),
                                         startup_script=request.json.get("startup_script"))
        response.set_status(201)
        response.json(vm)
コード例 #22
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def create(request, response):

        vpcs = VPCS.instance()
        vm = yield from vpcs.create_node(request.json["name"],
                                         request.match_info["project_id"],
                                         request.json.get("node_id"),
                                         console=request.json.get("console"),
                                         startup_script=request.json.get("startup_script"))
        response.set_status(201)
        response.json(vm)
コード例 #23
0
ファイル: test_vpcs_vm.py プロジェクト: yuma-bbt/gns3-server
def test_add_nio_binding_tap(vm, ethernet_device):
    with patch(
            "gns3server.compute.base_manager.BaseManager.has_privileged_access",
            return_value=True):
        nio = VPCS.instance().create_nio({
            "type": "nio_tap",
            "tap_device": ethernet_device
        })
        vm.port_add_nio_binding(0, nio)
        assert nio.tap_device == ethernet_device
コード例 #24
0
ファイル: test_vpcs_vm.py プロジェクト: yuma-bbt/gns3-server
def test_port_remove_nio_binding(vm):
    nio = VPCS.instance().create_nio({
        "type": "nio_udp",
        "lport": 4242,
        "rport": 4243,
        "rhost": "127.0.0.1"
    })
    vm.port_add_nio_binding(0, nio)
    vm.port_remove_nio_binding(0)
    assert vm._ethernet_adapter.ports[0] is None
コード例 #25
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def update_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        nio = vm.ethernet_adapter.get_nio(int(request.match_info["port_number"]))
        if "filters" in request.json and nio:
            nio.filters = request.json["filters"]
        yield from vm.port_update_nio_binding(int(request.match_info["port_number"]), nio)
        response.set_status(201)
        response.json(request.json)
コード例 #26
0
def test_get_mac_id_no_id_available(loop, project, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    with pytest.raises(VPCSError):
        for i in range(0, 256):
            node_id = str(uuid.uuid4())
            loop.run_until_complete(vpcs.create_node("PC {}".format(i), project.id, node_id))
            assert vpcs.get_mac_id(node_id) == i
コード例 #27
0
async def test_add_nio_binding_udp(vm):

    nio = VPCS.instance().create_nio({
        "type": "nio_udp",
        "lport": 4242,
        "rport": 4243,
        "rhost": "127.0.0.1",
        "filters": {}
    })
    await vm.port_add_nio_binding(0, nio)
    assert nio.lport == 4242
コード例 #28
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def create_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        nio_type = request.json["type"]
        if nio_type not in ("nio_udp", "nio_tap"):
            raise HTTPConflict(text="NIO of type {} is not supported".format(nio_type))
        nio = vpcs_manager.create_nio(request.json)
        yield from vm.port_add_nio_binding(int(request.match_info["port_number"]), nio)
        response.set_status(201)
        response.json(nio)
コード例 #29
0
def test_get_mac_id_no_id_available(loop, project, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    with pytest.raises(VPCSError):
        for i in range(0, 256):
            node_id = str(uuid.uuid4())
            loop.run_until_complete(
                vpcs.create_node("PC {}".format(i), project.id, node_id))
            assert vpcs.get_mac_id(node_id) == i
コード例 #30
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def create_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        nio_type = request.json["type"]
        if nio_type not in ("nio_udp", "nio_tap"):
            raise HTTPConflict(text="NIO of type {} is not supported".format(nio_type))
        nio = vpcs_manager.create_nio(request.json)
        yield from vm.port_add_nio_binding(int(request.match_info["port_number"]), nio)
        response.set_status(201)
        response.json(nio)
コード例 #31
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    async def update_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        nio = vm.get_nio(port_number)
        if "filters" in request.json:
            nio.filters = request.json["filters"]
        await vm.port_update_nio_binding(port_number, nio)
        response.set_status(201)
        response.json(request.json)
コード例 #32
0
    async def update_nio(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        port_number = int(request.match_info["port_number"])
        nio = vm.get_nio(port_number)
        if "filters" in request.json:
            nio.filters = request.json["filters"]
        await vm.port_update_nio_binding(port_number, nio)
        response.set_status(201)
        response.json(request.json)
コード例 #33
0
def test_get_mac_id_multiple_project(loop, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    vm1_id = str(uuid.uuid4())
    vm2_id = str(uuid.uuid4())
    vm3_id = str(uuid.uuid4())
    project1 = ProjectManager.instance().create_project(project_id=str(uuid.uuid4()))
    project2 = ProjectManager.instance().create_project(project_id=str(uuid.uuid4()))
    loop.run_until_complete(vpcs.create_node("PC 1", project1.id, vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project1.id, vm2_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project2.id, vm3_id))
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm2_id) == 1
    assert vpcs.get_mac_id(vm3_id) == 0
コード例 #34
0
def test_get_mac_id(loop, project, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    vm1_id = str(uuid.uuid4())
    vm2_id = str(uuid.uuid4())
    vm3_id = str(uuid.uuid4())
    loop.run_until_complete(vpcs.create_node("PC 1", project.id, vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project.id, vm2_id))
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm2_id) == 1
    loop.run_until_complete(vpcs.delete_node(vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 3", project.id, vm3_id))
    assert vpcs.get_mac_id(vm3_id) == 0
コード例 #35
0
def test_get_mac_id(loop, project, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    vm1_id = str(uuid.uuid4())
    vm2_id = str(uuid.uuid4())
    vm3_id = str(uuid.uuid4())
    loop.run_until_complete(vpcs.create_node("PC 1", project.id, vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project.id, vm2_id))
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm2_id) == 1
    loop.run_until_complete(vpcs.delete_node(vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 3", project.id, vm3_id))
    assert vpcs.get_mac_id(vm3_id) == 0
コード例 #36
0
async def test_get_mac_id(compute_project, port_manager):

    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    vm1_id = str(uuid.uuid4())
    vm2_id = str(uuid.uuid4())
    vm3_id = str(uuid.uuid4())
    await vpcs.create_node("PC 1", compute_project.id, vm1_id)
    await vpcs.create_node("PC 2", compute_project.id, vm2_id)
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm2_id) == 1
    await vpcs.delete_node(vm1_id)
    await vpcs.create_node("PC 3", compute_project.id, vm3_id)
    assert vpcs.get_mac_id(vm3_id) == 0
コード例 #37
0
def test_get_mac_id_multiple_project(loop, port_manager):
    # Cleanup the VPCS object
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    vm1_id = str(uuid.uuid4())
    vm2_id = str(uuid.uuid4())
    vm3_id = str(uuid.uuid4())
    project1 = ProjectManager.instance().create_project(
        project_id=str(uuid.uuid4()))
    project2 = ProjectManager.instance().create_project(
        project_id=str(uuid.uuid4()))
    loop.run_until_complete(vpcs.create_node("PC 1", project1.id, vm1_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project1.id, vm2_id))
    loop.run_until_complete(vpcs.create_node("PC 2", project2.id, vm3_id))
    assert vpcs.get_mac_id(vm1_id) == 0
    assert vpcs.get_mac_id(vm2_id) == 1
    assert vpcs.get_mac_id(vm3_id) == 0
コード例 #38
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    def suspend(request, response):

        vpcs_manager = VPCS.instance()
        vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        response.set_status(204)
コード例 #39
0
ファイル: test_vpcs_vm.py プロジェクト: GNS3/gns3-server
def test_add_nio_binding_tap(vm, ethernet_device, loop):
    with patch("gns3server.compute.base_manager.BaseManager.has_privileged_access", return_value=True):
        nio = VPCS.instance().create_nio({"type": "nio_tap", "tap_device": ethernet_device})
        loop.run_until_complete(asyncio.ensure_future(vm.port_add_nio_binding(0, nio)))
        assert nio.tap_device == ethernet_device
コード例 #40
0
ファイル: test_vpcs_vm.py プロジェクト: GNS3/gns3-server
def test_port_remove_nio_binding(vm, loop):
    nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
    loop.run_until_complete(asyncio.ensure_future(vm.port_add_nio_binding(0, nio)))
    loop.run_until_complete(asyncio.ensure_future(vm.port_remove_nio_binding(0)))
    assert vm._ethernet_adapter.ports[0] is None
コード例 #41
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def delete(request, response):

        yield from VPCS.instance().delete_node(request.match_info["node_id"])
        response.set_status(204)
コード例 #42
0
    def suspend(request, response):

        vpcs_manager = VPCS.instance()
        vpcs_manager.get_node(request.match_info["node_id"],
                              project_id=request.match_info["project_id"])
        response.set_status(204)
コード例 #43
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def show(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        response.json(vm)
コード例 #44
0
ファイル: vpcs_handler.py プロジェクト: yuma-bbt/gns3-server
    def delete(request, response):

        yield from VPCS.instance().delete_node(request.match_info["node_id"])
        response.set_status(204)
コード例 #45
0
ファイル: test_vpcs_vm.py プロジェクト: AJNOURI/gns3-server
def test_add_nio_binding_tap(vm, ethernet_device):
    with patch("gns3server.compute.base_manager.BaseManager.has_privileged_access", return_value=True):
        nio = VPCS.instance().create_nio({"type": "nio_tap", "tap_device": ethernet_device})
        vm.port_add_nio_binding(0, nio)
        assert nio.tap_device == ethernet_device
コード例 #46
0
ファイル: test_vpcs_vm.py プロジェクト: AJNOURI/gns3-server
def test_add_nio_binding_udp(vm, async_run):
    nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
    async_run(vm.port_add_nio_binding(0, nio))
    assert nio.lport == 4242
コード例 #47
0
async def manager(loop, port_manager):

    m = VPCS.instance()
    m.port_manager = port_manager
    return m
コード例 #48
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    async def stop(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        await vm.stop()
        response.set_status(204)
コード例 #49
0
ファイル: test_base_node.py プロジェクト: GNS3/gns3-server
def manager(port_manager):
    m = VPCS.instance()
    m.port_manager = port_manager
    return m
コード例 #50
0
    def show(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"],
                                   project_id=request.match_info["project_id"])
        response.json(vm)
コード例 #51
0
ファイル: vpcs_handler.py プロジェクト: AJNOURI/gns3-server
    def reload(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        yield from vm.reload()
        response.set_status(204)
コード例 #52
0
ファイル: test_vpcs_vm.py プロジェクト: AJNOURI/gns3-server
def test_port_remove_nio_binding(vm):
    nio = VPCS.instance().create_nio({"type": "nio_udp", "lport": 4242, "rport": 4243, "rhost": "127.0.0.1"})
    vm.port_add_nio_binding(0, nio)
    vm.port_remove_nio_binding(0)
    assert vm._ethernet_adapter.ports[0] is None
コード例 #53
0
ファイル: test_manager.py プロジェクト: GNS3/gns3-server
def vpcs(port_manager):
    VPCS._instance = None
    vpcs = VPCS.instance()
    vpcs.port_manager = port_manager
    return vpcs
コード例 #54
0
def manager(port_manager):
    m = VPCS.instance()
    m.port_manager = port_manager
    return m
コード例 #55
0
ファイル: vpcs_handler.py プロジェクト: GNS3/gns3-server
    async def start(request, response):

        vpcs_manager = VPCS.instance()
        vm = vpcs_manager.get_node(request.match_info["node_id"], project_id=request.match_info["project_id"])
        await vm.start()
        response.json(vm)