mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 03:08:14 +00:00
If a VM is already loaded, we return a VM instead of creating it twice
Partial fix for #81
This commit is contained in:
parent
914ea0326c
commit
66860655b9
@ -200,6 +200,9 @@ class BaseManager:
|
|||||||
:param vm_id: restore a VM identifier
|
:param vm_id: restore a VM identifier
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if vm_id in self._vms:
|
||||||
|
return self._vms[vm_id]
|
||||||
|
|
||||||
project = ProjectManager.instance().get_project(project_id)
|
project = ProjectManager.instance().get_project(project_id)
|
||||||
if vm_id and isinstance(vm_id, int):
|
if vm_id and isinstance(vm_id, int):
|
||||||
with (yield from BaseManager._convert_lock):
|
with (yield from BaseManager._convert_lock):
|
||||||
|
@ -34,6 +34,20 @@ def test_create_vm_new_topology(loop, project, port_manager):
|
|||||||
assert vm in project.vms
|
assert vm in project.vms
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_twice_same_vm_new_topology(loop, project, port_manager):
|
||||||
|
|
||||||
|
project._vms = set()
|
||||||
|
VPCS._instance = None
|
||||||
|
vpcs = VPCS.instance()
|
||||||
|
vpcs.port_manager = port_manager
|
||||||
|
vm_id = str(uuid.uuid4())
|
||||||
|
vm = loop.run_until_complete(vpcs.create_vm("PC 1", project.id, vm_id, console=2222))
|
||||||
|
assert vm in project.vms
|
||||||
|
assert len(project.vms) == 1
|
||||||
|
vm = loop.run_until_complete(vpcs.create_vm("PC 2", project.id, vm_id, console=2222))
|
||||||
|
assert len(project.vms) == 1
|
||||||
|
|
||||||
|
|
||||||
def test_create_vm_new_topology_without_uuid(loop, project, port_manager):
|
def test_create_vm_new_topology_without_uuid(loop, project, port_manager):
|
||||||
|
|
||||||
VPCS._instance = None
|
VPCS._instance = None
|
||||||
|
Loading…
Reference in New Issue
Block a user