Find an alternative IOS or IOU image if one cannot be found when importing a topology.

This commit is contained in:
grossmj committed 2014-07-06 16:34:38 -06:00
1 parent 551b98880b
commit 9fc7650f3f
4 files changed
+19 -1

No files matched your search

+10
View File
@@ -19,6 +19,7 @@
Base class (interface) for modules
"""
import os
import sys
import traceback
import gns3server.jsonrpc as jsonrpc
@@ -26,6 +27,7 @@ import multiprocessing
import zmq
import signal
from gns3server.config import Config
from jsonschema import validate, ValidationError
import logging
@@ -45,6 +47,9 @@ class IModule(multiprocessing.Process):
def __init__(self, name, *args, **kwargs):
config = Config.instance()
server_config = config.get_default_section()
self._images_dir = os.path.expandvars(os.path.expanduser(server_config.get("upload_directory", "~/GNS3/images")))
multiprocessing.Process.__init__(self, name=name)
self._context = None
self._ioloop = None
@@ -328,3 +333,8 @@ class IModule(multiprocessing.Process):
cls.modules[module][destination] = method
return method
return wrapper
@property
def images_directory(self):
return self._images_dir
@@ -138,6 +138,10 @@ class VM(object):
chassis = request.get("chassis")
router_id = request.get("router_id")
updated_image_path = os.path.join(self.images_directory, image)
if os.path.isfile(updated_image_path):
image = updated_image_path
try:
if platform not in PLATFORMS:
+4
View File
@@ -295,6 +295,10 @@ class IOU(IModule):
console = request.get("console")
iou_id = request.get("iou_id")
updated_iou_path = os.path.join(self.images_directory, iou_path)
if os.path.isfile(updated_iou_path):
iou_path = updated_iou_path
try:
iou_instance = IOUDevice(name,
iou_path,