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