mirror of
https://github.com/GNS3/gns3-server
synced 2024-12-27 09:18:09 +00:00
Merge pull request #2247 from GNS3/dynamic-compute-allocation
Allow computes to be dynamically or manually allocated
This commit is contained in:
commit
d366d77ff7
@ -423,7 +423,7 @@ class BaseManager:
|
|||||||
# Windows path should not be send to a unix server
|
# Windows path should not be send to a unix server
|
||||||
if re.match(r"^[A-Z]:", path) is not None:
|
if re.match(r"^[A-Z]:", path) is not None:
|
||||||
raise NodeError(
|
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):
|
if not os.path.isabs(orig_path):
|
||||||
|
@ -495,7 +495,8 @@ class Controller:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if compute_id is None:
|
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:
|
if len(computes) == 1:
|
||||||
# return the only available compute
|
# return the only available compute
|
||||||
return computes[0]
|
return computes[0]
|
||||||
|
@ -398,7 +398,7 @@ class Compute:
|
|||||||
raise ControllerNotFoundError(msg)
|
raise ControllerNotFoundError(msg)
|
||||||
self._capabilities = response.json
|
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"):
|
if self._name.startswith("GNS3 VM"):
|
||||||
msg = (
|
msg = (
|
||||||
"GNS3 version {} is not the same as the GNS3 VM version {}. Please upgrade the GNS3 VM.".format(
|
"GNS3 version {} is not the same as the GNS3 VM version {}. Please upgrade the GNS3 VM.".format(
|
||||||
|
@ -524,12 +524,14 @@ class Project:
|
|||||||
template["x"] = x
|
template["x"] = x
|
||||||
template["y"] = y
|
template["y"] = y
|
||||||
node_type = template.pop("template_type")
|
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)
|
compute = self.controller.get_compute(compute_id)
|
||||||
else:
|
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")
|
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}")
|
default_name_format = template.pop("default_name_format", "{name}-{0}")
|
||||||
if name is None:
|
if name is None:
|
||||||
name = default_name_format.replace("{name}", template_name)
|
name = default_name_format.replace("{name}", template_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user