From 0110fe33d473bca605bb89db26192d9333c86c60 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 9 Apr 2014 15:59:51 -0600 Subject: [PATCH] Check for the Dynamips version. --- gns3server/modules/dynamips/dynamips_hypervisor.py | 2 +- gns3server/modules/dynamips/hypervisor_manager.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gns3server/modules/dynamips/dynamips_hypervisor.py b/gns3server/modules/dynamips/dynamips_hypervisor.py index 0adfdac6..9af7a908 100644 --- a/gns3server/modules/dynamips/dynamips_hypervisor.py +++ b/gns3server/modules/dynamips/dynamips_hypervisor.py @@ -75,7 +75,7 @@ class DynamipsHypervisor(object): raise DynamipsError("Could not connect to server: {}".format(e)) try: - self._version = self.send("hypervisor version")[0][4:] + self._version = self.send("hypervisor version")[0].split("-", 1)[0] except IndexError: self._version = "Unknown" diff --git a/gns3server/modules/dynamips/hypervisor_manager.py b/gns3server/modules/dynamips/hypervisor_manager.py index f608ff37..50369358 100644 --- a/gns3server/modules/dynamips/hypervisor_manager.py +++ b/gns3server/modules/dynamips/hypervisor_manager.py @@ -20,6 +20,8 @@ Manages Dynamips hypervisors (load-balancing etc.) """ from .hypervisor import Hypervisor +from .dynamips_error import DynamipsError +from pkg_resources import parse_version import socket import time import logging @@ -471,6 +473,8 @@ class HypervisorManager(object): log.info("hypervisor {}:{} has successfully started".format(hypervisor.host, hypervisor.port)) hypervisor.connect() + if parse_version(hypervisor.version) < parse_version('0.2.11'): + raise DynamipsError("Dynamips version must be >= 0.2.11, detected version is {}".format(hypervisor.version)) hypervisor.baseconsole = self._base_console_port hypervisor.baseaux = self._base_aux_port hypervisor.baseudp = self._current_base_udp_port