Merge pull request #2247 from GNS3/dynamic-compute-allocation

Allow computes to be dynamically or manually allocated
This commit is contained in:
Jeremy Grossmann 2023-06-21 22:41:56 +09:30 committed by GitHub
commit d366d77ff7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 6 deletions

View File

@ -423,7 +423,7 @@ class BaseManager:
# Windows path should not be send to a unix server
if re.match(r"^[A-Z]:", path) is not None:
raise NodeError(
f"'{path}' is not allowed on this remote server. Please only use a file from '{img_directory}'"
f"'{path}' is not allowed on this remote server (Windows path). Please only use a file from '{img_directory}'"
)
if not os.path.isabs(orig_path):

View File

@ -495,7 +495,8 @@ class Controller:
"""
if compute_id is None:
computes = list(self._computes.values())
# get all connected computes
computes = [compute for compute in self._computes.values() if compute.connected is True]
if len(computes) == 1:
# return the only available compute
return computes[0]

View File

@ -398,7 +398,7 @@ class Compute:
raise ControllerNotFoundError(msg)
self._capabilities = response.json
if response.json["version"].split("-")[0] != __version__.split("-")[0]:
if response.json["version"].split("+")[0] != __version__.split("+")[0]:
if self._name.startswith("GNS3 VM"):
msg = (
"GNS3 version {} is not the same as the GNS3 VM version {}. Please upgrade the GNS3 VM.".format(

View File

@ -524,12 +524,14 @@ class Project:
template["x"] = x
template["y"] = y
node_type = template.pop("template_type")
if template.pop("builtin", False) is True:
# compute_id is selected by clients for builtin templates
if compute_id:
# use a custom compute_id
compute = self.controller.get_compute(compute_id)
else:
compute = self.controller.get_compute(template.pop("compute_id", compute_id))
compute = self.controller.get_compute(template.pop("compute_id"))
template_name = template.pop("name")
log.info(f'Creating node from template "{template_name}" on compute "{compute.name}" [{compute.id}]')
default_name_format = template.pop("default_name_format", "{name}-{0}")
if name is None:
name = default_name_format.replace("{name}", template_name)