mirror of
https://github.com/GNS3/gns3-server.git
synced 2024-12-19 04:47:54 +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
|
return compute_id in self._computes
|
||||||
|
|
||||||
@asyncio.coroutine
|
@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
|
Creates a project or returns an existing project
|
||||||
|
|
||||||
@ -547,8 +547,11 @@ class Controller:
|
|||||||
if project_id not in self._projects:
|
if project_id not in self._projects:
|
||||||
for project in self._projects.values():
|
for project in self._projects.values():
|
||||||
if name and project.name == name:
|
if name and project.name == name:
|
||||||
raise aiohttp.web.HTTPConflict(text='Project name "{}" already exists'.format(name))
|
if path and path == project.path:
|
||||||
project = Project(project_id=project_id, controller=self, name=name, **kwargs)
|
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
|
self._projects[project.id] = project
|
||||||
return self._projects[project.id]
|
return self._projects[project.id]
|
||||||
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 "properties" in node:
|
||||||
if node["node_type"] in ("qemu", "vmware", "virtualbox"):
|
if node["node_type"] in ("qemu", "vmware", "virtualbox"):
|
||||||
if "acpi_shutdown" in node["properties"]:
|
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"]
|
del node["properties"]["acpi_shutdown"]
|
||||||
if "save_vm_state" in node["properties"]:
|
if "save_vm_state" in node["properties"]:
|
||||||
del node["properties"]["save_vm_state"]
|
del node["properties"]["save_vm_state"]
|
||||||
|
@ -100,7 +100,7 @@ def test_convert(directory, tmpdir):
|
|||||||
|
|
||||||
def compare_dict(path, source, reference):
|
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)
|
assert isinstance(source, dict), "Source is not a dict in {}".format(path)
|
||||||
for key in source:
|
for key in source:
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
"port_segment_size": 0,
|
"port_segment_size": 0,
|
||||||
"first_port_name": null,
|
"first_port_name": null,
|
||||||
"properties": {
|
"properties": {
|
||||||
"acpi_shutdown": false,
|
"on_close": "power_off",
|
||||||
"adapter_type": "e1000",
|
"adapter_type": "e1000",
|
||||||
"adapters": 1,
|
"adapters": 1,
|
||||||
"boot_priority": "c",
|
"boot_priority": "c",
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
"first_port_name": null,
|
"first_port_name": null,
|
||||||
"properties": {
|
"properties": {
|
||||||
"linked_clone": false,
|
"linked_clone": false,
|
||||||
"acpi_shutdown": false,
|
"on_close": "power_off",
|
||||||
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
|
||||||
"adapters": 1,
|
"adapters": 1,
|
||||||
"headless": false,
|
"headless": false,
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
"first_port_name": null,
|
"first_port_name": null,
|
||||||
"properties": {
|
"properties": {
|
||||||
"linked_clone": false,
|
"linked_clone": false,
|
||||||
"acpi_shutdown": false,
|
"on_close": "power_off",
|
||||||
"adapter_type": "e1000",
|
"adapter_type": "e1000",
|
||||||
"adapters": 1,
|
"adapters": 1,
|
||||||
"headless": false,
|
"headless": false,
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
"port_segment_size": 0,
|
"port_segment_size": 0,
|
||||||
"first_port_name": null,
|
"first_port_name": null,
|
||||||
"properties": {
|
"properties": {
|
||||||
"acpi_shutdown": false,
|
"on_close": "power_off",
|
||||||
"adapter_type": "e1000",
|
"adapter_type": "e1000",
|
||||||
"adapters": 1,
|
"adapters": 1,
|
||||||
"headless": false,
|
"headless": false,
|
||||||
|
Loading…
Reference in New Issue
Block a user