mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
parent
d657f94c18
commit
e37392c482
@ -46,13 +46,14 @@ class IOU(BaseManager):
|
|||||||
return vm
|
return vm
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def delete_vm(self, vm_id, *args, **kwargs):
|
def close_vm(self, vm_id, *args, **kwargs):
|
||||||
|
|
||||||
vm = self.get_vm(vm_id)
|
vm = self.get_vm(vm_id)
|
||||||
i = self._used_application_ids[vm_id]
|
i = self._used_application_ids[vm_id]
|
||||||
self._free_application_ids.insert(0, i)
|
self._free_application_ids.insert(0, i)
|
||||||
del self._used_application_ids[vm_id]
|
del self._used_application_ids[vm_id]
|
||||||
yield from super().delete_vm(vm_id, *args, **kwargs)
|
yield from super().close_vm(vm_id, *args, **kwargs)
|
||||||
|
return vm
|
||||||
|
|
||||||
def get_application_id(self, vm_id):
|
def get_application_id(self, vm_id):
|
||||||
"""
|
"""
|
||||||
|
@ -274,10 +274,7 @@ class Project:
|
|||||||
|
|
||||||
tasks = []
|
tasks = []
|
||||||
for vm in self._vms:
|
for vm in self._vms:
|
||||||
if asyncio.iscoroutinefunction(vm.close):
|
tasks.append(asyncio.async(vm.manager.close_vm(vm.id)))
|
||||||
tasks.append(asyncio.async(vm.close()))
|
|
||||||
else:
|
|
||||||
vm.close()
|
|
||||||
|
|
||||||
if tasks:
|
if tasks:
|
||||||
done, _ = yield from asyncio.wait(tasks)
|
done, _ = yield from asyncio.wait(tasks)
|
||||||
|
@ -47,13 +47,14 @@ class VPCS(BaseManager):
|
|||||||
return vm
|
return vm
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def delete_vm(self, vm_id, *args, **kwargs):
|
def close_vm(self, vm_id, *args, **kwargs):
|
||||||
|
|
||||||
vm = self.get_vm(vm_id)
|
vm = self.get_vm(vm_id)
|
||||||
i = self._used_mac_ids[vm_id]
|
i = self._used_mac_ids[vm_id]
|
||||||
self._free_mac_ids[vm.project.id].insert(0, i)
|
self._free_mac_ids[vm.project.id].insert(0, i)
|
||||||
del self._used_mac_ids[vm_id]
|
del self._used_mac_ids[vm_id]
|
||||||
yield from super().delete_vm(vm_id, *args, **kwargs)
|
yield from super().close_vm(vm_id, *args, **kwargs)
|
||||||
|
return vm
|
||||||
|
|
||||||
def get_mac_id(self, vm_id):
|
def get_mac_id(self, vm_id):
|
||||||
"""
|
"""
|
||||||
|
@ -37,8 +37,9 @@ def manager(port_manager):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
def vm(project, manager):
|
def vm(project, manager, loop):
|
||||||
return VPCSVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager)
|
vm = manager.create_vm("test", project.id, "00010203-0405-0607-0809-0a0b0c0d0e0f")
|
||||||
|
return loop.run_until_complete(asyncio.async(vm))
|
||||||
|
|
||||||
|
|
||||||
def test_affect_uuid():
|
def test_affect_uuid():
|
||||||
@ -180,11 +181,8 @@ def test_project_add_vm(manager):
|
|||||||
assert len(project.vms) == 1
|
assert len(project.vms) == 1
|
||||||
|
|
||||||
|
|
||||||
def test_project_close(loop, manager):
|
def test_project_close(loop, vm, project):
|
||||||
project = Project()
|
|
||||||
vm = VPCSVM("test", "00010203-0405-0607-0809-0a0b0c0d0e0f", project, manager)
|
|
||||||
project.add_vm(vm)
|
|
||||||
vm.manager._vms = {vm.id: vm}
|
|
||||||
with asyncio_patch("gns3server.modules.vpcs.vpcs_vm.VPCSVM.close") as mock:
|
with asyncio_patch("gns3server.modules.vpcs.vpcs_vm.VPCSVM.close") as mock:
|
||||||
loop.run_until_complete(asyncio.async(project.close()))
|
loop.run_until_complete(asyncio.async(project.close()))
|
||||||
assert mock.called
|
assert mock.called
|
||||||
|
Loading…
Reference in New Issue
Block a user