suite change for ITM Auto Tunnel
[integration/test.git] / csit / suites / genius / ITM_Direct_Tunnels.robot
index 4d5ec867b66b0d02f247ff47b9eaaf5d758ebb76..07768346ab02b287499bddd7c745c279dde51209 100644 (file)
@@ -2,7 +2,8 @@
 Documentation     This test suite is to by-pass interface manager and create/delete the tunnels between the switches directly inorder for ITM to scale and build mesh among more number of switches.
 Suite Setup       ITM Direct Tunnels Start Suite
 Suite Teardown    ITM Direct Tunnels Stop Suite
-Test Teardown     Get Model Dump    ${ODL_SYSTEM_IP}    ${data_models}
+Test Setup        Genius Test Setup
+Test Teardown     Genius Test Teardown    ${data_models}
 Library           OperatingSystem
 Library           String
 Library           RequestsLibrary
@@ -16,20 +17,22 @@ Resource          ../../libraries/ClusterManagement.robot
 Resource          ../../libraries/KarafKeywords.robot
 Resource          ../../libraries/Utils.robot
 Resource          ../../libraries/Genius.robot
+Resource          ../../variables/netvirt/Variables.robot
 Resource          ../../variables/Variables.robot
 Resource          ../../libraries/OVSDB.robot
 
 *** Variables ***
+@{PORT}           BR1-eth1    BR2-eth1
+${VLAN}           0
 
 *** Test Cases ***
 Create and Verify VTEP
     [Documentation]    This testcase creates a Internal Transport Manager - ITM tunnel between 2 DPNs
     ${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}    ${gateway-ip}
+    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}
     ${type}    Set Variable    odl-interface:tunnel-type-vxlan
     ${tunnel-1}    Wait Until Keyword Succeeds    40    20    Get_Tunnel    ${Dpn_id_1}    ${Dpn_id_2}
@@ -53,12 +56,36 @@ Create and Verify VTEP
     ${check-4}    Wait Until Keyword Succeeds    40    10    Genius.Check Table0 Entry For 2 Dpn    ${conn_id_2}    ${Bridge-2}
     ...    ${Port_num2}
 
+Verify VTEP After Restarting OVS
+    [Documentation]    Verify Testcase, Verifying tunnel state by restarting OVS
+    Wait Until Keyword Succeeds    20    2    Genius.Verify Tunnel Status as UP    TZA
+    OVSDB.Restart OVSDB    ${TOOLS_SYSTEM_IP}
+    Wait Until Keyword Succeeds    20    2    Genius.Verify Tunnel Status as UP    TZA
+
+Verify VTEP After Restarting Controller
+    [Documentation]    Verify Testcase, Verifying tunnel state by restarting CONTROLLER
+    Genius.Verify Tunnel Status as UP    TZA
+    ClusterManagement.Stop_Members_From_List_Or_All
+    ClusterManagement.Start_Members_From_List_Or_All
+    Wait Until Keyword Succeeds    60    3    ClusterManagement.Check Status Of Services Is OPERATIONAL
+    Wait Until Keyword Succeeds    30    3    Genius.Verify Tunnel Status as UP    TZA
+
+Verify Tunnels By Disabling BFD
+    [Documentation]    This test case will verify tunnels after disabling BFD and verifies tunnel status as unknown after stopping OVS.
+    ${result} =    Run Keyword And Return Status    Verify Tunnel Monitoring is on
+    Run Keyword If    '${result}' == 'True'    Disable_Tunnel_Monitoring
+    ${tunnels_on_OVS} =    Genius.Get Tunnels On OVS    ${conn_id_1}
+    OVSDB.Stop OVS    ${TOOLS_SYSTEM_IP}
+    Genius.Verify Tunnel Status    ${tunnels_on_OVS}    UNKNOWN
+    OVSDB.Start OVS    ${TOOLS_SYSTEM_IP}
+    Wait Until Keyword Succeeds    20    2    Genius.Verify Tunnel Status as UP    TZA
+
 Verify Tunnels By Enabling BFD
     [Documentation]    This test case will check the tunnel exists by bringing up/down a switch and check tunnels exist by enabling BFD
     ${result}    Run Keyword And Return Status    Verify Tunnel Monitoring is on
     Run Keyword If    '${result}' == 'False'    Enable_Tunnel_monitoring
-    Verify Tunnel State    ${TOOLS_SYSTEM_1_IP}
-    Verify Tunnel State    ${TOOLS_SYSTEM_2_IP}
+    Verify Tunnel State After OVS Restart    ${TOOLS_SYSTEM_IP}
+    Verify Tunnel State After OVS Restart    ${TOOLS_SYSTEM_2_IP}
 
 Delete and Verify VTEP
     [Documentation]    This Delete testcase , deletes the ITM tunnel created between 2 dpns.
@@ -66,11 +93,23 @@ Delete and Verify VTEP
     ${Dpn_id_2}    Genius.Get Dpn Ids    ${conn_id_2}
     ${tunnel-1}    Get_Tunnel    ${Dpn_id_1}    ${Dpn_id_2}
     ${tunnel-2}    Get_Tunnel    ${Dpn_id_2}    ${Dpn_id_1}
-    Remove All Elements At URI And Verify    ${CONFIG_API}/itm:transport-zones/transport-zone/${itm_created[0]}/
+    ${cmd1}    Set Variable    tep:delete ${Dpn_id_1} @{PORT}[0] ${VLAN} ${TOOLS_SYSTEM_IP} ${subnet}/24 null ${itm_created[0]}
+    ${cmd2}    Set Variable    tep:delete ${Dpn_id_2} @{PORT}[1] ${VLAN} ${TOOLS_SYSTEM_2_IP} ${subnet}/24 null ${itm_created[0]}
+    KarafKeywords.Issue Command On Karaf Console    ${cmd1}
+    KarafKeywords.Issue Command On Karaf Console    tep:commit
+    KarafKeywords.Issue Command On Karaf Console    ${cmd2}
+    KarafKeywords.Issue Command On Karaf Console    tep:commit
+    ${output}    KarafKeywords.Issue Command On Karaf Console    ${TEP_SHOW}
+    BuiltIn.Should Not Contain    ${output}    ${itm_created[0]}
+    BuiltIn.Run Keyword And Ignore Error    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}
     ${Ovs-del-1}    Wait Until Keyword Succeeds    40    10    Genius.Check Tunnel Delete On OVS    ${conn_id_1}    ${tunnel-1}
     ${Ovs-del-2}    Wait Until Keyword Succeeds    40    10    Genius.Check Tunnel Delete On OVS    ${conn_id_2}    ${tunnel-2}
+    ${resp}    RequestsLibrary.Get Request    session    ${OPERATIONAL_API}/itm:not-hosted-transport-zones/
+    ${respjson}    RequestsLibrary.To Json    ${resp.content}    pretty_print=True
+    Log    ${respjson}
+    BuiltIn.Should Not Contain    ${resp.content}    ${itm_created[0]}
 
 *** Keywords ***
 Get_Tunnel
@@ -98,17 +137,17 @@ Enable_Tunnel_Monitoring
     [Documentation]    In this we will enable tunnel monitoring by tep:enable command running in karaf console
     ${output}    Issue_Command_On_Karaf_Console    tep:enable-tunnel-monitor true
 
-Verify Tunnel State
+Verify Tunnel State After OVS Restart
     [Arguments]    ${TOOLS_SYSTEM_IP}
     [Documentation]    In this we will Verify Tunnel State by Stopping/Starting Switch
-    OVSDB.Stop OVSDB    ${TOOLS_SYSTEM_IP}
+    OVSDB.Stop OVS    ${TOOLS_SYSTEM_IP}
     Wait Until Keyword Succeeds    2min    20 sec    Verify Tunnel Down
-    OVSDB.Start OVSDB    ${TOOLS_SYSTEM_IP}
-    Wait Until Keyword Succeeds    2min    20 sec    Verify Tunnel Status as UP
+    OVSDB.Start OVS    ${TOOLS_SYSTEM_IP}
+    Wait Until Keyword Succeeds    2min    20 sec    Genius.Verify Tunnel Status as UP    TZA
 
 Verify Tunnel Down
     [Documentation]    In this we will check whether tunnel is in down or not
-    ${output}=    Issue Command On Karaf Console    ${TEP_SHOW_STATE}
+    ${output}=    KarafKeywords.Issue Command On Karaf Console    ${TEP_SHOW_STATE}
     Should Contain    ${output}    DOWN
 
 Get Port Number
@@ -123,3 +162,7 @@ Get Port Number
     ${port_num}    Get From List    ${port}    0
     Should Contain    ${check-1}    ${port_num}
     [Return]    ${port_num}
+
+Disable_Tunnel_Monitoring
+    [Documentation]    In this we will disable tunnel monitoring by tep:enable command running in karaf console
+    ${output}    Issue_Command_On_Karaf_Console    tep:enable-tunnel-monitor false