mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 14:01:15 +02:00
Support auto stop for the GNS3 VM
Ref https://github.com/GNS3/gns3-gui/issues/1254
This commit is contained in:
3 files changed
+43
-10
No files matched your search
@@ -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 = {}
|
||||
|
||||
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user