|
|
|
from gns3server.modules.dynamips import C1700
|
|
|
|
from gns3server.modules.dynamips import DynamipsError
|
|
|
|
from gns3server.modules.dynamips import WIC_2T
|
|
|
|
from gns3server.modules.dynamips import WIC_1ENET
|
|
|
|
from gns3server.modules.dynamips import NIO_Null
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def router_c1700(request, hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "c1700 router")
|
|
|
|
request.addfinalizer(router.delete)
|
|
|
|
return router
|
|
|
|
|
|
|
|
|
|
|
|
def test_router_exists(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.platform == "c1700"
|
|
|
|
assert router_c1700.list()
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_1721(hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "1721 chassis", chassis="1721")
|
|
|
|
assert router.chassis == "1721"
|
|
|
|
assert str(router.slots[0]) == "C1700-MB-1FE"
|
|
|
|
router.delete()
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_change_to_1721(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.chassis == "1720" # default chassis
|
|
|
|
router_c1700.chassis = "1721"
|
|
|
|
assert router_c1700.chassis == "1721"
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_1750(hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "1750 chassis", chassis="1750")
|
|
|
|
assert router.chassis == "1750"
|
|
|
|
assert str(router.slots[0]) == "C1700-MB-1FE"
|
|
|
|
router.delete()
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_change_to_1750(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.chassis == "1720" # default chassis
|
|
|
|
router_c1700.chassis = "1750"
|
|
|
|
assert router_c1700.chassis == "1750"
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_1751(hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "1751 chassis", chassis="1751")
|
|
|
|
assert router.chassis == "1751"
|
|
|
|
assert str(router.slots[0]) == "C1700-MB-1FE"
|
|
|
|
router.delete()
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_change_to_1751(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.chassis == "1720" # default chassis
|
|
|
|
router_c1700.chassis = "1751"
|
|
|
|
assert router_c1700.chassis == "1751"
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_1760(hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "1760 chassis", chassis="1760")
|
|
|
|
assert router.chassis == "1760"
|
|
|
|
assert str(router.slots[0]) == "C1700-MB-1FE"
|
|
|
|
router.delete()
|
|
|
|
|
|
|
|
|
|
|
|
def test_chassis_change_to_1760(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.chassis == "1720" # default chassis
|
|
|
|
router_c1700.chassis = "1760"
|
|
|
|
assert router_c1700.chassis == "1760"
|
|
|
|
|
|
|
|
|
|
|
|
def test_iomem(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.iomem == 15 # default value
|
|
|
|
router_c1700.iomem = 20
|
|
|
|
assert router_c1700.iomem == 20
|
|
|
|
|
|
|
|
|
|
|
|
def test_mac_addr(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.mac_addr is not None
|
|
|
|
router_c1700.mac_addr = "aa:aa:aa:aa:aa:aa"
|
|
|
|
assert router_c1700.mac_addr == "aa:aa:aa:aa:aa:aa"
|
|
|
|
|
|
|
|
|
|
|
|
def test_bogus_mac_addr(router_c1700):
|
|
|
|
|
|
|
|
with pytest.raises(DynamipsError):
|
|
|
|
router_c1700.mac_addr = "zz:zz:zz:zz:zz:zz"
|
|
|
|
|
|
|
|
|
|
|
|
def test_system_id(router_c1700):
|
|
|
|
|
|
|
|
assert router_c1700.system_id == "FTX0945W0MY" # default value
|
|
|
|
router_c1700.system_id = "FTX0945W0MO"
|
|
|
|
assert router_c1700.system_id == "FTX0945W0MO"
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_hardware_info(router_c1700):
|
|
|
|
|
|
|
|
router_c1700.get_hardware_info() # FIXME: Dynamips doesn't return anything
|
|
|
|
|
|
|
|
|
|
|
|
def test_install_remove_wic(router_c1700):
|
|
|
|
|
|
|
|
wic = WIC_2T()
|
|
|
|
router_c1700.install_wic(0, wic) # install in WIC slot 0
|
|
|
|
assert router_c1700.slots[0].wics[0]
|
|
|
|
wic = WIC_1ENET()
|
|
|
|
router_c1700.install_wic(1, wic) # install in WIC slot 1
|
|
|
|
assert router_c1700.slots[0].wics[1]
|
|
|
|
router_c1700.uninstall_wic(0) # uninstall WIC from slot 0
|
|
|
|
assert not router_c1700.slots[0].wics[0]
|
|
|
|
|
|
|
|
|
|
|
|
def test_install_wic_into_wrong_slot(router_c1700):
|
|
|
|
|
|
|
|
wic = WIC_2T()
|
|
|
|
with pytest.raises(DynamipsError):
|
|
|
|
router_c1700.install_wic(2, wic) # install in WIC slot 2
|
|
|
|
|
|
|
|
|
|
|
|
def test_install_wic_into_already_occupied_slot(router_c1700):
|
|
|
|
|
|
|
|
wic = WIC_2T()
|
|
|
|
router_c1700.install_wic(0, wic) # install in WIC slot 0
|
|
|
|
wic = WIC_1ENET()
|
|
|
|
with pytest.raises(DynamipsError):
|
|
|
|
router_c1700.install_wic(0, wic) # install in WIC slot 0
|
|
|
|
|
|
|
|
|
|
|
|
def test_wic_add_remove_nio_binding(router_c1700):
|
|
|
|
|
|
|
|
nio = NIO_Null(router_c1700.hypervisor)
|
|
|
|
wic = WIC_2T()
|
|
|
|
router_c1700.install_wic(0, wic) # install WIC in slot 0
|
|
|
|
router_c1700.slot_add_nio_binding(0, 17, nio) # slot 0/17 (slot 0, wic 0, port 1)
|
|
|
|
assert router_c1700.slots[0].ports[17] == nio
|
|
|
|
assert router_c1700.get_slot_nio_bindings(slot_id=0)
|
|
|
|
router_c1700.slot_remove_nio_binding(0, 17) # slot 0/17 (slot 0, wic 0, port 1)
|
|
|
|
assert not router_c1700.get_slot_nio_bindings(slot_id=0)
|
|
|
|
assert not router_c1700.slots[0].ports[17] == nio
|
|
|
|
nio.delete()
|
|
|
|
|
|
|
|
|
|
|
|
def test_wic_add_remove_nio_binding_for_chassis_1760(hypervisor):
|
|
|
|
|
|
|
|
router = C1700(hypervisor, "1760 chassis", chassis="1760")
|
|
|
|
nio = NIO_Null(router.hypervisor)
|
|
|
|
wic = WIC_2T()
|
|
|
|
router.install_wic(1, wic) # install WIC in slot 1
|
|
|
|
router.slot_add_nio_binding(0, 32, nio) # slot 0/17 (slot 0, wic 1, port 0)
|
|
|
|
router.slot_remove_nio_binding(0, 32)
|
|
|
|
assert not router.get_slot_nio_bindings(slot_id=0)
|
|
|
|
nio.delete()
|
|
|
|
router.delete()
|