From 79a57ca4209ded05bcab4cc882c891078f60115b Mon Sep 17 00:00:00 2001 From: Jeremy Date: Wed, 11 Feb 2015 19:21:34 -0700 Subject: [PATCH] New Dynamips integration part 3 --- gns3server/config.py | 2 +- gns3server/handlers/dynamips_handler.py | 196 +++++- gns3server/modules/dynamips/__init__.py | 518 ++++---------- .../modules/dynamips/dynamips_hypervisor.py | 4 +- gns3server/modules/dynamips/dynamips_vm.py | 4 +- gns3server/modules/dynamips/nios/nio_fifo.py | 6 +- .../dynamips/nios/nio_generic_ethernet.py | 6 +- .../dynamips/nios/nio_linux_ethernet.py | 6 +- gns3server/modules/dynamips/nios/nio_mcast.py | 6 +- gns3server/modules/dynamips/nios/nio_null.py | 6 +- gns3server/modules/dynamips/nios/nio_tap.py | 6 +- gns3server/modules/dynamips/nios/nio_udp.py | 6 +- .../modules/dynamips/nios/nio_udp_auto.py | 6 +- gns3server/modules/dynamips/nios/nio_unix.py | 6 +- gns3server/modules/dynamips/nios/nio_vde.py | 6 +- gns3server/modules/dynamips/nodes/c1700.py | 5 +- gns3server/modules/dynamips/nodes/c2600.py | 5 +- gns3server/modules/dynamips/nodes/c2691.py | 5 +- gns3server/modules/dynamips/nodes/c3600.py | 5 +- gns3server/modules/dynamips/nodes/c3725.py | 5 +- gns3server/modules/dynamips/nodes/c3745.py | 5 +- gns3server/modules/dynamips/nodes/c7200.py | 5 +- gns3server/modules/dynamips/nodes/router.py | 41 +- gns3server/schemas/dynamips.py | 637 +++++++++++++++++- gns3server/utils/interfaces.py | 4 +- old_tests/dynamips/.gitignore | 1 - old_tests/dynamips/conftest.py | 29 - old_tests/dynamips/dynamips.stable | Bin 961958 -> 0 bytes old_tests/dynamips/test_atm_bridge.py | 62 -- old_tests/dynamips/test_atm_switch.py | 83 --- old_tests/dynamips/test_bridge.py | 31 - old_tests/dynamips/test_c1700.py | 167 ----- old_tests/dynamips/test_c2600.py | 216 ------ old_tests/dynamips/test_c2691.py | 73 -- old_tests/dynamips/test_c3600.py | 118 ---- old_tests/dynamips/test_c3725.py | 73 -- old_tests/dynamips/test_c3745.py | 73 -- old_tests/dynamips/test_c7200.py | 188 ------ old_tests/dynamips/test_ethernet_switch.py | 87 --- old_tests/dynamips/test_frame_relay_switch.py | 65 -- old_tests/dynamips/test_hub.py | 25 - old_tests/dynamips/test_hypervisor.py | 41 -- old_tests/dynamips/test_hypervisor_manager.py | 52 -- old_tests/dynamips/test_nios.py | 139 ---- old_tests/dynamips/test_router.py | 232 ------- old_tests/dynamips/test_vmhandler.py | 65 -- old_tests/test_jsonrpc.py | 92 --- tests/api/test_dynamips.py | 125 ++++ .../modules/dynamips/test_dynamips_manager.py | 44 ++ .../modules/dynamips/test_dynamips_router.py | 51 ++ .../virtualbox/test_virtualbox_manager.py | 10 +- 51 files changed, 1257 insertions(+), 2386 deletions(-) delete mode 100644 old_tests/dynamips/.gitignore delete mode 100644 old_tests/dynamips/conftest.py delete mode 100755 old_tests/dynamips/dynamips.stable delete mode 100644 old_tests/dynamips/test_atm_bridge.py delete mode 100644 old_tests/dynamips/test_atm_switch.py delete mode 100644 old_tests/dynamips/test_bridge.py delete mode 100644 old_tests/dynamips/test_c1700.py delete mode 100644 old_tests/dynamips/test_c2600.py delete mode 100644 old_tests/dynamips/test_c2691.py delete mode 100644 old_tests/dynamips/test_c3600.py delete mode 100644 old_tests/dynamips/test_c3725.py delete mode 100644 old_tests/dynamips/test_c3745.py delete mode 100644 old_tests/dynamips/test_c7200.py delete mode 100644 old_tests/dynamips/test_ethernet_switch.py delete mode 100644 old_tests/dynamips/test_frame_relay_switch.py delete mode 100644 old_tests/dynamips/test_hub.py delete mode 100644 old_tests/dynamips/test_hypervisor.py delete mode 100644 old_tests/dynamips/test_hypervisor_manager.py delete mode 100644 old_tests/dynamips/test_nios.py delete mode 100644 old_tests/dynamips/test_router.py delete mode 100644 old_tests/dynamips/test_vmhandler.py delete mode 100644 old_tests/test_jsonrpc.py create mode 100644 tests/api/test_dynamips.py create mode 100644 tests/modules/dynamips/test_dynamips_manager.py create mode 100644 tests/modules/dynamips/test_dynamips_router.py diff --git a/gns3server/config.py b/gns3server/config.py index 21e1e5b9..05c0cb96 100644 --- a/gns3server/config.py +++ b/gns3server/config.py @@ -186,7 +186,7 @@ class Config(object): """ Singleton to return only on instance of Config. - :params files: Array of configuration files (optionnal) + :params files: Array of configuration files (optional) :returns: instance of Config """ diff --git a/gns3server/handlers/dynamips_handler.py b/gns3server/handlers/dynamips_handler.py index 85d79cf6..0b0be6a1 100644 --- a/gns3server/handlers/dynamips_handler.py +++ b/gns3server/handlers/dynamips_handler.py @@ -15,10 +15,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os + +import asyncio from ..web.route import Route -from ..schemas.dynamips import ROUTER_CREATE_SCHEMA -from ..schemas.dynamips import ROUTER_OBJECT_SCHEMA +from ..schemas.dynamips import VM_CREATE_SCHEMA +from ..schemas.dynamips import VM_UPDATE_SCHEMA +from ..schemas.dynamips import VM_OBJECT_SCHEMA from ..modules.dynamips import Dynamips from ..modules.project_manager import ProjectManager @@ -31,7 +33,7 @@ class DynamipsHandler: @classmethod @Route.post( - r"/projects/{project_id}/dynamips/routers", + r"/projects/{project_id}/dynamips/vms", parameters={ "project_id": "UUID for the project" }, @@ -40,20 +42,194 @@ class DynamipsHandler: 400: "Invalid request", 409: "Conflict" }, - description="Create a new Dynamips router instance", - input=ROUTER_CREATE_SCHEMA) - #output=ROUTER_OBJECT_SCHEMA) + description="Create a new Dynamips VM instance", + input=VM_CREATE_SCHEMA, + output=VM_OBJECT_SCHEMA) def create(request, response): dynamips_manager = Dynamips.instance() vm = yield from dynamips_manager.create_vm(request.json.pop("name"), request.match_info["project_id"], request.json.get("vm_id"), + request.json.get("dynamips_id"), request.json.pop("platform")) - #for name, value in request.json.items(): - # if hasattr(vm, name) and getattr(vm, name) != value: - # setattr(vm, name, value) + # set VM options + for name, value in request.json.items(): + if hasattr(vm, name) and getattr(vm, name) != value: + setter = getattr(vm, "set_{}".format(name)) + if asyncio.iscoroutinefunction(vm.close): + yield from setter(value) + else: + setter(value) response.set_status(201) response.json(vm) + + @classmethod + @Route.get( + r"/projects/{project_id}/dynamips/vms/{vm_id}", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 200: "Success", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Get a Dynamips VM instance", + output=VM_OBJECT_SCHEMA) + def show(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + response.json(vm) + + @classmethod + @Route.put( + r"/projects/{project_id}/dynamips/vms/{vm_id}", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 200: "Instance updated", + 400: "Invalid request", + 404: "Instance doesn't exist", + 409: "Conflict" + }, + description="Update a Dynamips VM instance", + input=VM_UPDATE_SCHEMA, + output=VM_OBJECT_SCHEMA) + def update(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + + # FIXME: set options + #for name, value in request.json.items(): + # if hasattr(vm, name) and getattr(vm, name) != value: + # setattr(vm, name, value) + response.json(vm) + + @classmethod + @Route.delete( + r"/projects/{project_id}/dynamips/vms/{vm_id}", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance deleted", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Delete a Dynamips VM instance") + def delete(request, response): + + # check the project_id exists + ProjectManager.instance().get_project(request.match_info["project_id"]) + + yield from Dynamips.instance().delete_vm(request.match_info["vm_id"]) + response.set_status(204) + + @classmethod + @Route.post( + r"/projects/{project_id}/dynamips/vms/{vm_id}/start", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance started", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Start a Dynamips VM instance") + def start(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + yield from vm.start() + response.set_status(204) + + @classmethod + @Route.post( + r"/projects/{project_id}/dynamips/vms/{vm_id}/stop", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance stopped", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Stop a Dynamips VM instance") + def stop(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + yield from vm.stop() + response.set_status(204) + + @classmethod + @Route.post( + r"/projects/{project_id}/dynamips/vms/{vm_id}/suspend", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance suspended", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Suspend a Dynamips VM instance") + def suspend(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + yield from vm.suspend() + response.set_status(204) + + @classmethod + @Route.post( + r"/projects/{project_id}/dynamips/vms/{vm_id}/resume", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance resumed", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Resume a suspended Dynamips VM instance") + def suspend(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + yield from vm.resume() + response.set_status(204) + + @classmethod + @Route.post( + r"/projects/{project_id}/dynamips/vms/{vm_id}/reload", + parameters={ + "project_id": "UUID for the project", + "vm_id": "UUID for the instance" + }, + status_codes={ + 204: "Instance reloaded", + 400: "Invalid request", + 404: "Instance doesn't exist" + }, + description="Reload a Dynamips VM instance") + def reload(request, response): + + dynamips_manager = Dynamips.instance() + vm = dynamips_manager.get_vm(request.match_info["vm_id"], project_id=request.match_info["project_id"]) + yield from vm.reload() + response.set_status(204) diff --git a/gns3server/modules/dynamips/__init__.py b/gns3server/modules/dynamips/__init__.py index 4b401384..1edc2a39 100644 --- a/gns3server/modules/dynamips/__init__.py +++ b/gns3server/modules/dynamips/__init__.py @@ -19,81 +19,18 @@ Dynamips server module. """ +import aiohttp import sys import os -import base64 -import tempfile import shutil -import glob import socket -from gns3server.config import Config - -# from .hypervisor import Hypervisor -# from .hypervisor_manager import HypervisorManager -# from .dynamips_error import DynamipsError -# -# # Nodes -# from .nodes.router import Router -# from .nodes.c1700 import C1700 -# from .nodes.c2600 import C2600 -# from .nodes.c2691 import C2691 -# from .nodes.c3600 import C3600 -# from .nodes.c3725 import C3725 -# from .nodes.c3745 import C3745 -# from .nodes.c7200 import C7200 -# from .nodes.bridge import Bridge -# from .nodes.ethernet_switch import EthernetSwitch -# from .nodes.atm_switch import ATMSwitch -# from .nodes.atm_bridge import ATMBridge -# from .nodes.frame_relay_switch import FrameRelaySwitch -# from .nodes.hub import Hub -# -# # Adapters -# from .adapters.c7200_io_2fe import C7200_IO_2FE -# from .adapters.c7200_io_fe import C7200_IO_FE -# from .adapters.c7200_io_ge_e import C7200_IO_GE_E -# from .adapters.nm_16esw import NM_16ESW -# from .adapters.nm_1e import NM_1E -# from .adapters.nm_1fe_tx import NM_1FE_TX -# from .adapters.nm_4e import NM_4E -# from .adapters.nm_4t import NM_4T -# from .adapters.pa_2fe_tx import PA_2FE_TX -# from .adapters.pa_4e import PA_4E -# from .adapters.pa_4t import PA_4T -# from .adapters.pa_8e import PA_8E -# from .adapters.pa_8t import PA_8T -# from .adapters.pa_a1 import PA_A1 -# from .adapters.pa_fe_tx import PA_FE_TX -# from .adapters.pa_ge import PA_GE -# from .adapters.pa_pos_oc3 import PA_POS_OC3 -# from .adapters.wic_1t import WIC_1T -# from .adapters.wic_2t import WIC_2T -# from .adapters.wic_1enet import WIC_1ENET -# -# # NIOs -# from .nios.nio_udp import NIO_UDP -# from .nios.nio_udp_auto import NIO_UDP_auto -# from .nios.nio_unix import NIO_UNIX -# from .nios.nio_vde import NIO_VDE -# from .nios.nio_tap import NIO_TAP -# from .nios.nio_generic_ethernet import NIO_GenericEthernet -# from .nios.nio_linux_ethernet import NIO_LinuxEthernet -# from .nios.nio_fifo import NIO_FIFO -# from .nios.nio_mcast import NIO_Mcast -# from .nios.nio_null import NIO_Null -# -# from .backends import vm -# from .backends import ethsw -# from .backends import ethhub -# from .backends import frsw -# from .backends import atmsw - import time import asyncio import logging log = logging.getLogger(__name__) +from gns3server.utils.interfaces import get_windows_interfaces from pkg_resources import parse_version from ..base_manager import BaseManager from .dynamips_error import DynamipsError @@ -101,6 +38,18 @@ from .hypervisor import Hypervisor from .nodes.router import Router from .dynamips_vm import DynamipsVM +# NIOs +from .nios.nio_udp import NIOUDP +from .nios.nio_udp_auto import NIOUDPAuto +from .nios.nio_unix import NIOUNIX +from .nios.nio_vde import NIOVDE +from .nios.nio_tap import NIOTAP +from .nios.nio_generic_ethernet import NIOGenericEthernet +from .nios.nio_linux_ethernet import NIOLinuxEthernet +from .nios.nio_fifo import NIOFIFO +from .nios.nio_mcast import NIOMcast +from .nios.nio_null import NIONull + class Dynamips(BaseManager): @@ -113,7 +62,35 @@ class Dynamips(BaseManager): # FIXME: temporary self._working_dir = "/tmp" - self._dynamips_path = "/usr/bin/dynamips" + + @asyncio.coroutine + def unload(self): + + yield from BaseManager.unload(self) + Router.reset() + +# files = glob.glob(os.path.join(self._working_dir, "dynamips", "*.ghost")) +# files += glob.glob(os.path.join(self._working_dir, "dynamips", "*_lock")) +# files += glob.glob(os.path.join(self._working_dir, "dynamips", "ilt_*")) +# files += glob.glob(os.path.join(self._working_dir, "dynamips", "c[0-9][0-9][0-9][0-9]_*_rommon_vars")) +# files += glob.glob(os.path.join(self._working_dir, "dynamips", "c[0-9][0-9][0-9][0-9]_*_ssa")) +# for file in files: +# try: +# log.debug("deleting file {}".format(file)) +# os.remove(file) +# except OSError as e: +# log.warn("could not delete file {}: {}".format(file, e)) +# continue + + @property + def dynamips_path(self): + """ + Returns the path to Dynamips. + + :returns: path + """ + + return self._dynamips_path def find_dynamips(self): @@ -168,6 +145,9 @@ class Dynamips(BaseManager): :returns: the new hypervisor instance """ + if not self._dynamips_path: + self.find_dynamips() + try: # let the OS find an unused port for the Dynamips hypervisor with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: @@ -190,323 +170,97 @@ class Dynamips(BaseManager): return hypervisor + def create_nio(self, executable, nio_settings): + """ + Creates a new NIO. + + :param nio_settings: information to create the NIO + + :returns: a NIO object + """ + + nio = None + if nio_settings["type"] == "nio_udp": + lport = nio_settings["lport"] + rhost = nio_settings["rhost"] + rport = nio_settings["rport"] + try: + # TODO: handle IPv6 + with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock: + sock.connect((rhost, rport)) + except OSError as e: + raise aiohttp.web.HTTPInternalServerError(text="Could not create an UDP connection to {}:{}: {}".format(rhost, rport, e)) + nio = NIOUDP(lport, rhost, rport) + elif nio_settings["type"] == "nio_tap": + tap_device = nio_settings["tap_device"] + if not self._has_privileged_access(executable): + raise aiohttp.web.HTTPForbidden(text="{} has no privileged access to {}.".format(executable, tap_device)) + nio = NIOTAP(tap_device) + assert nio is not None + return nio + + def create_nio(self, node, nio_settings): + """ + Creates a new NIO. + + :param node: Dynamips node instance + :param nio_settings: information to create the NIO + + :returns: a NIO object + """ + + nio = None + if nio_settings["type"] == "nio_udp": + lport = nio_settings["lport"] + rhost = nio_settings["rhost"] + rport = nio_settings["rport"] + try: + #TODO: handle IPv6 + with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock: + sock.connect((rhost, rport)) + except OSError as e: + raise DynamipsError("Could not create an UDP connection to {}:{}: {}".format(rhost, rport, e)) + # check if we have an allocated NIO UDP auto + nio = node.hypervisor.get_nio_udp_auto(lport) + if not nio: + # otherwise create an NIO UDP + nio = NIOUDP(node.hypervisor, lport, rhost, rport) + else: + nio.connect(rhost, rport) + elif nio_settings["type"] == "nio_generic_ethernet": + ethernet_device = nio_settings["ethernet_device"] + if sys.platform.startswith("win"): + # replace the interface name by the GUID on Windows + interfaces = get_windows_interfaces() + npf_interface = None + for interface in interfaces: + if interface["name"] == ethernet_device: + npf_interface = interface["id"] + if not npf_interface: + raise DynamipsError("Could not find interface {} on this host".format(ethernet_device)) + else: + ethernet_device = npf_interface + nio = NIOGenericEthernet(node.hypervisor, ethernet_device) + elif nio_settings["type"] == "nio_linux_ethernet": + if sys.platform.startswith("win"): + raise DynamipsError("This NIO type is not supported on Windows") + ethernet_device = nio_settings["ethernet_device"] + nio = NIOLinuxEthernet(node.hypervisor, ethernet_device) + elif nio_settings["type"] == "nio_tap": + tap_device = nio_settings["tap_device"] + nio = NIOTAP(node.hypervisor, tap_device) + elif nio_settings["type"] == "nio_unix": + local_file = nio_settings["local_file"] + remote_file = nio_settings["remote_file"] + nio = NIOUNIX(node.hypervisor, local_file, remote_file) + elif nio_settings["type"] == "nio_vde": + control_file = nio_settings["control_file"] + local_file = nio_settings["local_file"] + nio = NIOVDE(node.hypervisor, control_file, local_file) + elif nio_settings["type"] == "nio_null": + nio = NIONull(node.hypervisor) + return nio -# class Dynamips(IModule): -# """ -# Dynamips module. -# -# :param name: module name -# :param args: arguments for the module -# :param kwargs: named arguments for the module -# """ -# -# def stop(self, signum=None): -# """ -# Properly stops the module. -# -# :param signum: signal number (if called by the signal handler) -# """ -# -# if not sys.platform.startswith("win32"): -# self._callback.stop() -# -# # automatically save configs for all router instances -# for router_id in self._routers: -# router = self._routers[router_id] -# try: -# router.save_configs() -# except DynamipsError: -# continue -# -# # stop all Dynamips hypervisors -# if self._hypervisor_manager: -# self._hypervisor_manager.stop_all_hypervisors() -# -# self.delete_dynamips_files() -# IModule.stop(self, signum) # this will stop the I/O loop -# -# def get_device_instance(self, device_id, instance_dict): -# """ -# Returns a device instance. -# -# :param device_id: device identifier -# :param instance_dict: dictionary containing the instances -# -# :returns: device instance -# """ -# -# if device_id not in instance_dict: -# log.debug("device ID {} doesn't exist".format(device_id), exc_info=1) -# self.send_custom_error("Device ID {} doesn't exist".format(device_id)) -# return None -# return instance_dict[device_id] -# -# def delete_dynamips_files(self): -# """ -# Deletes useless Dynamips files from the working directory -# """ -# -# files = glob.glob(os.path.join(self._working_dir, "dynamips", "*.ghost")) -# files += glob.glob(os.path.join(self._working_dir, "dynamips", "*_lock")) -# files += glob.glob(os.path.join(self._working_dir, "dynamips", "ilt_*")) -# files += glob.glob(os.path.join(self._working_dir, "dynamips", "c[0-9][0-9][0-9][0-9]_*_rommon_vars")) -# files += glob.glob(os.path.join(self._working_dir, "dynamips", "c[0-9][0-9][0-9][0-9]_*_ssa")) -# for file in files: -# try: -# log.debug("deleting file {}".format(file)) -# os.remove(file) -# except OSError as e: -# log.warn("could not delete file {}: {}".format(file, e)) -# continue -# -# @IModule.route("dynamips.reset") -# def reset(self, request=None): -# """ -# Resets the module (JSON-RPC notification). -# -# :param request: JSON request (not used) -# """ -# -# # automatically save configs for all router instances -# for router_id in self._routers: -# router = self._routers[router_id] -# try: -# router.save_configs() -# except DynamipsError: -# continue -# -# # stop all Dynamips hypervisors -# if self._hypervisor_manager: -# self._hypervisor_manager.stop_all_hypervisors() -# -# # resets the instance counters -# Router.reset() -# EthernetSwitch.reset() -# Hub.reset() -# FrameRelaySwitch.reset() -# ATMSwitch.reset() -# NIO_UDP.reset() -# NIO_UDP_auto.reset() -# NIO_UNIX.reset() -# NIO_VDE.reset() -# NIO_TAP.reset() -# NIO_GenericEthernet.reset() -# NIO_LinuxEthernet.reset() -# NIO_FIFO.reset() -# NIO_Mcast.reset() -# NIO_Null.reset() -# -# self._routers.clear() -# self._ethernet_switches.clear() -# self._frame_relay_switches.clear() -# self._atm_switches.clear() -# -# self.delete_dynamips_files() -# -# self._hypervisor_manager = None -# self._working_dir = self._projects_dir -# log.info("dynamips module has been reset") -# -# def start_hypervisor_manager(self): -# """ -# Starts the hypervisor manager. -# """ -# -# # check if Dynamips path exists -# if not os.path.isfile(self._dynamips): -# raise DynamipsError("Dynamips executable {} doesn't exist".format(self._dynamips)) -# -# # check if Dynamips is executable -# if not os.access(self._dynamips, os.X_OK): -# raise DynamipsError("Dynamips {} is not executable".format(self._dynamips)) -# -# workdir = os.path.join(self._working_dir, "dynamips") -# try: -# os.makedirs(workdir) -# except FileExistsError: -# pass -# except OSError as e: -# raise DynamipsError("Could not create working directory {}".format(e)) -# -# # check if the working directory is writable -# if not os.access(workdir, os.W_OK): -# raise DynamipsError("Cannot write to working directory {}".format(workdir)) -# -# log.info("starting the hypervisor manager with Dynamips working directory set to '{}'".format(workdir)) -# self._hypervisor_manager = HypervisorManager(self._dynamips, workdir, self._host, self._console_host) -# -# for name, value in self._hypervisor_manager_settings.items(): -# if hasattr(self._hypervisor_manager, name) and getattr(self._hypervisor_manager, name) != value: -# setattr(self._hypervisor_manager, name, value) -# -# @IModule.route("dynamips.settings") -# def settings(self, request): -# """ -# Set or update settings. -# -# Optional request parameters: -# - path (path to the Dynamips executable) -# - working_dir (path to a working directory) -# - project_name -# -# :param request: JSON request -# """ -# -# if request is None: -# self.send_param_error() -# return -# -# log.debug("received request {}".format(request)) -# -# #TODO: JSON schema validation -# if not self._hypervisor_manager: -# -# if "path" in request: -# self._dynamips = request.pop("path") -# -# if "working_dir" in request: -# self._working_dir = request.pop("working_dir") -# log.info("this server is local") -# else: -# self._working_dir = os.path.join(self._projects_dir, request["project_name"]) -# log.info("this server is remote with working directory path to {}".format(self._working_dir)) -# -# self._hypervisor_manager_settings = request -# -# else: -# if "project_name" in request: -# # for remote server -# new_working_dir = os.path.join(self._projects_dir, request["project_name"]) -# -# if self._projects_dir != self._working_dir != new_working_dir: -# -# # trick to avoid file locks by Dynamips on Windows -# if sys.platform.startswith("win"): -# self._hypervisor_manager.working_dir = tempfile.gettempdir() -# -# if not os.path.isdir(new_working_dir): -# try: -# self.delete_dynamips_files() -# shutil.move(self._working_dir, new_working_dir) -# except OSError as e: -# log.error("could not move working directory from {} to {}: {}".format(self._working_dir, -# new_working_dir, -# e)) -# return -# -# elif "working_dir" in request: -# # for local server -# new_working_dir = request.pop("working_dir") -# -# try: -# self._hypervisor_manager.working_dir = new_working_dir -# except DynamipsError as e: -# log.error("could not change working directory: {}".format(e)) -# return -# -# self._working_dir = new_working_dir -# -# # apply settings to the hypervisor manager -# for name, value in request.items(): -# if hasattr(self._hypervisor_manager, name) and getattr(self._hypervisor_manager, name) != value: -# setattr(self._hypervisor_manager, name, value) -# -# @IModule.route("dynamips.echo") -# def echo(self, request): -# """ -# Echo end point for testing purposes. -# -# :param request: JSON request -# """ -# -# if request is None: -# self.send_param_error() -# else: -# log.debug("received request {}".format(request)) -# self.send_response(request) -# -# def create_nio(self, node, request): -# """ -# Creates a new NIO. -# -# :param node: node requesting the NIO -# :param request: the original request with the -# necessary information to create the NIO -# -# :returns: a NIO object -# """ -# -# nio = None -# if request["nio"]["type"] == "nio_udp": -# lport = request["nio"]["lport"] -# rhost = request["nio"]["rhost"] -# rport = request["nio"]["rport"] -# try: -# #TODO: handle IPv6 -# with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock: -# sock.connect((rhost, rport)) -# except OSError as e: -# raise DynamipsError("Could not create an UDP connection to {}:{}: {}".format(rhost, rport, e)) -# # check if we have an allocated NIO UDP auto -# nio = node.hypervisor.get_nio_udp_auto(lport) -# if not nio: -# # otherwise create an NIO UDP -# nio = NIO_UDP(node.hypervisor, lport, rhost, rport) -# else: -# nio.connect(rhost, rport) -# elif request["nio"]["type"] == "nio_generic_ethernet": -# ethernet_device = request["nio"]["ethernet_device"] -# if sys.platform.startswith("win"): -# # replace the interface name by the GUID on Windows -# interfaces = get_windows_interfaces() -# npf_interface = None -# for interface in interfaces: -# if interface["name"] == ethernet_device: -# npf_interface = interface["id"] -# if not npf_interface: -# raise DynamipsError("Could not find interface {} on this host".format(ethernet_device)) -# else: -# ethernet_device = npf_interface -# nio = NIO_GenericEthernet(node.hypervisor, ethernet_device) -# elif request["nio"]["type"] == "nio_linux_ethernet": -# if sys.platform.startswith("win"): -# raise DynamipsError("This NIO type is not supported on Windows") -# ethernet_device = request["nio"]["ethernet_device"] -# nio = NIO_LinuxEthernet(node.hypervisor, ethernet_device) -# elif request["nio"]["type"] == "nio_tap": -# tap_device = request["nio"]["tap_device"] -# nio = NIO_TAP(node.hypervisor, tap_device) -# elif request["nio"]["type"] == "nio_unix": -# local_file = request["nio"]["local_file"] -# remote_file = request["nio"]["remote_file"] -# nio = NIO_UNIX(node.hypervisor, local_file, remote_file) -# elif request["nio"]["type"] == "nio_vde": -# control_file = request["nio"]["control_file"] -# local_file = request["nio"]["local_file"] -# nio = NIO_VDE(node.hypervisor, control_file, local_file) -# elif request["nio"]["type"] == "nio_null": -# nio = NIO_Null(node.hypervisor) -# return nio -# -# def allocate_udp_port(self, node): -# """ -# Allocates a UDP port in order to create an UDP NIO. -# -# :param node: the node that needs to allocate an UDP port -# -# :returns: dictionary with the allocated host/port info -# """ -# -# port = node.hypervisor.allocate_udp_port() -# host = node.hypervisor.host -# -# log.info("{} [id={}] has allocated UDP port {} with host {}".format(node.name, -# node.id, -# port, -# host)) -# response = {"lport": port} -# return response -# # def set_ghost_ios(self, router): # """ # Manages Ghost IOS support. diff --git a/gns3server/modules/dynamips/dynamips_hypervisor.py b/gns3server/modules/dynamips/dynamips_hypervisor.py index 954d6d4b..9a1fb6f4 100644 --- a/gns3server/modules/dynamips/dynamips_hypervisor.py +++ b/gns3server/modules/dynamips/dynamips_hypervisor.py @@ -26,7 +26,7 @@ import logging import asyncio from .dynamips_error import DynamipsError -from .nios.nio_udp_auto import NIO_UDP_auto +from .nios.nio_udp_auto import NIOUDPAuto log = logging.getLogger(__name__) @@ -415,7 +415,7 @@ class DynamipsHypervisor: """ # use Dynamips's NIO UDP auto back-end. - nio = NIO_UDP_auto(self, self._host, self._udp_start_port_range, self._udp_end_port_range) + nio = NIOUDPAuto(self, self._host, self._udp_start_port_range, self._udp_end_port_range) self._nio_udp_auto_instances[nio.lport] = nio allocated_port = nio.lport return allocated_port diff --git a/gns3server/modules/dynamips/dynamips_vm.py b/gns3server/modules/dynamips/dynamips_vm.py index 3beed541..b73b1dbf 100644 --- a/gns3server/modules/dynamips/dynamips_vm.py +++ b/gns3server/modules/dynamips/dynamips_vm.py @@ -42,9 +42,9 @@ class DynamipsVM: Factory to create an Router object based on the correct platform. """ - def __new__(cls, name, vm_id, project, manager, platform, **kwargs): + def __new__(cls, name, vm_id, project, manager, dynamips_id, platform, **kwargs): if platform not in PLATFORMS: raise DynamipsError("Unknown router platform: {}".format(platform)) - return PLATFORMS[platform](name, vm_id, project, manager, **kwargs) + return PLATFORMS[platform](name, vm_id, project, manager, dynamips_id, **kwargs) diff --git a/gns3server/modules/dynamips/nios/nio_fifo.py b/gns3server/modules/dynamips/nios/nio_fifo.py index 768d87af..60c9aa3f 100644 --- a/gns3server/modules/dynamips/nios/nio_fifo.py +++ b/gns3server/modules/dynamips/nios/nio_fifo.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_FIFO(NIO): +class NIOFIFO(NIO): """ Dynamips FIFO NIO. @@ -40,8 +40,8 @@ class NIO_FIFO(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_FIFO._instance_count - NIO_FIFO._instance_count += 1 + self._id = NIOFIFO._instance_count + NIOFIFO._instance_count += 1 self._name = 'nio_fifo' + str(self._id) @classmethod diff --git a/gns3server/modules/dynamips/nios/nio_generic_ethernet.py b/gns3server/modules/dynamips/nios/nio_generic_ethernet.py index 4428e2bf..fc0ab006 100644 --- a/gns3server/modules/dynamips/nios/nio_generic_ethernet.py +++ b/gns3server/modules/dynamips/nios/nio_generic_ethernet.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_GenericEthernet(NIO): +class NIOGenericEthernet(NIO): """ Dynamips generic Ethernet NIO. @@ -41,8 +41,8 @@ class NIO_GenericEthernet(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_GenericEthernet._instance_count - NIO_GenericEthernet._instance_count += 1 + self._id = NIOGenericEthernet._instance_count + NIOGenericEthernet._instance_count += 1 self._name = 'nio_gen_eth' + str(self._id) self._ethernet_device = ethernet_device diff --git a/gns3server/modules/dynamips/nios/nio_linux_ethernet.py b/gns3server/modules/dynamips/nios/nio_linux_ethernet.py index 28bfbe89..513bc12a 100644 --- a/gns3server/modules/dynamips/nios/nio_linux_ethernet.py +++ b/gns3server/modules/dynamips/nios/nio_linux_ethernet.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_LinuxEthernet(NIO): +class NIOLinuxEthernet(NIO): """ Dynamips Linux Ethernet NIO. @@ -41,8 +41,8 @@ class NIO_LinuxEthernet(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_LinuxEthernet._instance_count - NIO_LinuxEthernet._instance_count += 1 + self._id = NIOLinuxEthernet._instance_count + NIOLinuxEthernet._instance_count += 1 self._name = 'nio_linux_eth' + str(self._id) self._ethernet_device = ethernet_device diff --git a/gns3server/modules/dynamips/nios/nio_mcast.py b/gns3server/modules/dynamips/nios/nio_mcast.py index fe32135b..cf03aaab 100644 --- a/gns3server/modules/dynamips/nios/nio_mcast.py +++ b/gns3server/modules/dynamips/nios/nio_mcast.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_Mcast(NIO): +class NIOMcast(NIO): """ Dynamips Linux Ethernet NIO. @@ -42,8 +42,8 @@ class NIO_Mcast(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_Mcast._instance_count - NIO_Mcast._instance_count += 1 + self._id = NIOMcast._instance_count + NIOMcast._instance_count += 1 self._name = 'nio_mcast' + str(self._id) self._group = group self._port = port diff --git a/gns3server/modules/dynamips/nios/nio_null.py b/gns3server/modules/dynamips/nios/nio_null.py index b8113e59..df666fb8 100644 --- a/gns3server/modules/dynamips/nios/nio_null.py +++ b/gns3server/modules/dynamips/nios/nio_null.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_Null(NIO): +class NIONull(NIO): """ Dynamips NULL NIO. @@ -40,8 +40,8 @@ class NIO_Null(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_Null._instance_count - NIO_Null._instance_count += 1 + self._id = NIONull._instance_count + NIONull._instance_count += 1 self._name = 'nio_null' + str(self._id) @classmethod diff --git a/gns3server/modules/dynamips/nios/nio_tap.py b/gns3server/modules/dynamips/nios/nio_tap.py index efe47a9e..926e9b0b 100644 --- a/gns3server/modules/dynamips/nios/nio_tap.py +++ b/gns3server/modules/dynamips/nios/nio_tap.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_TAP(NIO): +class NIOTAP(NIO): """ Dynamips TAP NIO. @@ -41,8 +41,8 @@ class NIO_TAP(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_TAP._instance_count - NIO_TAP._instance_count += 1 + self._id = NIOTAP._instance_count + NIOTAP._instance_count += 1 self._name = 'nio_tap' + str(self._id) self._tap_device = tap_device diff --git a/gns3server/modules/dynamips/nios/nio_udp.py b/gns3server/modules/dynamips/nios/nio_udp.py index 0bae8bbf..999fdf9a 100644 --- a/gns3server/modules/dynamips/nios/nio_udp.py +++ b/gns3server/modules/dynamips/nios/nio_udp.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_UDP(NIO): +class NIOUDP(NIO): """ Dynamips UDP NIO. @@ -43,8 +43,8 @@ class NIO_UDP(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_UDP._instance_count - NIO_UDP._instance_count += 1 + self._id = NIOUDP._instance_count + NIOUDP._instance_count += 1 self._name = 'nio_udp' + str(self._id) self._lport = lport self._rhost = rhost diff --git a/gns3server/modules/dynamips/nios/nio_udp_auto.py b/gns3server/modules/dynamips/nios/nio_udp_auto.py index eb42e580..1caaaea0 100644 --- a/gns3server/modules/dynamips/nios/nio_udp_auto.py +++ b/gns3server/modules/dynamips/nios/nio_udp_auto.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_UDP_auto(NIO): +class NIOUDPAuto(NIO): """ Dynamips auto UDP NIO. @@ -43,8 +43,8 @@ class NIO_UDP_auto(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_UDP_auto._instance_count - NIO_UDP_auto._instance_count += 1 + self._id = NIOUDPAuto._instance_count + NIOUDPAuto._instance_count += 1 self._name = 'nio_udp_auto' + str(self._id) self._laddr = laddr diff --git a/gns3server/modules/dynamips/nios/nio_unix.py b/gns3server/modules/dynamips/nios/nio_unix.py index af913f88..234fd65b 100644 --- a/gns3server/modules/dynamips/nios/nio_unix.py +++ b/gns3server/modules/dynamips/nios/nio_unix.py @@ -26,7 +26,7 @@ import logging log = logging.getLogger(__name__) -class NIO_UNIX(NIO): +class NIOUNIX(NIO): """ Dynamips UNIX NIO. @@ -42,8 +42,8 @@ class NIO_UNIX(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_UNIX._instance_count - NIO_UNIX._instance_count += 1 + self._id = NIOUNIX._instance_count + NIOUNIX._instance_count += 1 self._name = 'nio_unix' + str(self._id) self._local_file = local_file self._remote_file = remote_file diff --git a/gns3server/modules/dynamips/nios/nio_vde.py b/gns3server/modules/dynamips/nios/nio_vde.py index 79af96d7..6b00cf2f 100644 --- a/gns3server/modules/dynamips/nios/nio_vde.py +++ b/gns3server/modules/dynamips/nios/nio_vde.py @@ -25,7 +25,7 @@ import logging log = logging.getLogger(__name__) -class NIO_VDE(NIO): +class NIOVDE(NIO): """ Dynamips VDE NIO. @@ -41,8 +41,8 @@ class NIO_VDE(NIO): NIO.__init__(self, hypervisor) # create an unique ID - self._id = NIO_VDE._instance_count - NIO_VDE._instance_count += 1 + self._id = NIOVDE._instance_count + NIOVDE._instance_count += 1 self._name = 'nio_vde' + str(self._id) self._control_file = control_file self._local_file = local_file diff --git a/gns3server/modules/dynamips/nodes/c1700.py b/gns3server/modules/dynamips/nodes/c1700.py index 6bfe30e0..faee65cd 100644 --- a/gns3server/modules/dynamips/nodes/c1700.py +++ b/gns3server/modules/dynamips/nodes/c1700.py @@ -37,13 +37,14 @@ class C1700(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips :param chassis: chassis for this router: 1720, 1721, 1750, 1751 or 1760 (default = 1720). 1710 is not supported. """ - def __init__(self, name, vm_id, project, manager, chassis="1720"): - Router.__init__(self, name, vm_id, project, manager, platform="c1700") + def __init__(self, name, vm_id, project, manager, dynamips_id, chassis="1720"): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c1700") # Set default values for this platform self._ram = 128 diff --git a/gns3server/modules/dynamips/nodes/c2600.py b/gns3server/modules/dynamips/nodes/c2600.py index 6f53ad14..e3972253 100644 --- a/gns3server/modules/dynamips/nodes/c2600.py +++ b/gns3server/modules/dynamips/nodes/c2600.py @@ -39,6 +39,7 @@ class C2600(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips :param chassis: chassis for this router: 2610, 2611, 2620, 2621, 2610XM, 2611XM 2620XM, 2621XM, 2650XM or 2651XM (default = 2610). @@ -57,8 +58,8 @@ class C2600(Router): "2650XM": C2600_MB_1FE, "2651XM": C2600_MB_2FE} - def __init__(self, name, vm_id, project, manager, chassis="2610"): - Router.__init__(self, name, vm_id, project, manager, platform="c2600") + def __init__(self, name, vm_id, project, manager, dynamips_id, chassis="2610"): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c2600") # Set default values for this platform self._ram = 128 diff --git a/gns3server/modules/dynamips/nodes/c2691.py b/gns3server/modules/dynamips/nodes/c2691.py index 60489405..273b33de 100644 --- a/gns3server/modules/dynamips/nodes/c2691.py +++ b/gns3server/modules/dynamips/nodes/c2691.py @@ -36,10 +36,11 @@ class C2691(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips """ - def __init__(self, name, vm_id, project, manager): - Router.__init__(self, name, vm_id, project, manager, platform="c2691") + def __init__(self, name, vm_id, project, manager, dynamips_id): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c2691") # Set default values for this platform self._ram = 192 diff --git a/gns3server/modules/dynamips/nodes/c3600.py b/gns3server/modules/dynamips/nodes/c3600.py index 42e2ea79..fe11b48d 100644 --- a/gns3server/modules/dynamips/nodes/c3600.py +++ b/gns3server/modules/dynamips/nodes/c3600.py @@ -36,12 +36,13 @@ class C3600(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips :param chassis: chassis for this router: 3620, 3640 or 3660 (default = 3640). """ - def __init__(self, name, vm_id, project, manager, chassis="3640"): - Router.__init__(self, name, vm_id, project, manager, platform="c3600") + def __init__(self, name, vm_id, project, manager, dynamips_id, chassis="3640"): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c3600") # Set default values for this platform self._ram = 192 diff --git a/gns3server/modules/dynamips/nodes/c3725.py b/gns3server/modules/dynamips/nodes/c3725.py index cad3716f..6cb4213c 100644 --- a/gns3server/modules/dynamips/nodes/c3725.py +++ b/gns3server/modules/dynamips/nodes/c3725.py @@ -36,10 +36,11 @@ class C3725(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips """ - def __init__(self, name, vm_id, project, manager): - Router.__init__(self, name, vm_id, project, manager, platform="c3725") + def __init__(self, name, vm_id, project, manager, dynamips_id): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c3725") # Set default values for this platform self._ram = 128 diff --git a/gns3server/modules/dynamips/nodes/c3745.py b/gns3server/modules/dynamips/nodes/c3745.py index 5ef49d11..28acfe99 100644 --- a/gns3server/modules/dynamips/nodes/c3745.py +++ b/gns3server/modules/dynamips/nodes/c3745.py @@ -36,10 +36,11 @@ class C3745(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips """ - def __init__(self, name, vm_id, project, manager): - Router.__init__(self, name, vm_id, project, manager, platform="c3745") + def __init__(self, name, vm_id, project, manager, dynamips_id): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c3745") # Set default values for this platform self._ram = 256 diff --git a/gns3server/modules/dynamips/nodes/c7200.py b/gns3server/modules/dynamips/nodes/c7200.py index 777907bc..4d69e825 100644 --- a/gns3server/modules/dynamips/nodes/c7200.py +++ b/gns3server/modules/dynamips/nodes/c7200.py @@ -39,11 +39,12 @@ class C7200(Router): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips :param npe: Default NPE """ - def __init__(self, name, vm_id, project, manager, npe="npe-400"): - Router.__init__(self, name, vm_id, project, manager, platform="c7200") + def __init__(self, name, vm_id, project, manager, dynamips_id, npe="npe-400"): + Router.__init__(self, name, vm_id, project, manager, dynamips_id, platform="c7200") # Set default values for this platform self._ram = 512 diff --git a/gns3server/modules/dynamips/nodes/router.py b/gns3server/modules/dynamips/nodes/router.py index b3324185..a2ca1f4b 100644 --- a/gns3server/modules/dynamips/nodes/router.py +++ b/gns3server/modules/dynamips/nodes/router.py @@ -42,20 +42,22 @@ class Router(BaseVM): :param vm_id: Router instance identifier :param project: Project instance :param manager: Parent VM Manager + :param dynamips_id: ID to use with Dynamips :param platform: Platform of this router """ - _instances = [] + _dynamips_ids = {} _status = {0: "inactive", 1: "shutting down", 2: "running", 3: "suspended"} - def __init__(self, name, vm_id, project, manager, platform="c7200", ghost_flag=False): + def __init__(self, name, vm_id, project, manager, dynamips_id=None, platform="c7200", ghost_flag=False): super().__init__(name, vm_id, project, manager) self._hypervisor = None + self._dynamips_id = dynamips_id self._closed = False self._name = name self._platform = platform @@ -81,12 +83,26 @@ class Router(BaseVM): self._confreg = "0x2102" self._console = None self._aux = None - self._mac_addr = None + self._mac_addr = "" self._system_id = "FTX0945W0MY" # processor board ID in IOS self._slots = [] self._ghost_flag = ghost_flag if not ghost_flag: + self._dynamips_ids.setdefault(project.id, list()) + if not dynamips_id: + # find a Dynamips ID if none is provided (0 < id <= 4096) + self._dynamips_id = 0 + for identifier in range(1, 4097): + if identifier not in self._dynamips_ids[project.id]: + self._dynamips_id = identifier + break + if self._dynamips_id == 0: + raise DynamipsError("Maximum number of Dynamips instances reached") + else: + if dynamips_id in self._dynamips_ids[project.id]: + raise DynamipsError("Dynamips identifier {} is already used by another router".format(dynamips_id)) + self._dynamips_ids[project.id].append(self._dynamips_id) if self._console is not None: self._console = self._manager.port_manager.reserve_console_port(self._console) @@ -97,12 +113,17 @@ class Router(BaseVM): self._aux = self._manager.port_manager.reserve_console_port(self._aux) else: self._aux = self._manager.port_manager.get_free_console_port() + else: + log.info("creating a new ghost IOS file") + self._dynamips_id = 0 + self._name = "Ghost" def __json__(self): router_info = {"name": self.name, "vm_id": self.id, "project_id": self.project.id, + "dynamips_id": self._dynamips_id, "platform": self._platform, "image": self._image, "startup_config": self._startup_config, @@ -138,14 +159,21 @@ class Router(BaseVM): return router_info + @classmethod + def reset(cls): + """ + Resets the instance count and the allocated instances list. + """ + + cls._dynamips_ids.clear() + @asyncio.coroutine def create(self): self._hypervisor = yield from self.manager.start_new_hypervisor() - print("{} {} {}".format(self._name, self._id, self._platform)) yield from self._hypervisor.send('vm create "{name}" {id} {platform}'.format(name=self._name, - id=1, #FIXME: instance ID! + id=self._dynamips_id, platform=self._platform)) if not self._ghost_flag: @@ -270,6 +298,9 @@ class Router(BaseVM): self._manager.port_manager.release_console_port(self._aux) self._aux = None + if self._dynamips_id in self._dynamips_ids[self._project.id]: + self._dynamips_ids[self._project.id].remove(self._dynamips_id) + self._closed = True @asyncio.coroutine diff --git a/gns3server/schemas/dynamips.py b/gns3server/schemas/dynamips.py index a707d0cc..d9fe845d 100644 --- a/gns3server/schemas/dynamips.py +++ b/gns3server/schemas/dynamips.py @@ -16,41 +16,102 @@ # along with this program. If not, see . -ROUTER_CREATE_SCHEMA = { +VM_CREATE_SCHEMA = { "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Request validation to create a new Dynamips router instance", + "description": "Request validation to create a new Dynamips VM instance", "type": "object", "properties": { + "vm_id": { + "description": "Dynamips VM instance identifier", + "oneOf": [ + {"type": "string", + "minLength": 36, + "maxLength": 36, + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"}, + {"type": "integer"} # for legacy projects + ] + }, + "dynamips_id": { + "description": "ID to use with Dynamips", + "type": "integer" + }, "name": { - "description": "Router name", + "description": "Dynamips VM instance name", "type": "string", "minLength": 1, }, - "router_id": { - "description": "VM/router instance ID", - "type": "integer" - }, "platform": { - "description": "router platform", + "description": "platform", "type": "string", "minLength": 1, "pattern": "^c[0-9]{4}$" }, - "chassis": { - "description": "router chassis model", + "image": { + "description": "path to the IOS image", "type": "string", "minLength": 1, - "pattern": "^[0-9]{4}(XM)?$" }, - "image": { - "description": "path to the IOS image file", + "startup_config": { + "description": "path to the IOS startup configuration file", "type": "string", - "minLength": 1 + "minLength": 1, + }, + "private_config": { + "description": "path to the IOS private configuration file", + "type": "string", + "minLength": 1, }, "ram": { "description": "amount of RAM in MB", "type": "integer" }, + "nvram": { + "description": "amount of NVRAM in KB", + "type": "integer" + }, + "mmap": { + "description": "MMAP feature", + "type": "boolean" + }, + "sparsemem": { + "description": "sparse memory feature", + "type": "boolean" + }, + "clock_divisor": { + "description": "clock divisor", + "type": "integer" + }, + "idlepc": { + "description": "Idle-PC value", + "type": "string", + "pattern": "^(0x[0-9a-fA-F]+)?$" + }, + "idlemax": { + "description": "idlemax value", + "type": "integer", + }, + "idlesleep": { + "description": "idlesleep value", + "type": "integer", + }, + "exec_area": { + "description": "exec area value", + "type": "integer", + }, + "disk0": { + "description": "disk0 size in MB", + "type": "integer" + }, + "disk1": { + "description": "disk1 size in MB", + "type": "integer" + }, + "confreg": { + "description": "configuration register", + "type": "string", + "minLength": 1, + "pattern": "^0x[0-9a-fA-F]{4}$" + }, "console": { "description": "console TCP port", "type": "integer", @@ -69,25 +130,352 @@ ROUTER_CREATE_SCHEMA = { "minLength": 1, "pattern": "^([0-9a-fA-F]{4}\\.){2}[0-9a-fA-F]{4}$" }, - "cloud_path": { - "description": "Path to the image in the cloud object store", + "system_id": { + "description": "system ID", "type": "string", - } + "minLength": 1, + }, + "slot0": { + "description": "Network module slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot1": { + "description": "Network module slot 1", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot2": { + "description": "Network module slot 2", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot3": { + "description": "Network module slot 3", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot4": { + "description": "Network module slot 4", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot5": { + "description": "Network module slot 5", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot6": { + "description": "Network module slot 6", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic0": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic1": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic2": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "startup_config_base64": { + "description": "startup configuration base64 encoded", + "type": "string" + }, + "private_config_base64": { + "description": "private configuration base64 encoded", + "type": "string" + }, + # C7200 properties + "npe": { + "description": "NPE model", + "enum": ["npe-100", + "npe-150", + "npe-175", + "npe-200", + "npe-225", + "npe-300", + "npe-400", + "npe-g2"] + }, + "midplane": { + "description": "Midplane model", + "enum": ["std", "vxr"] + }, + "sensors": { + "description": "Temperature sensors", + "type": "array" + }, + "power_supplies": { + "description": "Power supplies status", + "type": "array" + }, + # I/O memory property for all platforms but C7200 + "iomem": { + "description": "I/O memory percentage", + "type": "integer", + "minimum": 0, + "maximum": 100 + }, }, "additionalProperties": False, "required": ["name", "platform", "image", "ram"] } -ROUTER_OBJECT_SCHEMA = { +VM_UPDATE_SCHEMA = { "$schema": "http://json-schema.org/draft-04/schema#", - "description": "Dynamips router instance", + "description": "Request validation to update a Dynamips VM instance", "type": "object", "properties": { "name": { - "description": "Dynamips router instance name", + "description": "Dynamips VM instance name", "type": "string", "minLength": 1, }, + "platform": { + "description": "platform", + "type": "string", + "minLength": 1, + "pattern": "^c[0-9]{4}$" + }, + "image": { + "description": "path to the IOS image", + "type": "string", + "minLength": 1, + }, + "startup_config": { + "description": "path to the IOS startup configuration file", + "type": "string", + "minLength": 1, + }, + "private_config": { + "description": "path to the IOS private configuration file", + "type": "string", + "minLength": 1, + }, + "ram": { + "description": "amount of RAM in MB", + "type": "integer" + }, + "nvram": { + "description": "amount of NVRAM in KB", + "type": "integer" + }, + "mmap": { + "description": "MMAP feature", + "type": "boolean" + }, + "sparsemem": { + "description": "sparse memory feature", + "type": "boolean" + }, + "clock_divisor": { + "description": "clock divisor", + "type": "integer" + }, + "idlepc": { + "description": "Idle-PC value", + "type": "string", + "pattern": "^(0x[0-9a-fA-F]+)?$" + }, + "idlemax": { + "description": "idlemax value", + "type": "integer", + }, + "idlesleep": { + "description": "idlesleep value", + "type": "integer", + }, + "exec_area": { + "description": "exec area value", + "type": "integer", + }, + "disk0": { + "description": "disk0 size in MB", + "type": "integer" + }, + "disk1": { + "description": "disk1 size in MB", + "type": "integer" + }, + "confreg": { + "description": "configuration register", + "type": "string", + "minLength": 1, + "pattern": "^0x[0-9a-fA-F]{4}$" + }, + "console": { + "description": "console TCP port", + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + "aux": { + "description": "auxiliary console TCP port", + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + "mac_addr": { + "description": "base MAC address", + "type": "string", + "minLength": 1, + "pattern": "^([0-9a-fA-F]{4}\\.){2}[0-9a-fA-F]{4}$" + }, + "system_id": { + "description": "system ID", + "type": "string", + "minLength": 1, + }, + "slot0": { + "description": "Network module slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot1": { + "description": "Network module slot 1", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot2": { + "description": "Network module slot 2", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot3": { + "description": "Network module slot 3", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot4": { + "description": "Network module slot 4", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot5": { + "description": "Network module slot 5", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot6": { + "description": "Network module slot 6", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic0": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic1": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic2": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "startup_config_base64": { + "description": "startup configuration base64 encoded", + "type": "string" + }, + "private_config_base64": { + "description": "private configuration base64 encoded", + "type": "string" + }, + # C7200 properties + "npe": { + "description": "NPE model", + "enum": ["npe-100", + "npe-150", + "npe-175", + "npe-200", + "npe-225", + "npe-300", + "npe-400", + "npe-g2"] + }, + "midplane": { + "description": "Midplane model", + "enum": ["std", "vxr"] + }, + "sensors": { + "description": "Temperature sensors", + "type": "array" + }, + "power_supplies": { + "description": "Power supplies status", + "type": "array" + }, + # I/O memory property for all platforms but C7200 + "iomem": { + "description": "I/O memory percentage", + "type": "integer", + "minimum": 0, + "maximum": 100 + }, + }, + "additionalProperties": False, +} + +VM_OBJECT_SCHEMA = { + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "Dynamips VM instance", + "type": "object", + "properties": { + "dynamips_id": { + "description": "ID to use with Dynamips", + "type": "integer" + }, "vm_id": { "description": "Dynamips router instance UUID", "type": "string", @@ -102,7 +490,214 @@ ROUTER_OBJECT_SCHEMA = { "maxLength": 36, "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" }, + "name": { + "description": "Dynamips VM instance name", + "type": "string", + "minLength": 1, + }, + "platform": { + "description": "platform", + "type": "string", + "minLength": 1, + "pattern": "^c[0-9]{4}$" + }, + "image": { + "description": "path to the IOS image", + "type": "string", + "minLength": 1, + }, + "startup_config": { + "description": "path to the IOS startup configuration file", + "type": "string", + }, + "private_config": { + "description": "path to the IOS private configuration file", + "type": "string", + }, + "ram": { + "description": "amount of RAM in MB", + "type": "integer" + }, + "nvram": { + "description": "amount of NVRAM in KB", + "type": "integer" + }, + "mmap": { + "description": "MMAP feature", + "type": "boolean" + }, + "sparsemem": { + "description": "sparse memory feature", + "type": "boolean" + }, + "clock_divisor": { + "description": "clock divisor", + "type": "integer" + }, + "idlepc": { + "description": "Idle-PC value", + "type": "string", + "pattern": "^(0x[0-9a-fA-F]+)?$" + }, + "idlemax": { + "description": "idlemax value", + "type": "integer", + }, + "idlesleep": { + "description": "idlesleep value", + "type": "integer", + }, + "exec_area": { + "description": "exec area value", + "type": "integer", + }, + "disk0": { + "description": "disk0 size in MB", + "type": "integer" + }, + "disk1": { + "description": "disk1 size in MB", + "type": "integer" + }, + "confreg": { + "description": "configuration register", + "type": "string", + "minLength": 1, + "pattern": "^0x[0-9a-fA-F]{4}$" + }, + "console": { + "description": "console TCP port", + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + "aux": { + "description": "auxiliary console TCP port", + "type": "integer", + "minimum": 1, + "maximum": 65535 + }, + "mac_addr": { + "description": "base MAC address", + "type": "string", + #"minLength": 1, + #"pattern": "^([0-9a-fA-F]{4}\\.){2}[0-9a-fA-F]{4}$" + }, + "system_id": { + "description": "system ID", + "type": "string", + "minLength": 1, + }, + "slot0": { + "description": "Network module slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot1": { + "description": "Network module slot 1", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot2": { + "description": "Network module slot 2", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot3": { + "description": "Network module slot 3", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot4": { + "description": "Network module slot 4", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot5": { + "description": "Network module slot 5", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "slot6": { + "description": "Network module slot 6", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic0": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic1": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "wic2": { + "description": "Network module WIC slot 0", + "oneOf": [ + {"type": "string"}, + {"type": "null"} + ] + }, + "startup_config_base64": { + "description": "startup configuration base64 encoded", + "type": "string" + }, + "private_config_base64": { + "description": "private configuration base64 encoded", + "type": "string" + }, + # C7200 properties + "npe": { + "description": "NPE model", + "enum": ["npe-100", + "npe-150", + "npe-175", + "npe-200", + "npe-225", + "npe-300", + "npe-400", + "npe-g2"] + }, + "midplane": { + "description": "Midplane model", + "enum": ["std", "vxr"] + }, + "sensors": { + "description": "Temperature sensors", + "type": "array" + }, + "power_supplies": { + "description": "Power supplies status", + "type": "array" + }, + # I/O memory property for all platforms but C7200 + "iomem": { + "description": "I/O memory percentage", + "type": "integer", + "minimum": 0, + "maximum": 100 + }, }, "additionalProperties": False, - "required": ["name", "vm_id", "project_id"] + "required": ["name", "vm_id", "project_id", "dynamips_id"] } diff --git a/gns3server/utils/interfaces.py b/gns3server/utils/interfaces.py index 701bce48..27774eb3 100644 --- a/gns3server/utils/interfaces.py +++ b/gns3server/utils/interfaces.py @@ -49,7 +49,7 @@ def _get_windows_interfaces_from_registry(): return interfaces -def _get_windows_interfaces(): +def get_windows_interfaces(): """ Get Windows interfaces. @@ -94,7 +94,7 @@ def interfaces(): return else: try: - results = _get_windows_interfaces() + results = get_windows_interfaces() except ImportError: message = "pywin32 module is not installed, please install it on the server to get the available interface names" raise aiohttp.web.HTTPInternalServerError(text=message) diff --git a/old_tests/dynamips/.gitignore b/old_tests/dynamips/.gitignore deleted file mode 100644 index 39ffa4b5..00000000 --- a/old_tests/dynamips/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/c3725.image diff --git a/old_tests/dynamips/conftest.py b/old_tests/dynamips/conftest.py deleted file mode 100644 index ff70cd58..00000000 --- a/old_tests/dynamips/conftest.py +++ /dev/null @@ -1,29 +0,0 @@ -from gns3server.modules.dynamips import HypervisorManager -import pytest -import os - - -@pytest.fixture(scope="module") -def hypervisor(request): - - dynamips_path = '/usr/bin/dynamips' - print("\nStarting Dynamips Hypervisor: {}".format(dynamips_path)) - manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1") - hypervisor = manager.start_new_hypervisor() - - def stop(): - print("\nStopping Dynamips Hypervisor") - manager.stop_all_hypervisors() - - request.addfinalizer(stop) - return hypervisor - - -@pytest.fixture(scope="session") -def image(request): - - cwd = os.path.dirname(os.path.abspath(__file__)) - image_path = os.path.join(cwd, "c3725.image") - if not os.path.isfile(image_path): - return None - return image_path diff --git a/old_tests/dynamips/dynamips.stable b/old_tests/dynamips/dynamips.stable deleted file mode 100755 index 0af011ac3287c7dc01ae68b8ac3dee01542f04ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 961958 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

yLJkWw5=hkAIg<07^3C`GR7Og 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

yh(!EbonhEoio09Tl}S*Gr+w@9x>rE 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 diff --git a/old_tests/dynamips/test_atm_bridge.py b/old_tests/dynamips/test_atm_bridge.py deleted file mode 100644 index aed46f70..00000000 --- a/old_tests/dynamips/test_atm_bridge.py +++ /dev/null @@ -1,62 +0,0 @@ -from gns3server.modules.dynamips import ATMBridge -from gns3server.modules.dynamips import NIO_Null -from gns3server.modules.dynamips import DynamipsError -import pytest - - -@pytest.fixture -def atm_bridge(request, hypervisor): - - atm_bridge = ATMBridge(hypervisor, "ATM bridge") - request.addfinalizer(atm_bridge.delete) - return atm_bridge - - -def test_atm_bridge_exists(atm_bridge): - - assert atm_bridge.list() - - -def test_rename_atm_bridge(atm_bridge): - - atm_bridge.name = "new ATM bridge" - assert atm_bridge.name == "new ATM bridge" - - -def test_add_remove_nio(atm_bridge): - - nio = NIO_Null(atm_bridge.hypervisor) - atm_bridge.add_nio(nio, 0) # add NIO on port 0 - assert atm_bridge.nios - atm_bridge.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_add_nio_already_allocated_port(atm_bridge): - - nio = NIO_Null(atm_bridge.hypervisor) - atm_bridge.add_nio(nio, 0) # add NIO on port 0 - with pytest.raises(DynamipsError): - atm_bridge.add_nio(nio, 0) - nio.delete() - - -def test_remove_nio_non_allocated_port(atm_bridge): - - with pytest.raises(DynamipsError): - atm_bridge.remove_nio(0) # remove NIO from port 0 - - -def test_bridge(atm_bridge): - - nio1 = NIO_Null(atm_bridge.hypervisor) - atm_bridge.add_nio(nio1, 0) # add NIO on port 0 (Ethernet NIO) - nio2 = NIO_Null(atm_bridge.hypervisor) - atm_bridge.add_nio(nio1, 1) # add NIO on port 1 (ATM NIO) - atm_bridge.configure(0, 1, 10, 10) # configure Ethernet port 0 -> ATM port 1 with VC 10:10 - assert atm_bridge.mapping[0] == (1, 10, 10) - atm_bridge.unconfigure() - atm_bridge.remove_nio(0) - atm_bridge.remove_nio(1) - nio1.delete() - nio2.delete() diff --git a/old_tests/dynamips/test_atm_switch.py b/old_tests/dynamips/test_atm_switch.py deleted file mode 100644 index 6617b199..00000000 --- a/old_tests/dynamips/test_atm_switch.py +++ /dev/null @@ -1,83 +0,0 @@ -from gns3server.modules.dynamips import ATMSwitch -from gns3server.modules.dynamips import NIO_Null -from gns3server.modules.dynamips import DynamipsError -import pytest - - -@pytest.fixture -def atmsw(request, hypervisor): - - atmsw = ATMSwitch(hypervisor, "ATM switch") - request.addfinalizer(atmsw.delete) - return atmsw - - -def test_atmsw_exists(atmsw): - - assert atmsw.list() - - -def test_rename_atmsw(atmsw): - - atmsw.name = "new ATM switch" - assert atmsw.name == "new ATM switch" - - -def test_add_remove_nio(atmsw): - - nio = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio, 0) # add NIO on port 0 - assert atmsw.nios - atmsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_add_nio_already_allocated_port(atmsw): - - nio = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio, 0) # add NIO on port 0 - with pytest.raises(DynamipsError): - atmsw.add_nio(nio, 0) - nio.delete() - - -def test_remove_nio_non_allocated_port(atmsw): - - with pytest.raises(DynamipsError): - atmsw.remove_nio(0) # remove NIO from port 0 - - -def test_vp(atmsw): - - nio1 = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio1, 0) # add NIO on port 0 - nio2 = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio1, 1) # add NIO on port 1 - atmsw.map_vp(0, 10, 1, 20) # port 0 VP 10 to port 1 VP 20 (unidirectional) - atmsw.map_vp(1, 20, 0, 10) # port 1 VP 20 to port 0 VP 10 (unidirectional) - assert atmsw.mapping[(0, 10)] == (1, 20) - assert atmsw.mapping[(1, 20)] == (0, 10) - atmsw.unmap_vp(0, 10, 1, 20) # port 0 VP 10 to port 1 VP 20 (unidirectional) - atmsw.unmap_vp(1, 20, 0, 10) # port 1 VP 20 to port 0 VP 10 (unidirectional) - atmsw.remove_nio(0) - atmsw.remove_nio(1) - nio1.delete() - nio2.delete() - - -def test_pvc(atmsw): - - nio1 = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio1, 0) # add NIO on port 0 - nio2 = NIO_Null(atmsw.hypervisor) - atmsw.add_nio(nio1, 1) # add NIO on port 1 - atmsw.map_pvc(0, 10, 10, 1, 20, 20) # port 0 VC 10:10 to port 1 VP 20:20 (unidirectional) - atmsw.map_pvc(1, 20, 20, 0, 10, 10) # port 1 VC 20:20 to port 0 VC 10:10 (unidirectional) - assert atmsw.mapping[(0, 10, 10)] == (1, 20, 20) - assert atmsw.mapping[(1, 20, 20)] == (0, 10, 10) - atmsw.unmap_pvc(0, 10, 10, 1, 20, 20) # port 0 VC 10:10 to port 1 VP 20:20 (unidirectional) - atmsw.unmap_pvc(1, 20, 20, 0, 10, 10) # port 1 VC 20:20 to port 0 VC 10:10 (unidirectional) - atmsw.remove_nio(0) - atmsw.remove_nio(1) - nio1.delete() - nio2.delete() diff --git a/old_tests/dynamips/test_bridge.py b/old_tests/dynamips/test_bridge.py deleted file mode 100644 index ec415dbf..00000000 --- a/old_tests/dynamips/test_bridge.py +++ /dev/null @@ -1,31 +0,0 @@ -from gns3server.modules.dynamips import Bridge -from gns3server.modules.dynamips import NIO_Null -import pytest - - -@pytest.fixture -def bridge(request, hypervisor): - - bridge = Bridge(hypervisor, "bridge") - request.addfinalizer(bridge.delete) - return bridge - - -def test_bridge_exists(bridge): - - assert bridge.list() - - -def test_rename_bridge(bridge): - - bridge.name = "new bridge" - assert bridge.name == "new bridge" - - -def test_add_remove_nio(bridge): - - nio = NIO_Null(bridge.hypervisor) - bridge.add_nio(nio) - assert bridge.nios - bridge.remove_nio(nio) - nio.delete() diff --git a/old_tests/dynamips/test_c1700.py b/old_tests/dynamips/test_c1700.py deleted file mode 100644 index 222d5a8f..00000000 --- a/old_tests/dynamips/test_c1700.py +++ /dev/null @@ -1,167 +0,0 @@ -from gns3server.modules.dynamips import C1700 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import WIC_2T -from gns3server.modules.dynamips import WIC_1ENET -from gns3server.modules.dynamips import NIO_Null -import pytest - - -@pytest.fixture -def router_c1700(request, hypervisor): - - router = C1700(hypervisor, "c1700 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c1700): - - assert router_c1700.platform == "c1700" - assert router_c1700.list() - - -def test_chassis_1721(hypervisor): - - router = C1700(hypervisor, "1721 chassis", chassis="1721") - assert router.chassis == "1721" - assert str(router.slots[0]) == "C1700-MB-1FE" - router.delete() - - -def test_chassis_change_to_1721(router_c1700): - - assert router_c1700.chassis == "1720" # default chassis - router_c1700.chassis = "1721" - assert router_c1700.chassis == "1721" - - -def test_chassis_1750(hypervisor): - - router = C1700(hypervisor, "1750 chassis", chassis="1750") - assert router.chassis == "1750" - assert str(router.slots[0]) == "C1700-MB-1FE" - router.delete() - - -def test_chassis_change_to_1750(router_c1700): - - assert router_c1700.chassis == "1720" # default chassis - router_c1700.chassis = "1750" - assert router_c1700.chassis == "1750" - - -def test_chassis_1751(hypervisor): - - router = C1700(hypervisor, "1751 chassis", chassis="1751") - assert router.chassis == "1751" - assert str(router.slots[0]) == "C1700-MB-1FE" - router.delete() - - -def test_chassis_change_to_1751(router_c1700): - - assert router_c1700.chassis == "1720" # default chassis - router_c1700.chassis = "1751" - assert router_c1700.chassis == "1751" - - -def test_chassis_1760(hypervisor): - - router = C1700(hypervisor, "1760 chassis", chassis="1760") - assert router.chassis == "1760" - assert str(router.slots[0]) == "C1700-MB-1FE" - router.delete() - - -def test_chassis_change_to_1760(router_c1700): - - assert router_c1700.chassis == "1720" # default chassis - router_c1700.chassis = "1760" - assert router_c1700.chassis == "1760" - - -def test_iomem(router_c1700): - - assert router_c1700.iomem == 15 # default value - router_c1700.iomem = 20 - assert router_c1700.iomem == 20 - - -def test_mac_addr(router_c1700): - - assert router_c1700.mac_addr is not None - router_c1700.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c1700.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c1700): - - with pytest.raises(DynamipsError): - router_c1700.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c1700): - - assert router_c1700.system_id == "FTX0945W0MY" # default value - router_c1700.system_id = "FTX0945W0MO" - assert router_c1700.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c1700): - - router_c1700.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_install_remove_wic(router_c1700): - - wic = WIC_2T() - router_c1700.install_wic(0, wic) # install in WIC slot 0 - assert router_c1700.slots[0].wics[0] - wic = WIC_1ENET() - router_c1700.install_wic(1, wic) # install in WIC slot 1 - assert router_c1700.slots[0].wics[1] - router_c1700.uninstall_wic(0) # uninstall WIC from slot 0 - assert not router_c1700.slots[0].wics[0] - - -def test_install_wic_into_wrong_slot(router_c1700): - - wic = WIC_2T() - with pytest.raises(DynamipsError): - router_c1700.install_wic(2, wic) # install in WIC slot 2 - - -def test_install_wic_into_already_occupied_slot(router_c1700): - - wic = WIC_2T() - router_c1700.install_wic(0, wic) # install in WIC slot 0 - wic = WIC_1ENET() - with pytest.raises(DynamipsError): - router_c1700.install_wic(0, wic) # install in WIC slot 0 - - -def test_wic_add_remove_nio_binding(router_c1700): - - nio = NIO_Null(router_c1700.hypervisor) - wic = WIC_2T() - router_c1700.install_wic(0, wic) # install WIC in slot 0 - router_c1700.slot_add_nio_binding(0, 17, nio) # slot 0/17 (slot 0, wic 0, port 1) - assert router_c1700.slots[0].ports[17] == nio - assert router_c1700.get_slot_nio_bindings(slot_id=0) - router_c1700.slot_remove_nio_binding(0, 17) # slot 0/17 (slot 0, wic 0, port 1) - assert not router_c1700.get_slot_nio_bindings(slot_id=0) - assert not router_c1700.slots[0].ports[17] == nio - nio.delete() - - -def test_wic_add_remove_nio_binding_for_chassis_1760(hypervisor): - - router = C1700(hypervisor, "1760 chassis", chassis="1760") - nio = NIO_Null(router.hypervisor) - wic = WIC_2T() - router.install_wic(1, wic) # install WIC in slot 1 - router.slot_add_nio_binding(0, 32, nio) # slot 0/17 (slot 0, wic 1, port 0) - router.slot_remove_nio_binding(0, 32) - assert not router.get_slot_nio_bindings(slot_id=0) - nio.delete() - router.delete() diff --git a/old_tests/dynamips/test_c2600.py b/old_tests/dynamips/test_c2600.py deleted file mode 100644 index 53bfb0db..00000000 --- a/old_tests/dynamips/test_c2600.py +++ /dev/null @@ -1,216 +0,0 @@ -from gns3server.modules.dynamips import C2600 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import NM_1E -from gns3server.modules.dynamips import NM_4E -from gns3server.modules.dynamips import NM_1FE_TX -from gns3server.modules.dynamips import NM_16ESW -import pytest - - -@pytest.fixture -def router_c2600(request, hypervisor): - - router = C2600(hypervisor, "c2600 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c2600): - - assert router_c2600.platform == "c2600" - assert router_c2600.list() - - -def test_chassis_2611(hypervisor): - - router = C2600(hypervisor, "2611 chassis", chassis="2611") - assert router.chassis == "2611" - assert isinstance(router.slots[0], router.integrated_adapters["2611"]) - router.delete() - - -def test_chassis_change_to_2611(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2611" - assert router_c2600.chassis == "2611" - - -def test_chassis_2620(hypervisor): - - router = C2600(hypervisor, "2620 chassis", chassis="2620") - assert router.chassis == "2620" - assert isinstance(router.slots[0], router.integrated_adapters["2620"]) - router.delete() - - -def test_chassis_change_to_2620(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2620" - assert router_c2600.chassis == "2620" - - -def test_chassis_2621(hypervisor): - - router = C2600(hypervisor, "2621 chassis", chassis="2621") - assert router.chassis == "2621" - assert isinstance(router.slots[0], router.integrated_adapters["2621"]) - router.delete() - - -def test_chassis_change_to_2621(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2621" - assert router_c2600.chassis == "2621" - - -def test_chassis_2610XM(hypervisor): - - router = C2600(hypervisor, "2610XM chassis", chassis="2610XM") - assert router.chassis == "2610XM" - assert isinstance(router.slots[0], router.integrated_adapters["2610XM"]) - router.delete() - - -def test_chassis_change_to_2610XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2610XM" - assert router_c2600.chassis == "2610XM" - - -def test_chassis_2611XM(hypervisor): - - router = C2600(hypervisor, "2611XM chassis", chassis="2611XM") - assert router.chassis == "2611XM" - assert isinstance(router.slots[0], router.integrated_adapters["2611XM"]) - router.delete() - - -def test_chassis_change_to_2611XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2611XM" - assert router_c2600.chassis == "2611XM" - - -def test_chassis_2620XM(hypervisor): - - router = C2600(hypervisor, "2620XM chassis", chassis="2620XM") - assert router.chassis == "2620XM" - assert isinstance(router.slots[0], router.integrated_adapters["2620XM"]) - router.delete() - - -def test_chassis_change_to_2620XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2620XM" - assert router_c2600.chassis == "2620XM" - - -def test_chassis_2621XM(hypervisor): - - router = C2600(hypervisor, "2621XM chassis", chassis="2621XM") - assert router.chassis == "2621XM" - assert isinstance(router.slots[0], router.integrated_adapters["2621XM"]) - router.delete() - - -def test_chassis_change_to_2621XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2621XM" - assert router_c2600.chassis == "2621XM" - - -def test_chassis_2650XM(hypervisor): - - router = C2600(hypervisor, "2650XM chassis", chassis="2650XM") - assert router.chassis == "2650XM" - assert isinstance(router.slots[0], router.integrated_adapters["2650XM"]) - router.delete() - - -def test_chassis_change_to_2650XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2650XM" - assert router_c2600.chassis == "2650XM" - - -def test_chassis_2651XM(hypervisor): - - router = C2600(hypervisor, "2651XM chassis", chassis="2651XM") - assert router.chassis == "2651XM" - assert isinstance(router.slots[0], router.integrated_adapters["2651XM"]) - router.delete() - - -def test_chassis_change_to_2651XM(router_c2600): - - assert router_c2600.chassis == "2610" # default chassis - router_c2600.chassis = "2651XM" - assert router_c2600.chassis == "2651XM" - - -def test_iomem(router_c2600): - - assert router_c2600.iomem == 15 # default value - router_c2600.iomem = 20 - assert router_c2600.iomem == 20 - - -def test_mac_addr(router_c2600): - - assert router_c2600.mac_addr is not None - router_c2600.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c2600.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c2600): - - with pytest.raises(DynamipsError): - router_c2600.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c2600): - - assert router_c2600.system_id == "FTX0945W0MY" # default value - router_c2600.system_id = "FTX0945W0MO" - assert router_c2600.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c2600): - - router_c2600.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_NM_1E(router_c2600): - - adapter = NM_1E() - router_c2600.slot_add_binding(1, adapter) - assert router_c2600.slots[1] == adapter - - -def test_slot_add_NM_4E(router_c2600): - - adapter = NM_4E() - router_c2600.slot_add_binding(1, adapter) - assert router_c2600.slots[1] == adapter - - -def test_slot_add_NM_1FE_TX(router_c2600): - - adapter = NM_1FE_TX() - router_c2600.slot_add_binding(1, adapter) - assert router_c2600.slots[1] == adapter - - -def test_slot_add_NM_16ESW(router_c2600): - - adapter = NM_16ESW() - router_c2600.slot_add_binding(1, adapter) - assert router_c2600.slots[1] == adapter diff --git a/old_tests/dynamips/test_c2691.py b/old_tests/dynamips/test_c2691.py deleted file mode 100644 index 282b183b..00000000 --- a/old_tests/dynamips/test_c2691.py +++ /dev/null @@ -1,73 +0,0 @@ -from gns3server.modules.dynamips import C2691 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import NM_1FE_TX -from gns3server.modules.dynamips import NM_4T -from gns3server.modules.dynamips import NM_16ESW -import pytest - - -@pytest.fixture -def router_c2691(request, hypervisor): - - router = C2691(hypervisor, "c2691 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c2691): - - assert router_c2691.platform == "c2691" - assert router_c2691.list() - - -def test_iomem(router_c2691): - - assert router_c2691.iomem == 5 # default value - router_c2691.iomem = 10 - assert router_c2691.iomem == 10 - - -def test_mac_addr(router_c2691): - - assert router_c2691.mac_addr is not None - router_c2691.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c2691.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c2691): - - with pytest.raises(DynamipsError): - router_c2691.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c2691): - - assert router_c2691.system_id == "FTX0945W0MY" # default value - router_c2691.system_id = "FTX0945W0MO" - assert router_c2691.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c2691): - - router_c2691.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_NM_1FE_TX(router_c2691): - - adapter = NM_1FE_TX() - router_c2691.slot_add_binding(1, adapter) - assert router_c2691.slots[1] == adapter - - -def test_slot_add_NM_4T(router_c2691): - - adapter = NM_4T() - router_c2691.slot_add_binding(1, adapter) - assert router_c2691.slots[1] == adapter - - -def test_slot_add_NM_16ESW(router_c2691): - - adapter = NM_16ESW() - router_c2691.slot_add_binding(1, adapter) - assert router_c2691.slots[1] == adapter diff --git a/old_tests/dynamips/test_c3600.py b/old_tests/dynamips/test_c3600.py deleted file mode 100644 index cd05add3..00000000 --- a/old_tests/dynamips/test_c3600.py +++ /dev/null @@ -1,118 +0,0 @@ -from gns3server.modules.dynamips import C3600 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import NM_1E -from gns3server.modules.dynamips import NM_4E -from gns3server.modules.dynamips import NM_1FE_TX -from gns3server.modules.dynamips import NM_16ESW -from gns3server.modules.dynamips import NM_4T -import pytest - - -@pytest.fixture -def router_c3600(request, hypervisor): - - router = C3600(hypervisor, "c3600 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exist(router_c3600): - - assert router_c3600.platform == "c3600" - assert router_c3600.list() - - -def test_chassis_3620(hypervisor): - - router = C3600(hypervisor, "3620 chassis", chassis="3620") - assert router.chassis == "3620" - router.delete() - - -def test_chassis_change_to_3620(router_c3600): - - assert router_c3600.chassis == "3640" # default chassis - router_c3600.chassis = "3620" - assert router_c3600.chassis == "3620" - - -def test_chassis_3660(hypervisor): - - router = C3600(hypervisor, "3660 chassis", chassis="3660") - assert router.chassis == "3660" - assert str(router.slots[0]) == "Leopard-2FE" - router.delete() - - -def test_chassis_change_to_3660(router_c3600): - - assert router_c3600.chassis == "3640" # default chassis - router_c3600.chassis = "3660" - assert router_c3600.chassis == "3660" - - -def test_iomem(router_c3600): - - assert router_c3600.iomem == 5 # default value - router_c3600.iomem = 10 - assert router_c3600.iomem == 10 - - -def test_mac_addr(router_c3600): - - assert router_c3600.mac_addr is not None - router_c3600.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c3600.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c3600): - - with pytest.raises(DynamipsError): - router_c3600.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c3600): - - assert router_c3600.system_id == "FTX0945W0MY" # default value - router_c3600.system_id = "FTX0945W0MO" - assert router_c3600.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c3600): - - router_c3600.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_NM_1E(router_c3600): - - adapter = NM_1E() - router_c3600.slot_add_binding(1, adapter) - assert router_c3600.slots[1] == adapter - - -def test_slot_add_NM_4E(router_c3600): - - adapter = NM_4E() - router_c3600.slot_add_binding(1, adapter) - assert router_c3600.slots[1] == adapter - - -def test_slot_add_NM_1FE_TX(router_c3600): - - adapter = NM_1FE_TX() - router_c3600.slot_add_binding(1, adapter) - assert router_c3600.slots[1] == adapter - - -def test_slot_add_NM_16ESW(router_c3600): - - adapter = NM_16ESW() - router_c3600.slot_add_binding(1, adapter) - assert router_c3600.slots[1] == adapter - - -def test_slot_add_NM_4T(router_c3600): - - adapter = NM_4T() - router_c3600.slot_add_binding(1, adapter) - assert router_c3600.slots[1] == adapter diff --git a/old_tests/dynamips/test_c3725.py b/old_tests/dynamips/test_c3725.py deleted file mode 100644 index bc3ffcbf..00000000 --- a/old_tests/dynamips/test_c3725.py +++ /dev/null @@ -1,73 +0,0 @@ -from gns3server.modules.dynamips import C3725 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import NM_1FE_TX -from gns3server.modules.dynamips import NM_4T -from gns3server.modules.dynamips import NM_16ESW -import pytest - - -@pytest.fixture -def router_c3725(request, hypervisor): - - router = C3725(hypervisor, "c3725 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c3725): - - assert router_c3725.platform == "c3725" - assert router_c3725.list() - - -def test_iomem(router_c3725): - - assert router_c3725.iomem == 5 # default value - router_c3725.iomem = 10 - assert router_c3725.iomem == 10 - - -def test_mac_addr(router_c3725): - - assert router_c3725.mac_addr is not None - router_c3725.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c3725.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c3725): - - with pytest.raises(DynamipsError): - router_c3725.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c3725): - - assert router_c3725.system_id == "FTX0945W0MY" # default value - router_c3725.system_id = "FTX0945W0MO" - assert router_c3725.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c3725): - - router_c3725.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_NM_1FE_TX(router_c3725): - - adapter = NM_1FE_TX() - router_c3725.slot_add_binding(1, adapter) - assert router_c3725.slots[1] == adapter - - -def test_slot_add_NM_4T(router_c3725): - - adapter = NM_4T() - router_c3725.slot_add_binding(1, adapter) - assert router_c3725.slots[1] == adapter - - -def test_slot_add_NM_16ESW(router_c3725): - - adapter = NM_16ESW() - router_c3725.slot_add_binding(1, adapter) - assert router_c3725.slots[1] == adapter diff --git a/old_tests/dynamips/test_c3745.py b/old_tests/dynamips/test_c3745.py deleted file mode 100644 index 13d88583..00000000 --- a/old_tests/dynamips/test_c3745.py +++ /dev/null @@ -1,73 +0,0 @@ -from gns3server.modules.dynamips import C3745 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import NM_1FE_TX -from gns3server.modules.dynamips import NM_4T -from gns3server.modules.dynamips import NM_16ESW -import pytest - - -@pytest.fixture -def router_c3745(request, hypervisor): - - router = C3745(hypervisor, "c3745 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c3745): - - assert router_c3745.platform == "c3745" - assert router_c3745.list() - - -def test_iomem(router_c3745): - - assert router_c3745.iomem == 5 # default value - router_c3745.iomem = 10 - assert router_c3745.iomem == 10 - - -def test_mac_addr(router_c3745): - - assert router_c3745.mac_addr is not None - router_c3745.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c3745.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c3745): - - with pytest.raises(DynamipsError): - router_c3745.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c3745): - - assert router_c3745.system_id == "FTX0945W0MY" # default value - router_c3745.system_id = "FTX0945W0MO" - assert router_c3745.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c3745): - - router_c3745.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_NM_1FE_TX(router_c3745): - - adapter = NM_1FE_TX() - router_c3745.slot_add_binding(1, adapter) - assert router_c3745.slots[1] == adapter - - -def test_slot_add_NM_4T(router_c3745): - - adapter = NM_4T() - router_c3745.slot_add_binding(1, adapter) - assert router_c3745.slots[1] == adapter - - -def test_slot_add_NM_16ESW(router_c3745): - - adapter = NM_16ESW() - router_c3745.slot_add_binding(1, adapter) - assert router_c3745.slots[1] == adapter diff --git a/old_tests/dynamips/test_c7200.py b/old_tests/dynamips/test_c7200.py deleted file mode 100644 index 48f1eb00..00000000 --- a/old_tests/dynamips/test_c7200.py +++ /dev/null @@ -1,188 +0,0 @@ -from gns3server.modules.dynamips import C7200 -from gns3server.modules.dynamips import DynamipsError -from gns3server.modules.dynamips import PA_2FE_TX -from gns3server.modules.dynamips import PA_4E -from gns3server.modules.dynamips import PA_4T -from gns3server.modules.dynamips import PA_8E -from gns3server.modules.dynamips import PA_8T -from gns3server.modules.dynamips import PA_A1 -from gns3server.modules.dynamips import PA_FE_TX -from gns3server.modules.dynamips import PA_GE -from gns3server.modules.dynamips import PA_POS_OC3 -from gns3server.modules.dynamips import NIO_Null -import pytest - - -@pytest.fixture -def router_c7200(request, hypervisor): - - router = C7200(hypervisor, "c7200 router") - request.addfinalizer(router.delete) - return router - - -def test_router_exists(router_c7200): - - assert router_c7200.platform == "c7200" - assert router_c7200.list() - - -def test_npe(router_c7200): - - assert router_c7200.npe == "npe-400" # default value - router_c7200.npe = "npe-200" - assert router_c7200.npe == "npe-200" - - -def test_midplane(router_c7200): - - assert router_c7200.midplane == "vxr" # default value - router_c7200.midplane = "std" - assert router_c7200.midplane == "std" - - -def test_sensors(router_c7200): - - assert router_c7200.sensors == [22, 22, 22, 22] # default values (everything at 22C) - router_c7200.sensors = [25, 25, 25, 25] - assert router_c7200.sensors == [25, 25, 25, 25] - - -def test_power_supplies(router_c7200): - - assert router_c7200.power_supplies == [1, 1] # default values (1 = powered on) - router_c7200.power_supplies = [0, 0] - assert router_c7200.power_supplies == [0, 0] - - -def test_mac_addr(router_c7200): - - assert router_c7200.mac_addr is not None - router_c7200.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router_c7200.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router_c7200): - - with pytest.raises(DynamipsError): - router_c7200.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router_c7200): - - assert router_c7200.system_id == "FTX0945W0MY" # default value - router_c7200.system_id = "FTX0945W0MO" - assert router_c7200.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router_c7200): - - router_c7200.get_hardware_info() # FIXME: Dynamips doesn't return anything - - -def test_slot_add_PA_2FE_TX(router_c7200): - - adapter = PA_2FE_TX() - router_c7200.slot_add_binding(1, adapter) - assert router_c7200.slots[1] == adapter - - -def test_slot_add_PA_4E(router_c7200): - - adapter = PA_4E() - router_c7200.slot_add_binding(2, adapter) - assert router_c7200.slots[2] == adapter - - -def test_slot_add_PA_4T(router_c7200): - - adapter = PA_4T() - router_c7200.slot_add_binding(3, adapter) - assert router_c7200.slots[3] == adapter - - -def test_slot_add_PA_8E(router_c7200): - - adapter = PA_8E() - router_c7200.slot_add_binding(4, adapter) - assert router_c7200.slots[4] == adapter - - -def test_slot_add_PA_8T(router_c7200): - - adapter = PA_8T() - router_c7200.slot_add_binding(5, adapter) - assert router_c7200.slots[5] == adapter - - -def test_slot_add_PA_A1(router_c7200): - - adapter = PA_A1() - router_c7200.slot_add_binding(1, adapter) - assert router_c7200.slots[1] == adapter - - -def test_slot_add_PA_FE_TX(router_c7200): - - adapter = PA_FE_TX() - router_c7200.slot_add_binding(2, adapter) - assert router_c7200.slots[2] == adapter - - -def test_slot_add_PA_GE(router_c7200): - - adapter = PA_GE() - router_c7200.slot_add_binding(3, adapter) - assert router_c7200.slots[3] == adapter - - -def test_slot_add_PA_POS_OC3(router_c7200): - - adapter = PA_POS_OC3() - router_c7200.slot_add_binding(4, adapter) - assert router_c7200.slots[4] == adapter - - -def test_slot_add_into_already_occupied_slot(router_c7200): - - adapter = PA_FE_TX() - with pytest.raises(DynamipsError): - router_c7200.slot_add_binding(0, adapter) - - -def test_slot_add_into_wrong_slot(router_c7200): - - adapter = PA_FE_TX() - with pytest.raises(DynamipsError): - router_c7200.slot_add_binding(10, adapter) - - -def test_slot_remove_adapter(router_c7200): - - adapter = PA_FE_TX() - router_c7200.slot_add_binding(1, adapter) - router_c7200.slot_remove_binding(1) - assert router_c7200.slots[1] is None - - -def test_slot_add_remove_nio_binding(router_c7200): - - adapter = PA_FE_TX() - router_c7200.slot_add_binding(1, adapter) - nio = NIO_Null(router_c7200.hypervisor) - router_c7200.slot_add_nio_binding(1, 0, nio) # slot 1/0 - assert router_c7200.get_slot_nio_bindings(slot_id=1) - assert router_c7200.slots[1].ports[0] == nio - router_c7200.slot_remove_nio_binding(1, 0) # slot 1/0 - assert not router_c7200.get_slot_nio_bindings(slot_id=0) - nio.delete() - - -def test_slot_add_nio_to_wrong_port(router_c7200): - - adapter = PA_FE_TX() - router_c7200.slot_add_binding(1, adapter) - nio = NIO_Null(router_c7200.hypervisor) - with pytest.raises(DynamipsError): - router_c7200.slot_add_nio_binding(1, 1, nio) # slot 1/1 - nio.delete() diff --git a/old_tests/dynamips/test_ethernet_switch.py b/old_tests/dynamips/test_ethernet_switch.py deleted file mode 100644 index 0f435f38..00000000 --- a/old_tests/dynamips/test_ethernet_switch.py +++ /dev/null @@ -1,87 +0,0 @@ -from gns3server.modules.dynamips import EthernetSwitch -from gns3server.modules.dynamips import NIO_Null -from gns3server.modules.dynamips import DynamipsError -import pytest - - -@pytest.fixture -def ethsw(request, hypervisor): - - ethsw = EthernetSwitch(hypervisor, "Ethernet switch") - request.addfinalizer(ethsw.delete) - return ethsw - - -def test_ethsw_exists(ethsw): - - assert ethsw.list() - - -def test_rename_ethsw(ethsw): - - ethsw.name = "new Ethernet switch" - assert ethsw.name == "new Ethernet switch" - - -def test_add_remove_nio(ethsw): - - nio = NIO_Null(ethsw.hypervisor) - ethsw.add_nio(nio, 0) # add NIO on port 0 - assert ethsw.nios - ethsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_add_nio_already_allocated_port(ethsw): - - nio = NIO_Null(ethsw.hypervisor) - ethsw.add_nio(nio, 0) # add NIO on port 0 - with pytest.raises(DynamipsError): - ethsw.add_nio(nio, 0) - nio.delete() - - -def test_remove_nio_non_allocated_port(ethsw): - - with pytest.raises(DynamipsError): - ethsw.remove_nio(0) # remove NIO from port 0 - - -def test_set_access_port(ethsw): - - nio = NIO_Null(ethsw.hypervisor) - ethsw.add_nio(nio, 0) # add NIO on port 0 - ethsw.set_access_port(0, 10) # set port 0 as access in VLAN 10 - assert ethsw.mapping[0] == ("access", 10) - ethsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_set_dot1q_port(ethsw): - - nio = NIO_Null(ethsw.hypervisor) - ethsw.add_nio(nio, 0) # add NIO on port 0 - ethsw.set_dot1q_port(0, 1) # set port 0 as 802.1Q trunk with native VLAN 1 - assert ethsw.mapping[0] == ("dot1q", 1) - ethsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_set_qinq_port(ethsw): - - nio = NIO_Null(ethsw.hypervisor) - ethsw.add_nio(nio, 0) # add NIO on port 0 - ethsw.set_qinq_port(0, 100) # set port 0 as QinQ trunk with outer VLAN 100 - assert ethsw.mapping[0] == ("qinq", 100) - ethsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_get_mac_addr_table(ethsw): - - assert not ethsw.get_mac_addr_table() # MAC address table should be empty - - -def test_clear_mac_addr_table(ethsw): - - ethsw.clear_mac_addr_table() diff --git a/old_tests/dynamips/test_frame_relay_switch.py b/old_tests/dynamips/test_frame_relay_switch.py deleted file mode 100644 index b6dde5eb..00000000 --- a/old_tests/dynamips/test_frame_relay_switch.py +++ /dev/null @@ -1,65 +0,0 @@ -from gns3server.modules.dynamips import FrameRelaySwitch -from gns3server.modules.dynamips import NIO_Null -from gns3server.modules.dynamips import DynamipsError -import pytest - - -@pytest.fixture -def frsw(request, hypervisor): - - frsw = FrameRelaySwitch(hypervisor, "Frane Relay switch") - request.addfinalizer(frsw.delete) - return frsw - - -def test_frsw_exists(frsw): - - assert frsw.list() - - -def test_rename_frsw(frsw): - - frsw.name = "new Frame Relay switch" - assert frsw.name == "new Frame Relay switch" - - -def test_add_remove_nio(frsw): - - nio = NIO_Null(frsw.hypervisor) - frsw.add_nio(nio, 0) # add NIO on port 0 - assert frsw.nios - frsw.remove_nio(0) # remove NIO from port 0 - nio.delete() - - -def test_add_nio_already_allocated_port(frsw): - - nio = NIO_Null(frsw.hypervisor) - frsw.add_nio(nio, 0) # add NIO on port 0 - with pytest.raises(DynamipsError): - frsw.add_nio(nio, 0) - nio.delete() - - -def test_remove_nio_non_allocated_port(frsw): - - with pytest.raises(DynamipsError): - frsw.remove_nio(0) # remove NIO from port 0 - - -def test_vc(frsw): - - nio1 = NIO_Null(frsw.hypervisor) - frsw.add_nio(nio1, 0) # add NIO on port 0 - nio2 = NIO_Null(frsw.hypervisor) - frsw.add_nio(nio1, 1) # add NIO on port 1 - frsw.map_vc(0, 10, 1, 20) # port 0 DLCI 10 to port 1 DLCI 20 (unidirectional) - frsw.map_vc(1, 20, 0, 10) # port 1 DLCI 20 to port 0 DLCI 10 (unidirectional) - assert frsw.mapping[(0, 10)] == (1, 20) - assert frsw.mapping[(1, 20)] == (0, 10) - frsw.unmap_vc(0, 10, 1, 20) # port 0 DLCI 10 to port 1 DLCI 20 (unidirectional) - frsw.unmap_vc(1, 20, 0, 10) # port 1 DLCI 20 to port 0 DLCI 10 (unidirectional) - frsw.remove_nio(0) - frsw.remove_nio(1) - nio1.delete() - nio2.delete() diff --git a/old_tests/dynamips/test_hub.py b/old_tests/dynamips/test_hub.py deleted file mode 100644 index d490cb11..00000000 --- a/old_tests/dynamips/test_hub.py +++ /dev/null @@ -1,25 +0,0 @@ -from gns3server.modules.dynamips import Hub -from gns3server.modules.dynamips import NIO_Null -import pytest - - -@pytest.fixture -def hub(request, hypervisor): - - hub = Hub(hypervisor, "hub") - request.addfinalizer(hub.delete) - return hub - - -def test_hub_exists(hub): - - assert hub.list() - - -def test_add_remove_nio(hub): - - nio = NIO_Null(hub.hypervisor) - hub.add_nio(nio, 0) # add NIO to port 0 - assert hub.mapping[0] == nio - hub.remove_nio(0) # remove NIO from port 0 - nio.delete() diff --git a/old_tests/dynamips/test_hypervisor.py b/old_tests/dynamips/test_hypervisor.py deleted file mode 100644 index 81a8176e..00000000 --- a/old_tests/dynamips/test_hypervisor.py +++ /dev/null @@ -1,41 +0,0 @@ -from gns3server.modules.dynamips import Hypervisor -import time - - -def test_is_started(hypervisor): - - assert hypervisor.is_running() - - -def test_port(hypervisor): - - assert hypervisor.port == 7200 - - -def test_host(hypervisor): - - assert hypervisor.host == "0.0.0.0" - - -def test_working_dir(hypervisor): - - assert hypervisor.working_dir == "/tmp" - - -def test_path(hypervisor): - - dynamips_path = '/usr/bin/dynamips' - assert hypervisor.path == dynamips_path - - -def test_stdout(): - - # try to launch Dynamips on the same port - # this will fail so that we can read its stdout/stderr - dynamips_path = '/usr/bin/dynamips' - hypervisor = Hypervisor(dynamips_path, "/tmp", "127.0.0.1", 7200) - hypervisor.start() - # give some time for Dynamips to start - time.sleep(0.1) - output = hypervisor.read_stdout() - assert output diff --git a/old_tests/dynamips/test_hypervisor_manager.py b/old_tests/dynamips/test_hypervisor_manager.py deleted file mode 100644 index c7e42734..00000000 --- a/old_tests/dynamips/test_hypervisor_manager.py +++ /dev/null @@ -1,52 +0,0 @@ -from gns3server.modules.dynamips import Router -from gns3server.modules.dynamips import HypervisorManager -import pytest -import os - - -@pytest.fixture(scope="module") -def hypervisor_manager(request): - - dynamips_path = '/usr/bin/dynamips' - print("\nStarting Dynamips Hypervisor: {}".format(dynamips_path)) - manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1") - - # manager.start_new_hypervisor() - - def stop(): - print("\nStopping Dynamips Hypervisor") - manager.stop_all_hypervisors() - - request.addfinalizer(stop) - return manager - - -def test_allocate_hypervisor_for_router(hypervisor_manager): - - hypervisor_manager.allocate_hypervisor_per_device = False - # default of 1GB of RAM per hypervisor instance - assert hypervisor_manager.memory_usage_limit_per_hypervisor == 1024 - hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 512) - assert hypervisor.is_running() - hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 256) - assert hypervisor.memory_load == 768 - hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 512) - assert hypervisor.memory_load == 512 - assert len(hypervisor_manager.hypervisors) == 2 - - -def test_unallocate_hypervisor_for_router(hypervisor_manager): - - assert len(hypervisor_manager.hypervisors) == 2 - hypervisor = hypervisor_manager.hypervisors[0] - assert hypervisor.memory_load == 768 - router = Router(hypervisor, "router", "c3725") # default is 128MB of RAM - hypervisor_manager.unallocate_hypervisor_for_router(router) - assert hypervisor.memory_load == 640 - hypervisor.decrease_memory_load(512) # forces memory load down to 128 - assert hypervisor.memory_load == 128 - router.delete() - hypervisor_manager.unallocate_hypervisor_for_router(router) - # router is deleted and memory load to 0 now, one hypervisor must - # have been shutdown - assert len(hypervisor_manager.hypervisors) == 1 diff --git a/old_tests/dynamips/test_nios.py b/old_tests/dynamips/test_nios.py deleted file mode 100644 index 691dac49..00000000 --- a/old_tests/dynamips/test_nios.py +++ /dev/null @@ -1,139 +0,0 @@ -from gns3server.modules.dynamips import NIO_UDP -from gns3server.modules.dynamips import NIO_UDP_auto -from gns3server.modules.dynamips import NIO_FIFO -from gns3server.modules.dynamips import NIO_Mcast -from gns3server.modules.dynamips import NIO_Null -from gns3server.modules.dynamips import DynamipsError -import pytest - -# TODO: test UNIX, TAP, VDE, generic Ethernet and Linux Ethernet NIOs - - -def test_nio_udp(hypervisor): - - nio1 = NIO_UDP(hypervisor, 10001, "127.0.0.1", 10002) - assert nio1.lport == 10001 - nio2 = NIO_UDP(hypervisor, 10002, "127.0.0.1", 10001) - assert nio2.lport == 10002 - nio1.delete() - nio2.delete() - - -def test_nio_udp_auto(hypervisor): - - nio1 = NIO_UDP_auto(hypervisor, "127.0.0.1", 10001, 10010) - assert nio1.lport == 10001 - nio2 = NIO_UDP_auto(hypervisor, "127.0.0.1", 10001, 10010) - assert nio2.lport == 10002 - nio1.connect("127.0.0.1", nio2.lport) - nio2.connect("127.0.0.1", nio1.lport) - nio1.delete() - nio2.delete() - - -def test_nio_fifo(hypervisor): - - nio1 = NIO_FIFO(hypervisor) - nio2 = NIO_FIFO(hypervisor) - nio1.crossconnect(nio2) - assert nio1.list() - nio1.delete() - nio2.delete() - - -def test_nio_mcast(hypervisor): - - nio1 = NIO_Mcast(hypervisor, "232.0.0.1", 10001) - assert nio1.group == "232.0.0.1" - assert nio1.port == 10001 - nio1.ttl = 254 - assert nio1.ttl == 254 - nio2 = NIO_UDP(hypervisor, 10002, "232.0.0.1", 10001) - nio1.delete() - nio2.delete() - - -def test_nio_null(hypervisor): - - nio = NIO_Null(hypervisor) - assert nio.list() - nio.delete() - - -def test_rename_nio(hypervisor): - - nio = NIO_Null(hypervisor) - assert nio.name.startswith("nio_null") - nio.rename("test") - assert nio.name == "test" - nio.delete() - - -def test_debug_nio(hypervisor): - - nio = NIO_Null(hypervisor) - nio.debug(1) - nio.debug(0) - nio.delete() - - -def test_bind_unbind_filter(hypervisor): - - nio = NIO_Null(hypervisor) - nio.bind_filter("both", "freq_drop") - assert nio.input_filter == ("freq_drop", None) - assert nio.output_filter == ("freq_drop", None) - nio.unbind_filter("both") - nio.bind_filter("in", "capture") - assert nio.input_filter == ("capture", None) - nio.unbind_filter("in") - nio.delete() - - -def test_bind_unknown_filter(hypervisor): - - nio = NIO_Null(hypervisor) - with pytest.raises(DynamipsError): - nio.bind_filter("both", "my_filter") - nio.delete() - - -def test_unbind_with_no_filter_applied(hypervisor): - - nio = NIO_Null(hypervisor) - with pytest.raises(DynamipsError): - nio.unbind_filter("out") - nio.delete() - - -def test_setup_filter(hypervisor): - - nio = NIO_Null(hypervisor) - nio.bind_filter("in", "freq_drop") - nio.setup_filter("in", "5") # drop every 5th packet - assert nio.input_filter == ("freq_drop", "5") - nio.unbind_filter("in") - nio.delete() - - -def test_get_stats(hypervisor): - - nio = NIO_Null(hypervisor) - assert nio.get_stats() == "0 0 0 0" # nothing has been transmitted or received - nio.delete() - - -def test_reset_stats(hypervisor): - - nio = NIO_Null(hypervisor) - nio.reset_stats() - nio.delete() - - -def test_set_bandwidth(hypervisor): - - nio = NIO_Null(hypervisor) - assert nio.bandwidth is None # no constraint by default - nio.set_bandwidth(1000) # bandwidth = 1000 Kb/s - assert nio.bandwidth == 1000 - nio.delete() diff --git a/old_tests/dynamips/test_router.py b/old_tests/dynamips/test_router.py deleted file mode 100644 index 4b0fd3db..00000000 --- a/old_tests/dynamips/test_router.py +++ /dev/null @@ -1,232 +0,0 @@ -from gns3server.modules.dynamips import Router -from gns3server.modules.dynamips import DynamipsError -import sys -import pytest -import tempfile -import base64 - - -@pytest.fixture -def router(request, hypervisor): - - router = Router(hypervisor, "router", platform="c3725") - request.addfinalizer(router.delete) - return router - - -def test_hypervisor_is_started(hypervisor): - - assert hypervisor.is_running() - - -def test_create_and_delete_router(hypervisor): - - router = Router(hypervisor, "test my router") - assert router.id >= 0 - assert router.name == "test my router" - assert router.platform == "c7200" # default platform - assert not router.is_running() - router.delete() - with pytest.raises(DynamipsError): - router.get_status() - - -def test_rename_router(hypervisor): - - router = Router(hypervisor, "my router to rename") - assert router.name == "my router to rename" - router.name = "my_router" - assert router.name == "my_router" - router.delete() - - -def test_image(router): - - # let's pretend this file is an IOS image - with tempfile.NamedTemporaryFile() as ios_image: - router.image = ios_image.name - assert router.image == ios_image.name - - -def test_set_config(router): - - with tempfile.NamedTemporaryFile() as startup_config: - startup_config.write(b"hostname test_config\n") - router.set_config(startup_config.name) - - -def test_push_config(router): - - startup_config = base64.b64encode(b"hostname test_config\n").decode("utf-8") - private_config = base64.b64encode(b"private config\n").decode("utf-8") - router.push_config(startup_config, private_config) - router_startup_config, router_private_config = router.extract_config() - assert startup_config == router_startup_config - assert private_config == router_private_config - - -def test_status(router, image): - # don't test if we have no IOS image - if not image: - return - - assert router.get_status() == "inactive" - router.ram = 256 - router.image = image - router.start() - assert router.is_running() - router.suspend() - assert router.get_status() == "suspended" - router.resume() - assert router.is_running() - router.stop() - assert router.get_status() == "inactive" - - -def test_ram(router): - - assert router.ram == 128 # default ram - router.ram = 256 - assert router.ram == 256 - - -def test_nvram(router): - - assert router.nvram == 128 # default nvram - router.nvram = 256 - assert router.nvram == 256 - - -def test_mmap(router): - - assert router.mmap # default value - router.mmap = False - assert router.mmap == False - - -def test_sparsemem(router): - - assert router.sparsemem # default value - router.sparsemem = False - assert router.sparsemem == False - - -def test_clock_divisor(router): - - assert router.clock_divisor == 8 # default value - router.clock_divisor = 4 - assert router.clock_divisor == 4 - - -def test_idlepc(router): - - assert router.idlepc == "" # no default value - router.idlepc = "0x60c086a8" - assert router.idlepc == "0x60c086a8" - - -def test_idlemax(router): - - assert router.idlemax == 500 # default value - router.idlemax = 1500 - assert router.idlemax == 1500 - - -def test_idlesleep(router): - - assert router.idlesleep == 30 # default value - router.idlesleep = 15 - assert router.idlesleep == 15 - - -def test_exec_area(router): - - if sys.platform.startswith("win"): - assert router.exec_area == 16 # default value - else: - assert router.exec_area == 64 # default value - router.exec_area = 48 - assert router.exec_area == 48 - - -def test_disk0(router): - - assert router.disk0 == 0 # default value - router.disk0 = 16 - assert router.disk0 == 16 - - -def test_disk1(router): - - assert router.disk1 == 0 # default value - router.disk1 = 16 - assert router.disk1 == 16 - - -def test_confreg(router): - - assert router.confreg == "0x2102" # default value - router.confreg = "0x2142" - assert router.confreg == "0x2142" - - -def test_console(router): - - assert router.console == 2001 - new_console_port = router.console + 100 - router.console = new_console_port - assert router.console == new_console_port - - -def test_aux(router): - - assert router.aux == 2501 - new_aux_port = router.aux + 100 - router.aux = new_aux_port - assert router.aux == new_aux_port - - -def test_cpu_info(router): - - router.get_cpu_info() # nothing is returned by the hypervisor, cannot test? - - -def test_cpu_usage(router): - - usage = router.get_cpu_usage() - assert usage == 0 # router isn't running, so usage must be 0 - - -def test_get_slot_bindings(router): - - assert router.get_slot_bindings()[0] == "0/0: GT96100-FE" - - -def test_get_slot_nio_bindings(router): - - router.get_slot_nio_bindings(slot_id=0) - - -def test_mac_addr(router): - - assert router.mac_addr is not None - router.mac_addr = "aa:aa:aa:aa:aa:aa" - assert router.mac_addr == "aa:aa:aa:aa:aa:aa" - - -def test_bogus_mac_addr(router): - - with pytest.raises(DynamipsError): - router.mac_addr = "zz:zz:zz:zz:zz:zz" - - -def test_system_id(router): - - assert router.system_id == "FTX0945W0MY" # default value - router.system_id = "FTX0945W0MO" - assert router.system_id == "FTX0945W0MO" - - -def test_get_hardware_info(router): - - router.get_hardware_info() diff --git a/old_tests/dynamips/test_vmhandler.py b/old_tests/dynamips/test_vmhandler.py deleted file mode 100644 index e639d59f..00000000 --- a/old_tests/dynamips/test_vmhandler.py +++ /dev/null @@ -1,65 +0,0 @@ -from tornado.testing import AsyncHTTPTestCase -#from gns3server.plugins.dynamips import Dynamips -#from gns3server._compat import urlencode -from functools import partial -import tornado.web -import json -import tempfile - - -# class TestVMHandler(AsyncHTTPTestCase): -# -# def setUp(self): -# -# AsyncHTTPTestCase.setUp(self) -# self.post_request = partial(self.http_client.fetch, -# self.get_url("/api/vms/dynamips"), -# self.stop, -# method="POST") -# -# def get_app(self): -# return tornado.web.Application(Dynamips().handlers()) -# -# def test_endpoint(self): -# self.http_client.fetch(self.get_url("/api/vms/dynamips"), self.stop) -# response = self.wait() -# assert response.code == 200 -# -# def test_upload(self): -# -# try: -# from poster.encode import multipart_encode -# except ImportError: -# # poster isn't available for Python 3, let's just ignore the test -# return -# -# file_to_upload = tempfile.NamedTemporaryFile() -# data, headers = multipart_encode({"file1": file_to_upload}) -# body = "" -# for d in data: -# body += d -# -# response = self.fetch('/api/vms/dynamips/storage/upload', -# headers=headers, -# body=body, -# method='POST') -# -# assert response.code == 200 -# -# def get_new_ioloop(self): -# return tornado.ioloop.IOLoop.instance() -# -# def test_create_vm(self): -# -# post_data = {"name": "R1", -# "platform": "c3725", -# "console": 2000, -# "aux": 3000, -# "image": "c3725.bin", -# "ram": 128} -# -# self.post_request(body=json.dumps(post_data)) -# response = self.wait() -# assert(response.headers['Content-Type'].startswith('application/json')) -# expected = {"success": True} -# assert response.body.decode("utf-8") == json.dumps(expected) diff --git a/old_tests/test_jsonrpc.py b/old_tests/test_jsonrpc.py deleted file mode 100644 index eb6920a6..00000000 --- a/old_tests/test_jsonrpc.py +++ /dev/null @@ -1,92 +0,0 @@ -import uuid -from tornado.testing import AsyncTestCase -from tornado.escape import json_encode, json_decode -from ws4py.client.tornadoclient import TornadoWebSocketClient -import gns3server.jsonrpc as jsonrpc - -""" -Tests for JSON-RPC protocol over Websockets -""" - - -class JSONRPC(AsyncTestCase): - - URL = "ws://127.0.0.1:8000/" - - def test_request(self): - - params = {"echo": "test"} - request = jsonrpc.JSONRPCRequest("dynamips.echo", params) - AsyncWSRequest(self.URL, self.io_loop, self.stop, str(request)) - response = self.wait() - json_response = json_decode(response) - assert json_response["jsonrpc"] == 2.0 - assert json_response["id"] == request.id - assert json_response["result"] == params - - def test_request_with_invalid_method(self): - - message = {"echo": "test"} - request = jsonrpc.JSONRPCRequest("dynamips.non_existent", message) - AsyncWSRequest(self.URL, self.io_loop, self.stop, str(request)) - response = self.wait() - json_response = json_decode(response) - assert json_response["error"].get("code") == -32601 - assert json_response["id"] == request.id - - def test_request_with_invalid_version(self): - - request = {"jsonrpc": 1.0, "method": "dynamips.echo", "id": 1} - AsyncWSRequest(self.URL, self.io_loop, self.stop, json_encode(request)) - response = self.wait() - json_response = json_decode(response) - assert json_response["id"] is None - assert json_response["error"].get("code") == -32600 - - def test_request_with_invalid_json(self): - - request = "my non JSON request" - AsyncWSRequest(self.URL, self.io_loop, self.stop, request) - response = self.wait() - json_response = json_decode(response) - assert json_response["id"] is None - assert json_response["error"].get("code") == -32700 - - def test_request_with_invalid_jsonrpc_field(self): - - request = {"jsonrpc": "2.0", "method_bogus": "dynamips.echo", "id": 1} - AsyncWSRequest(self.URL, self.io_loop, self.stop, json_encode(request)) - response = self.wait() - json_response = json_decode(response) - assert json_response["id"] is None - assert json_response["error"].get("code") == -32700 - - def test_request_with_no_params(self): - - request = jsonrpc.JSONRPCRequest("dynamips.echo") - AsyncWSRequest(self.URL, self.io_loop, self.stop, str(request)) - response = self.wait() - json_response = json_decode(response) - assert json_response["id"] == request.id - assert json_response["error"].get("code") == -32602 - - -class AsyncWSRequest(TornadoWebSocketClient): - - """ - Very basic Websocket client for tests - """ - - def __init__(self, url, io_loop, callback, message): - TornadoWebSocketClient.__init__(self, url, io_loop=io_loop) - self._callback = callback - self._message = message - self.connect() - - def opened(self): - self.send(self._message, binary=False) - - def received_message(self, message): - self.close() - if self._callback: - self._callback(message.data) diff --git a/tests/api/test_dynamips.py b/tests/api/test_dynamips.py new file mode 100644 index 00000000..3f18c6ad --- /dev/null +++ b/tests/api/test_dynamips.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2015 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import pytest +from tests.utils import asyncio_patch + + +# @pytest.yield_fixture(scope="module") +# def vm(server, project): +# +# dynamips_path = "/fake/dynamips" +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.create", return_value=True) as mock: +# response = server.post("/projects/{project_id}/dynamips/vms".format(project_id=project.id), {"name": "My router", +# "platform": "c3745", +# "image": "somewhere", +# "ram": 128}) +# assert mock.called +# assert response.status == 201 +# +# with asyncio_patch("gns3server.modules.dynamips.Dynamips.find_dynamips", return_value=dynamips_path): +# yield response.json +# +# +# def test_dynamips_vm_create(server, project): +# +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.create", return_value=True): +# response = server.post("/projects/{project_id}/dynamips/vms".format(project_id=project.id), {"name": "My router", +# "platform": "c3745", +# "image": "somewhere", +# "ram": 128}, +# example=True) +# assert response.status == 201 +# assert response.json["name"] == "My router" +# assert response.json["project_id"] == project.id +# assert response.json["dynamips_id"] +# +# +# def test_dynamips_vm_get(server, project, vm): +# response = server.get("/projects/{project_id}/dynamips/vms/{vm_id}".format(project_id=vm["project_id"], vm_id=vm["vm_id"]), example=True) +# assert response.status == 200 +# assert response.route == "/projects/{project_id}/dynamips/vms/{vm_id}" +# assert response.json["name"] == "My router" +# assert response.json["project_id"] == project.id +# +# +# def test_dynamips_vm_start(server, vm): +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.start", return_value=True) as mock: +# response = server.post("/projects/{project_id}/dynamips/vms/{vm_id}/start".format(project_id=vm["project_id"], vm_id=vm["vm_id"])) +# assert mock.called +# assert response.status == 204 +# +# +# def test_dynamips_vm_stop(server, vm): +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.stop", return_value=True) as mock: +# response = server.post("/projects/{project_id}/dynamips/vms/{vm_id}/stop".format(project_id=vm["project_id"], vm_id=vm["vm_id"])) +# assert mock.called +# assert response.status == 204 +# +# +# def test_dynamips_vm_suspend(server, vm): +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.suspend", return_value=True) as mock: +# response = server.post("/projects/{project_id}/dynamips/vms/{vm_id}/suspend".format(project_id=vm["project_id"], vm_id=vm["vm_id"])) +# assert mock.called +# assert response.status == 204 +# +# +# def test_dynamips_vm_resume(server, vm): +# with asyncio_patch("gns3server.modules.dynamips.nodes.router.Router.resume", return_value=True) as mock: +# response = server.post("/projects/{project_id}/dynamips/vms/{vm_id}/resume".format(project_id=vm["project_id"], vm_id=vm["vm_id"])) +# assert mock.called +# assert response.status == 204 + + +# def test_vbox_nio_create_udp(server, vm): +# +# with asyncio_patch('gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_add_nio_binding') as mock: +# response = server.post("/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/0/nio".format(project_id=vm["project_id"], +# vm_id=vm["vm_id"]), {"type": "nio_udp", +# "lport": 4242, +# "rport": 4343, +# "rhost": "127.0.0.1"}, +# example=True) +# +# assert mock.called +# args, kwgars = mock.call_args +# assert args[0] == 0 +# +# assert response.status == 201 +# assert response.route == "/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_id:\d+}/nio" +# assert response.json["type"] == "nio_udp" +# +# +# def test_vbox_delete_nio(server, vm): +# +# with asyncio_patch('gns3server.modules.virtualbox.virtualbox_vm.VirtualBoxVM.adapter_remove_nio_binding') as mock: +# response = server.delete("/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/0/nio".format(project_id=vm["project_id"], vm_id=vm["vm_id"]), example=True) +# +# assert mock.called +# args, kwgars = mock.call_args +# assert args[0] == 0 +# +# assert response.status == 204 +# assert response.route == "/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_id:\d+}/nio" +# +# +# def test_vbox_update(server, vm, free_console_port): +# response = server.put("/projects/{project_id}/virtualbox/vms/{vm_id}".format(project_id=vm["project_id"], vm_id=vm["vm_id"]), {"name": "test", +# "console": free_console_port}) +# assert response.status == 200 +# assert response.json["name"] == "test" +# assert response.json["console"] == free_console_port diff --git a/tests/modules/dynamips/test_dynamips_manager.py b/tests/modules/dynamips/test_dynamips_manager.py new file mode 100644 index 00000000..e0ddf9e1 --- /dev/null +++ b/tests/modules/dynamips/test_dynamips_manager.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2015 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +import pytest +import tempfile + +from gns3server.modules.dynamips import Dynamips +from gns3server.modules.dynamips.dynamips_error import DynamipsError +from unittest.mock import patch + + +@pytest.fixture(scope="module") +def manager(port_manager): + m = Dynamips.instance() + m.port_manager = port_manager + return m + + +def test_vm_invalid_dynamips_path(manager): + with patch("gns3server.config.Config.get_section_config", return_value={"dynamips_path": "/bin/test_fake"}): + with pytest.raises(DynamipsError): + manager.find_dynamips() + + +def test_vm_non_executable_dynamips_path(manager): + tmpfile = tempfile.NamedTemporaryFile() + with patch("gns3server.config.Config.get_section_config", return_value={"dynamips_path": tmpfile.name}): + with pytest.raises(DynamipsError): + manager.find_dynamips() diff --git a/tests/modules/dynamips/test_dynamips_router.py b/tests/modules/dynamips/test_dynamips_router.py new file mode 100644 index 00000000..c7fbb236 --- /dev/null +++ b/tests/modules/dynamips/test_dynamips_router.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2015 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import pytest +import asyncio + +from unittest.mock import patch +from gns3server.modules.dynamips.nodes.router import Router +from gns3server.modules.dynamips.dynamips_error import DynamipsError +from gns3server.modules.dynamips import Dynamips + + +@pytest.fixture(scope="module") +def manager(port_manager): + m = Dynamips.instance() + m.port_manager = port_manager + return m + + +@pytest.fixture(scope="function") +def router(project, manager): + return Router("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager) + + +def test_router(project, manager): + router = Router("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager) + assert router.name == "test" + assert router.id == "00010203-0405-0607-0809-0a0b0c0d0e0f" + + +def test_router_invalid_dynamips_path(project, manager, loop): + with patch("gns3server.config.Config.get_section_config", return_value={"dynamips_path": "/bin/test_fake"}): + with pytest.raises(DynamipsError): + router = Router("test", "00010203-0405-0607-0809-0a0b0c0d0e0e", project, manager) + loop.run_until_complete(asyncio.async(router.create())) + assert router.name == "test" + assert router.id == "00010203-0405-0607-0809-0a0b0c0d0e0e" diff --git a/tests/modules/virtualbox/test_virtualbox_manager.py b/tests/modules/virtualbox/test_virtualbox_manager.py index fde3ca5b..1dc647d6 100644 --- a/tests/modules/virtualbox/test_virtualbox_manager.py +++ b/tests/modules/virtualbox/test_virtualbox_manager.py @@ -31,13 +31,13 @@ def manager(port_manager): return m -@patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": "/bin/test_fake"}) -def test_vm_invalid_vboxmanage_path(project, manager): - with pytest.raises(VirtualBoxError): - manager.find_vboxmanage() +def test_vm_invalid_vboxmanage_path(manager): + with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": "/bin/test_fake"}): + with pytest.raises(VirtualBoxError): + manager.find_vboxmanage() -def test_vm_non_executable_vboxmanage_path(project, manager): +def test_vm_non_executable_vboxmanage_path(manager): tmpfile = tempfile.NamedTemporaryFile() with patch("gns3server.config.Config.get_section_config", return_value={"vboxmanage_path": tmpfile.name}): with pytest.raises(VirtualBoxError):