Import GNS3VM settings from 1.5

Fix #643
This commit is contained in:
Julien Duponchelle committed 2016-09-06 13:06:20 +02:00
1 parent 0573c3f7d5
commit bc5b5969eb
3 files changed
+123 -10

No files matched your search

+23 -1
View File
@@ -180,7 +180,8 @@ class Controller:
if os.path.exists(config_file):
with open(config_file) as f:
data = json.load(f)
for remote in data.get("Servers", {}).get("remote_servers", []):
server_settings = data.get("Servers", {})
for remote in server_settings.get("remote_servers", []):
yield from self.add_compute(
host=remote.get("host", "localhost"),
port=remote.get("port", 3080),
@@ -189,6 +190,27 @@ class Controller:
user=remote.get("user"),
password=remote.get("password")
)
if "vm" in server_settings:
vm_settings = server_settings["vm"]
if vm_settings["virtualization"] == "VMware":
engine = "vmware"
vmname = vm_settings.get("vmname", "")
elif vm_settings["virtualization"] == "VirtualBox":
engine = "virtualbox"
vmname = vm_settings.get("vmname", "")
else:
engine = "remote"
# In case of remote server we match the compute with url parameter
for compute in self._computes.values():
if compute.host == vm_settings.get("remote_vm_host") and compute.port == vm_settings.get("remote_vm_port"):
vmname = compute.name
self.gns3vm.settings = {
"engine": engine,
"enable": vm_settings.get("auto_start", False),
"auto_stop": vm_settings.get("auto_stop", True),
"headless": vm_settings.get("headless", False),
"vmname": vmname
}
@property
def settings(self):
+8 -7
View File
@@ -222,6 +222,7 @@ class GNS3VM:
name="GNS3 VM ({})".format(self._current_engine().vmname),
host=None,
force=True)
@asyncio.coroutine
def auto_stop_vm(self):
if self.enable and self.auto_stop:
@@ -241,13 +242,13 @@ class GNS3VM:
engine.vmname = self._settings["vmname"]
yield from engine.start()
yield from self._controller.add_compute(compute_id="vm",
name="GNS3 VM ({})".format(engine.vmname),
protocol=self.protocol,
host=self.ip_address,
port=self.port,
user=self.user,
password=self.password,
force=True)
name="GNS3 VM ({})".format(engine.vmname),
protocol=self.protocol,
host=self.ip_address,
port=self.port,
user=self.user,
password=self.password,
force=True)
@locked_coroutine
def _stop(self):