1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-11-30 20:28:08 +00:00

Fixes bug where IOS nvram/disk files were not kept after closing a

topology.
This commit is contained in:
grossmj 2014-05-06 12:22:38 -06:00
parent cd47d96de7
commit 17b56810d1
6 changed files with 20 additions and 12 deletions

View File

@ -419,7 +419,7 @@ class Dynamips(IModule):
ghost.ram = router.ram ghost.ram = router.ram
ghost.start() ghost.start()
ghost.stop() ghost.stop()
ghost.delete() ghost.clean_delete()
if router.ghost_file != ghost_instance: if router.ghost_file != ghost_instance:
# set the ghost file to the router # set the ghost file to the router

View File

@ -226,7 +226,7 @@ class VM(object):
return return
try: try:
router.delete() router.clean_delete()
self._hypervisor_manager.unallocate_hypervisor_for_router(router) self._hypervisor_manager.unallocate_hypervisor_for_router(router)
del self._routers[router_id] del self._routers[router_id]
except DynamipsError as e: except DynamipsError as e:

View File

@ -280,7 +280,7 @@ class Router(object):
Deletes this router. Deletes this router.
""" """
self._hypervisor.send("vm clean_delete {}".format(self._name)) self._hypervisor.send("vm delete {}".format(self._name))
self._hypervisor.devices.remove(self) self._hypervisor.devices.remove(self)
log.info("router {name} [id={id}] has been deleted".format(name=self._name, id=self._id)) log.info("router {name} [id={id}] has been deleted".format(name=self._name, id=self._id))
@ -290,6 +290,21 @@ class Router(object):
if self.aux: if self.aux:
self._allocated_aux_ports.remove(self.aux) self._allocated_aux_ports.remove(self.aux)
def clean_delete(self):
"""
Deletes this router & associated files (nvram, disks etc.)
"""
self._hypervisor.send("vm clean_delete {}".format(self._name))
self._hypervisor.devices.remove(self)
log.info("router {name} [id={id}] has been deleted (including associated files)".format(name=self._name, id=self._id))
self._allocated_names.remove(self.name)
if self.console:
self._allocated_console_ports.remove(self.console)
if self.aux:
self._allocated_aux_ports.remove(self.aux)
def start(self): def start(self):
""" """
Starts this router. Starts this router.

View File

@ -313,13 +313,6 @@ IOU_ADD_NIO_SCHEMA = {
"minimum": 0, "minimum": 0,
"maximum": 3 "maximum": 3
}, },
"slot": {
"description": "Slot number",
"type": "integer",
"minimum": 0,
"maximum": 15
},
"nio": { "nio": {
"type": "object", "type": "object",
"description": "Network Input/Output", "description": "Network Input/Output",

View File

@ -23,5 +23,5 @@
# or negative for a release candidate or beta (after the base version # or negative for a release candidate or beta (after the base version
# number has been incremented) # number has been incremented)
__version__ = "1.0-alpha3" __version__ = "1.0a4.dev1"
__version_info__ = (1, 0, 0, -99) __version_info__ = (1, 0, 0, -99)

View File

@ -14,6 +14,6 @@ def server(request):
cwd = os.path.dirname(os.path.abspath(__file__)) cwd = os.path.dirname(os.path.abspath(__file__))
server_script = os.path.join(cwd, "../gns3server/main.py") server_script = os.path.join(cwd, "../gns3server/main.py")
process = subprocess.Popen([sys.executable, server_script, "--port=8000"]) process = subprocess.Popen([sys.executable, server_script, "--port=8000"])
time.sleep(0.1) # give some time for the process to start time.sleep(1) # give some time for the process to start
request.addfinalizer(process.terminate) request.addfinalizer(process.terminate)
return process return process