mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
Cleanup VMS when leaving
This commit is contained in:
parent
e12e6044dc
commit
08b2dc6369
@ -49,6 +49,13 @@ class BaseManager:
|
||||
cls._instance = cls()
|
||||
return cls._instance
|
||||
|
||||
def __del__(self):
|
||||
self.destroy()
|
||||
|
||||
def destroy():
|
||||
"""Cleanup the VMS. Call this before closing the server"""
|
||||
cls._instance()
|
||||
|
||||
@property
|
||||
def module_name(self):
|
||||
"""
|
||||
|
@ -32,7 +32,8 @@ class BaseVM:
|
||||
name=self.name,
|
||||
uuid=self.uuid))
|
||||
|
||||
# TODO: When delete release console ports
|
||||
def __del__(self):
|
||||
self.destroy()
|
||||
|
||||
@property
|
||||
def project(self):
|
||||
@ -118,3 +119,10 @@ class BaseVM:
|
||||
"""
|
||||
|
||||
raise NotImplementedError
|
||||
|
||||
def destroy(self):
|
||||
"""
|
||||
Destroy the VM process.
|
||||
"""
|
||||
|
||||
raise NotImplementedError
|
||||
|
@ -81,9 +81,6 @@ class VPCSVM(BaseVM):
|
||||
else:
|
||||
self._console = self._manager.port_manager.get_free_console_port()
|
||||
|
||||
def __del__(self):
|
||||
self.destroy()
|
||||
|
||||
def destroy(self):
|
||||
self._kill_process()
|
||||
if self._console:
|
||||
|
@ -77,7 +77,10 @@ class Server:
|
||||
Cleanup the modules (shutdown running emulators etc.)
|
||||
"""
|
||||
|
||||
# TODO: clean everything from here
|
||||
for module in MODULES:
|
||||
log.debug("Unloading module {}".format(module.__name__))
|
||||
m = module.instance()
|
||||
m.destroy()
|
||||
self._loop.stop()
|
||||
|
||||
def _signal_handling(self):
|
||||
@ -152,8 +155,4 @@ class Server:
|
||||
|
||||
# FIXME: remove it in production or in tests
|
||||
self._loop.call_later(1, self._reload_hook)
|
||||
try:
|
||||
self._loop.run_forever()
|
||||
except KeyboardInterrupt:
|
||||
log.info("\nExiting...")
|
||||
self._cleanup()
|
||||
self._loop.run_forever()
|
||||
|
Loading…
Reference in New Issue
Block a user