mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 09:18:08 +00:00
Allow to have projects with the same name in different locations.
This commit is contained in:
parent
ea0009db6c
commit
509b171b06
@ -535,7 +535,7 @@ class Controller:
|
||||
return compute_id in self._computes
|
||||
|
||||
@asyncio.coroutine
|
||||
def add_project(self, project_id=None, name=None, **kwargs):
|
||||
def add_project(self, project_id=None, name=None, path=None, **kwargs):
|
||||
"""
|
||||
Creates a project or returns an existing project
|
||||
|
||||
@ -547,8 +547,11 @@ class Controller:
|
||||
if project_id not in self._projects:
|
||||
for project in self._projects.values():
|
||||
if name and project.name == name:
|
||||
raise aiohttp.web.HTTPConflict(text='Project name "{}" already exists'.format(name))
|
||||
project = Project(project_id=project_id, controller=self, name=name, **kwargs)
|
||||
if path and path == project.path:
|
||||
raise aiohttp.web.HTTPConflict(text='Project "{}" already exists in location "{}"'.format(name, path))
|
||||
else:
|
||||
raise aiohttp.web.HTTPConflict(text='Project "{}" already exists'.format(name))
|
||||
project = Project(project_id=project_id, controller=self, name=name, path=path, **kwargs)
|
||||
self._projects[project.id] = project
|
||||
return self._projects[project.id]
|
||||
return self._projects[project_id]
|
||||
|
@ -183,6 +183,10 @@ def _convert_2_1_0(topo, topo_path):
|
||||
if "properties" in node:
|
||||
if node["node_type"] in ("qemu", "vmware", "virtualbox"):
|
||||
if "acpi_shutdown" in node["properties"]:
|
||||
if node["properties"]["acpi_shutdown"] is True:
|
||||
node["properties"]["on_close"] = "save_vm_sate"
|
||||
else:
|
||||
node["properties"]["on_close"] = "power_off"
|
||||
del node["properties"]["acpi_shutdown"]
|
||||
if "save_vm_state" in node["properties"]:
|
||||
del node["properties"]["save_vm_state"]
|
||||
|
@ -100,7 +100,7 @@ def test_convert(directory, tmpdir):
|
||||
|
||||
def compare_dict(path, source, reference):
|
||||
"""
|
||||
Compare two dictionnary of a topology
|
||||
Compare two dictionary of a topology
|
||||
"""
|
||||
assert isinstance(source, dict), "Source is not a dict in {}".format(path)
|
||||
for key in source:
|
||||
|
@ -34,7 +34,7 @@
|
||||
"port_segment_size": 0,
|
||||
"first_port_name": null,
|
||||
"properties": {
|
||||
"acpi_shutdown": false,
|
||||
"on_close": "power_off",
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"boot_priority": "c",
|
||||
|
@ -35,7 +35,7 @@
|
||||
"first_port_name": null,
|
||||
"properties": {
|
||||
"linked_clone": false,
|
||||
"acpi_shutdown": false,
|
||||
"on_close": "power_off",
|
||||
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
||||
"adapters": 1,
|
||||
"headless": false,
|
||||
|
@ -35,7 +35,7 @@
|
||||
"first_port_name": null,
|
||||
"properties": {
|
||||
"linked_clone": false,
|
||||
"acpi_shutdown": false,
|
||||
"on_close": "power_off",
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"headless": false,
|
||||
|
@ -34,7 +34,7 @@
|
||||
"port_segment_size": 0,
|
||||
"first_port_name": null,
|
||||
"properties": {
|
||||
"acpi_shutdown": false,
|
||||
"on_close": "power_off",
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 1,
|
||||
"headless": false,
|
||||
|
Loading…
Reference in New Issue
Block a user