Support auto stop for the GNS3 VM

Ref https://github.com/GNS3/gns3-gui/issues/1254
This commit is contained in:
Julien Duponchelle committed 2016-08-25 14:26:01 +02:00
1 parent fc8b4c3216
commit 9255dc07b7
3 files changed
+43 -10

No files matched your search

+9 -7
View File
@@ -74,19 +74,21 @@ class Controller:
if self.gns3vm.enable:
yield from self.gns3vm.start()
self._computes["vm"] = Compute(compute_id="vm",
name="GNS3 VM",
controller=self,
protocol=self.gns3vm.protocol,
host=self.gns3vm.ip_address,
port=self.gns3vm.port,
user=self.gns3vm.user,
password=self.gns3vm.password)
name="GNS3 VM",
controller=self,
protocol=self.gns3vm.protocol,
host=self.gns3vm.ip_address,
port=self.gns3vm.port,
user=self.gns3vm.user,
password=self.gns3vm.password)
@asyncio.coroutine
def stop(self):
log.info("Stop controller")
for compute in self._computes.values():
yield from compute.close()
if self.gns3vm.enable and self.gns3vm.auto_stop:
yield from self.gns3vm.stop()
self._computes = {}
self._projects = {}
+17 -1
View File
@@ -36,7 +36,7 @@ class GNS3VM:
self._engines = {}
self._settings = {
"vmname": None,
"auto_stop": False,
"auto_stop": True,
"headless": False,
"enable": False,
"engine": "vmware"
@@ -120,6 +120,13 @@ class GNS3VM:
"""
return self._settings["enable"]
@property
def auto_stop(self):
"""
The GNSVM should auto stop
"""
return self._settings["auto_stop"]
@property
def settings(self):
return self._settings
@@ -169,3 +176,12 @@ class GNS3VM:
engine.vmname = self._settings["vmname"]
yield from engine.start()
@asyncio.coroutine
def stop(self):
"""
Stop the GNS3 VM
"""
engine = self._current_engine()
if not engine.running:
log.info("Stop the GNS3 VM")
yield from engine.stop()