1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-01 04:38:12 +00:00
gns3-server/tests/dynamips/test_hypervisor_manager.py
Daniel Lintott 7cbce0f81b Fix test suite
+ Install VPCS and dynamips from GNS3 PPA
 + Drop netifaces-py3 from requirements.txt
 + Fix/update tests to use installed VPCS and dynamips
2014-08-08 14:32:32 +01:00

53 lines
1.9 KiB
Python

from gns3server.modules.dynamips import Router
from gns3server.modules.dynamips import HypervisorManager
import pytest
import os
@pytest.fixture(scope="module")
def hypervisor_manager(request):
dynamips_path = '/usr/bin/dynamips'
print("\nStarting Dynamips Hypervisor: {}".format(dynamips_path))
manager = HypervisorManager(dynamips_path, "/tmp", "127.0.0.1")
#manager.start_new_hypervisor()
def stop():
print("\nStopping Dynamips Hypervisor")
manager.stop_all_hypervisors()
request.addfinalizer(stop)
return manager
def test_allocate_hypervisor_for_router(hypervisor_manager):
hypervisor_manager.allocate_hypervisor_per_device = False
# default of 1GB of RAM per hypervisor instance
assert hypervisor_manager.memory_usage_limit_per_hypervisor == 1024
hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 512)
assert hypervisor.is_running()
hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 256)
assert hypervisor.memory_load == 768
hypervisor = hypervisor_manager.allocate_hypervisor_for_router("c3725.image", 512)
assert hypervisor.memory_load == 512
assert len(hypervisor_manager.hypervisors) == 2
def test_unallocate_hypervisor_for_router(hypervisor_manager):
assert len(hypervisor_manager.hypervisors) == 2
hypervisor = hypervisor_manager.hypervisors[0]
assert hypervisor.memory_load == 768
router = Router(hypervisor, "router", "c3725") # default is 128MB of RAM
hypervisor_manager.unallocate_hypervisor_for_router(router)
assert hypervisor.memory_load == 640
hypervisor.decrease_memory_load(512) # forces memory load down to 128
assert hypervisor.memory_load == 128
router.delete()
hypervisor_manager.unallocate_hypervisor_for_router(router)
# router is deleted and memory load to 0 now, one hypervisor must
# have been shutdown
assert len(hypervisor_manager.hypervisors) == 1