mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
Merge branch '3.1' into mypy-compute-qemu-vm
This commit is contained in:
9 files changed
+51
-34
No files matched your search
@@ -227,7 +227,11 @@ class DockerVM(BaseNode):
|
||||
return display
|
||||
display += 1
|
||||
|
||||
@BaseNode.name.setter
|
||||
@property
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, new_name):
|
||||
"""
|
||||
Sets the name of this Qemu VM.
|
||||
@@ -737,13 +741,15 @@ class DockerVM(BaseNode):
|
||||
params["Env"].append("{}={}".format(var_name, formatted))
|
||||
|
||||
if self._environment:
|
||||
for e in self._environment.strip().split("\n"):
|
||||
e = e.strip()
|
||||
if e.split("=")[0] == "":
|
||||
self.project.emit("log.warning", {"message": f"{self.name} has invalid environment variable: {e}"})
|
||||
for env in self._environment.strip().split("\n"):
|
||||
env = env.strip()
|
||||
if env.split("=")[0] == "":
|
||||
self.project.emit(
|
||||
"log.warning", {"message": f"{self.name} has invalid environment variable: {env}"}
|
||||
)
|
||||
continue
|
||||
if not e.startswith("GNS3_"):
|
||||
formatted = self._format_env(variables, e)
|
||||
if not env.startswith("GNS3_"):
|
||||
formatted = self._format_env(variables, env)
|
||||
vm_name = self._name.replace(",", ",,")
|
||||
project_path = self.project.path.replace(",", ",,")
|
||||
formatted = formatted.replace("%vm-name%", '"' + vm_name.replace('"', '\\"') + '"')
|
||||
|
||||
@@ -92,8 +92,8 @@ class IOLDockerVM(VendorDockerVM):
|
||||
# controller-allocated application id (MACs would flip to the fallback
|
||||
# hash, colliding with the allocation pool) and any pending
|
||||
# startup-config delivered by a PUT.
|
||||
_application_id = None
|
||||
_startup_config_content = None
|
||||
_application_id: int | None = None
|
||||
_startup_config_content: str | None = None
|
||||
_startup_config_dirty = False
|
||||
|
||||
def _parse_vendor_environment(self):
|
||||
@@ -119,7 +119,7 @@ class IOLDockerVM(VendorDockerVM):
|
||||
pass
|
||||
|
||||
@property
|
||||
def application_id(self) -> int:
|
||||
def application_id(self) -> int | None:
|
||||
"""
|
||||
IOL application ID: drives interface MACs (aabb.cc{app}{iface}) and
|
||||
the NVRAM file name. Allocated by the controller from the IOL Docker
|
||||
@@ -178,6 +178,8 @@ class IOLDockerVM(VendorDockerVM):
|
||||
initial configuration dialog.
|
||||
"""
|
||||
|
||||
if self._startup_config_content is None:
|
||||
return
|
||||
content = self._startup_config_content.replace("%h", self._name)
|
||||
nvram_file = self._iol_nvram_file()
|
||||
os.makedirs(os.path.dirname(nvram_file), exist_ok=True)
|
||||
@@ -189,7 +191,11 @@ class IOLDockerVM(VendorDockerVM):
|
||||
raise DockerError(f"Could not write IOL startup-config to NVRAM of container '{self._name}': {e}")
|
||||
log.debug("IOL container '%s': startup-config written to %s", self._name, nvram_file)
|
||||
|
||||
@DockerVM.name.setter
|
||||
@property
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, new_name):
|
||||
"""
|
||||
Override: keep the hostname line inside the NVRAM in sync with the
|
||||
@@ -228,7 +234,11 @@ class IOLDockerVM(VendorDockerVM):
|
||||
result["startup_config_content"] = self._startup_config_content
|
||||
return result
|
||||
|
||||
@DockerVM.adapters.setter
|
||||
@property
|
||||
def adapters(self):
|
||||
return len(self._ethernet_adapters)
|
||||
|
||||
@adapters.setter
|
||||
def adapters(self, adapters):
|
||||
"""
|
||||
Override: one IOL adapter is a 4-port unit — the IOU model. The
|
||||
|
||||
@@ -466,7 +466,7 @@ class Project:
|
||||
)
|
||||
|
||||
# Non-recursive: list only the current directory level
|
||||
files = []
|
||||
files: list[dict] = []
|
||||
try:
|
||||
scandir_iter = os.scandir(target_path)
|
||||
except PermissionError:
|
||||
|
||||
@@ -952,7 +952,11 @@ class VMwareVM(BaseNode):
|
||||
await self._stop_remote_console()
|
||||
await self._start_console()
|
||||
|
||||
@BaseNode.console_type.setter
|
||||
@property
|
||||
def console_type(self):
|
||||
return self._console_type
|
||||
|
||||
@console_type.setter
|
||||
def console_type(self, new_console_type):
|
||||
"""
|
||||
Sets the console type for this VMware VM.
|
||||
|
||||
Reference in new issue
Block a user