mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
3 files changed
+123
-10
No files matched your search
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user