Documentation Test Suite for ITM
Suite Setup Genius Suite Setup
Suite Teardown Genius Suite Teardown
+Test Setup Genius Test Setup
Test Teardown Genius Test Teardown ${data_models}
Library Collections
Library OperatingSystem
Variables ../../variables/genius/Modules.py
Resource ../../libraries/DataModels.robot
Resource ../../libraries/Genius.robot
+Resource ../../libraries/KarafKeywords.robot
Resource ../../libraries/Utils.robot
+Resource ../../variables/netvirt/Variables.robot
Resource ../../variables/Variables.robot
*** Variables ***
@{itm_created} TZA
${genius_config_dir} ${CURDIR}/../../variables/genius
-${Bridge-1} BR1
-${Bridge-2} BR2
+@{VLAN} 0 100 101
*** Test Cases ***
Create and Verify VTEP -No Vlan
[Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs without VLAN and Gateway configured in Json.
${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1}
${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2}
- ${vlan}= Set Variable 0
${gateway-ip}= Set Variable 0.0.0.0
- Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan} ${gateway-ip}
- Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} ${vlan}
+ Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} @{VLAN}[0] ${gateway-ip}
+ Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} @{VLAN}[0]
... ${Dpn_id_1} ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${TOOLS_SYSTEM_2_IP}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Wait Until Keyword Succeeds 40 20 Get Tunnel ${Dpn_id_1} ${Dpn_id_2}
... ${tunnel-1} ${tunnel-type}
Wait Until Keyword Succeeds 40 10 Genius.Ovs Verification For 2 Dpn ${conn_id_2} ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP}
... ${tunnel-2} ${tunnel-type}
- ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge-1} ${Bridge-2}
- ... ${tunnel-1} ${tunnel-2} ${OPERATIONAL_TOPO_API}
+ ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge} ${tunnel-1}
+ ... ${tunnel-2} ${OPERATIONAL_TOPO_API}
${return} Validate interface state ${tunnel-1} ${Dpn_id_1} ${tunnel-2} ${Dpn_id_2}
log ${return}
${lower-layer-if-1} Get from List ${return} 0
Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.content} ${Dpn_id_1} ${tunnel-1}
Should Contain ${resp.content} ${Dpn_id_2} ${tunnel-2}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge-1} ${port-num-1}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge-2} ${port-num-2}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge} ${port-num-1}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge} ${port-num-2}
${resp} RequestsLibrary.Get Request session ${OPERATIONAL_API}/opendaylight-inventory:nodes/
${respjson} RequestsLibrary.To Json ${resp.content} pretty_print=True
Log ${respjson}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Get_Tunnel ${Dpn_id_1} ${Dpn_id_2} ${type}
${tunnel-2} Get_Tunnel ${Dpn_id_2} ${Dpn_id_1} ${type}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_1}/${port_name}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_2}/${port_name}
+ ${output} KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
+ BuiltIn.Should Not Contain ${output} ${itm_created[0]}
Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_API}/itm-state:tunnels_state/
- Should Not Contain ${resp} ${tunnel-1} ${tunnel-2}
+ ${resp} Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
+ BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_1} ${tunnel-1}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_2} ${tunnel-2}
[Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs without VLAN and Gateway configured in Json.
${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1}
${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2}
- ${vlan}= Set Variable 0
${gateway-ip}= Set Variable ::
${TOOLS_SYSTEM_IP} Set Variable fd96:2a25:4ad3:3c7d:0:0:0:1000
${TOOLS_SYSTEM_2_IP} Set Variable fd96:2a25:4ad3:3c7d:0:0:0:2000
- Create Vteps IPv6 ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan} ${gateway-ip}
- Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} ${vlan}
+ Create Vteps IPv6 ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} @{VLAN}[0] ${gateway-ip}
+ Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} @{VLAN}[0]
... ${Dpn_id_1} ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${TOOLS_SYSTEM_2_IP}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Wait Until Keyword Succeeds 40 10 Get Tunnel ${Dpn_id_1} ${Dpn_id_2}
... ${tunnel-1} ${tunnel-type}
Wait Until Keyword Succeeds 40 10 Genius.Ovs Verification For 2 Dpn ${conn_id_2} ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP}
... ${tunnel-2} ${tunnel-type}
- ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge-1} ${Bridge-2}
- ... ${tunnel-1} ${tunnel-2} ${OPERATIONAL_TOPO_API}
+ ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge} ${tunnel-1}
+ ... ${tunnel-2} ${OPERATIONAL_TOPO_API}
Delete and Verify VTEP IPv6 -No Vlan
[Documentation] This Delete testcase , deletes the ITM tunnel created between 2 dpns.
${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1}
${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2}
${type} Set Variable odl-interface:tunnel-type-vxlan
+ ${ipv6_1} Set Variable fd96:2a25:4ad3:3c7d:0:0:0:1000
+ ${ipv6_2} Set Variable fd96:2a25:4ad3:3c7d:0:0:0:2000
${tunnel-1} Get_Tunnel ${Dpn_id_1} ${Dpn_id_2} ${type}
${tunnel-2} Get_Tunnel ${Dpn_id_2} ${Dpn_id_1} ${type}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_1}/${port_name}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_2}/${port_name}
+ ${output} KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
+ BuiltIn.Should Not Contain ${output} ${itm_created[0]}
Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
- ${resp} RequestsLibrary.Get Request session ${OPERATIONAL_API}/itm-state:tunnels_state/
- Should Not Contain ${resp} ${tunnel-1} ${tunnel-2}
+ ${resp} Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
+ BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_1} ${tunnel-1}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_2} ${tunnel-2}
[Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs with VLAN and \ without Gateway configured in Json.
${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1}
${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2}
- ${vlan}= Set Variable 100
${gateway-ip}= Set Variable 0.0.0.0
- Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan} ${gateway-ip}
+ Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} @{VLAN}[1] ${gateway-ip}
${get} Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet}
- ... ${vlan} ${Dpn_id_1} ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${TOOLS_SYSTEM_2_IP}
+ ... @{VLAN}[1] ${Dpn_id_1} ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${TOOLS_SYSTEM_2_IP}
Log ${get}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Wait Until Keyword Succeeds 40 10 Get Tunnel ${Dpn_id_1} ${Dpn_id_2}
Wait Until Keyword Succeeds 40 10 Genius.Ovs Verification For 2 Dpn ${conn_id_2} ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP}
... ${tunnel-2} ${tunnel-type}
${url_2} Set Variable ${OPERATIONAL_API}/network-topology:network-topology/
- Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge-1} ${Bridge-2} ${tunnel-1}
- ... ${tunnel-2} ${url_2}
+ Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge} ${tunnel-1} ${tunnel-2}
+ ... ${url_2}
${return} Validate interface state ${tunnel-1} ${Dpn_id_1} ${tunnel-2} ${Dpn_id_2}
log ${return}
${lower-layer-if-1} Get from List ${return} 0
Log ${respjson}
Should Contain ${resp.content} ${Dpn_id_1} ${tunnel-1}
Should Contain ${resp.content} ${Dpn_id_2} ${tunnel-2}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge-1} ${port-num-1}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge-2} ${port-num-2}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge} ${port-num-1}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge} ${port-num-2}
${resp} RequestsLibrary.Get Request session ${OPERATIONAL_API}/opendaylight-inventory:nodes/
${respjson} RequestsLibrary.To Json ${resp.content} pretty_print=True
Log ${respjson}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Get_Tunnel ${Dpn_id_1} ${Dpn_id_2} ${type}
${tunnel-2} Get_Tunnel ${Dpn_id_2} ${Dpn_id_1} ${type}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_1}/${port_name}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_2}/${port_name}
+ ${output} KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
+ BuiltIn.Should Not Contain ${output} ${itm_created[0]}
Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
+ ${resp} Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
+ BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
Wait Until Keyword Succeeds 40 10 Genius.Check ITM Tunnel State ${tunnel-1} ${tunnel-2}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_1} ${tunnel-1}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_2} ${tunnel-2}
[Documentation] This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs with VLAN and Gateway configured in Json.
${Dpn_id_1} Genius.Get Dpn Ids ${conn_id_1}
${Dpn_id_2} Genius.Get Dpn Ids ${conn_id_2}
- ${vlan}= Set Variable 101
${substr} Should Match Regexp ${TOOLS_SYSTEM_IP} [0-9]\{1,3}\.[0-9]\{1,3}\.[0-9]\{1,3}\.
${subnet} Catenate ${substr}0
${gateway-ip} Catenate ${substr}1
+ Set Suite Variable ${GATEWAY_IP} ${gateway-ip}
Log ${subnet}
- Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan} ${gateway-ip}
- Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} ${vlan}
+ Genius.Create Vteps ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} @{VLAN}[2] ${gateway-ip}
+ Wait Until Keyword Succeeds 40 10 Get ITM ${itm_created[0]} ${subnet} @{VLAN}[2]
... ${Dpn_id_1} ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${TOOLS_SYSTEM_2_IP}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Wait Until Keyword Succeeds 40 10 Get Tunnel ${Dpn_id_1} ${Dpn_id_2}
... ${tunnel-1} ${tunnel-type}
Wait Until Keyword Succeeds 40 10 Genius.Ovs Verification For 2 Dpn ${conn_id_2} ${TOOLS_SYSTEM_2_IP} ${TOOLS_SYSTEM_IP}
... ${tunnel-2} ${tunnel-type}
- ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge-1} ${Bridge-2}
- ... ${tunnel-1} ${tunnel-2} ${OPERATIONAL_TOPO_API}
+ ${resp} Wait Until Keyword Succeeds 40 10 Get Network Topology with Tunnel ${Bridge} ${tunnel-1}
+ ... ${tunnel-2} ${OPERATIONAL_TOPO_API}
Log ${resp}
${return} Validate interface state ${tunnel-1} ${Dpn_id_1} ${tunnel-2} ${Dpn_id_2}
log ${return}
Log ${respjson}
Should Contain ${resp.content} ${Dpn_id_1} ${tunnel-1}
Should Contain ${resp.content} ${Dpn_id_2} ${tunnel-2}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge-1} ${port-num-1}
- Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge-2} ${port-num-2}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_1} ${Bridge} ${port-num-1}
+ Wait Until Keyword Succeeds 40 10 Genius.Check Table0 Entry For 2 Dpn ${conn_id_2} ${Bridge} ${port-num-2}
${resp} RequestsLibrary.Get Request session ${OPERATIONAL_API}/opendaylight-inventory:nodes/
${respjson} RequestsLibrary.To Json ${resp.content} pretty_print=True
Log ${respjson}
${type} Set Variable odl-interface:tunnel-type-vxlan
${tunnel-1} Get_Tunnel ${Dpn_id_1} ${Dpn_id_2} ${type}
${tunnel-2} Get_Tunnel ${Dpn_id_2} ${Dpn_id_1} ${type}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_1}/${port_name}
+ Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/subnets/${subnet}%2F24/vteps/${Dpn_id_2}/${port_name}
+ ${output} KarafKeywords.Issue Command On Karaf Console ${TEP_SHOW}
+ BuiltIn.Should Not Contain ${output} ${itm_created[0]}
Remove All Elements At URI And Verify ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
+ ${resp} Utils.Get Data From URI session ${CONFIG_API}/itm:transport-zones/
+ BuiltIn.Should Not Contain ${resp} ${itm_created[0]}
Wait Until Keyword Succeeds 40 10 Genius.Check ITM Tunnel State ${tunnel-1} ${tunnel-2}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_1} ${tunnel-1}
Wait Until Keyword Succeeds 40 10 Genius.Check Tunnel Delete On OVS ${conn_id_2} ${tunnel-2}
${subnet} Catenate ${substr}0
Log ${subnet}
Set Global Variable ${subnet}
- ${vlan}= Set Variable ${vlan}
${gateway-ip}= Set Variable ${gateway-ip}
${body} Genius.Set Json ${Dpn_id_1} ${Dpn_id_2} ${TOOLS_SYSTEM_IP} ${TOOLS_SYSTEM_2_IP} ${vlan}
... ${gateway-ip} ${subnet}
... ${TOOLS_SYSTEM_2_IP}
[Documentation] It returns the created ITM Transport zone with the passed values during the creation is done.
Log ${itm_created[0]},${subnet}, ${vlan}, ${Dpn_id_1},${TOOLS_SYSTEM_IP}, ${Dpn_id_2}, ${TOOLS_SYSTEM_2_IP}
- @{Itm-no-vlan} Create List ${itm_created[0]} ${subnet} ${vlan} ${Dpn_id_1} ${Bridge-1}-eth1
- ... ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${Bridge-2}-eth1 ${TOOLS_SYSTEM_2_IP}
+ @{Itm-no-vlan} Create List ${itm_created[0]} ${subnet} ${vlan} ${Dpn_id_1} ${port_name}
+ ... ${TOOLS_SYSTEM_IP} ${Dpn_id_2} ${port_name} ${TOOLS_SYSTEM_2_IP}
Check For Elements At URI ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]} ${Itm-no-vlan}
Get Network Topology with Tunnel
- [Arguments] ${Bridge-1} ${Bridge-2} ${tunnel-1} ${tunnel-2} ${url}
+ [Arguments] ${Bridge} ${tunnel-1} ${tunnel-2} ${url}
[Documentation] Returns the Network topology with Tunnel info in it.
- @{bridges} Create List ${Bridge-1} ${Bridge-2} ${tunnel-1} ${tunnel-2}
+ @{bridges} Create List ${Bridge} ${tunnel-1} ${tunnel-2}
Check For Elements At URI ${url} ${bridges}
Get Network Topology without Tunnel