Rename bfd suite teardown
[integration/test.git] / csit / libraries / Genius.robot
index 6215c506415bbe31d5d9b7827ad3023fd333c2aa..808de018473ff9e2e6df953e372517363d4df814 100644 (file)
@@ -2,27 +2,29 @@
 Documentation     This suite is a common keywords file for genius project.
 Library           Collections
 Library           OperatingSystem
+Library           re
 Library           RequestsLibrary
 Library           SSHLibrary
-Library           re
 Library           string
+Resource          ClusterManagement.robot
+Resource          DataModels.robot
 Resource          KarafKeywords.robot
+Resource          ODLTools.robot
+Resource          OVSDB.robot
 Resource          Utils.robot
+Resource          VpnOperations.robot
 Resource          ../variables/Variables.robot
-Resource          OVSDB.robot
 Resource          ../variables/netvirt/Variables.robot
-Resource          VpnOperations.robot
-Resource          DataModels.robot
 
 *** Variables ***
 @{itm_created}    TZA
 ${genius_config_dir}    ${CURDIR}/../variables/genius
-${Bridge-1}       BR1
-${Bridge-2}       BR2
+${Bridge}         ${INTEGRATION_BRIDGE}
 ${DEFAULT_MONITORING_INTERVAL}    Tunnel Monitoring Interval (for VXLAN tunnels): 1000
-@{GENIUS_DIAG_SERVICES}    OPENFLOW    IFM    ITM    DATASTORE
+@{GENIUS_DIAG_SERVICES}    OPENFLOW    IFM    ITM    DATASTORE    OVSDB
 ${vlan}           0
 ${gateway-ip}     0.0.0.0
+${port_name}      br-int-eth1
 
 *** Keywords ***
 Genius Suite Setup
@@ -37,20 +39,21 @@ Genius Suite Teardown
 
 Start Suite
     [Documentation]    Initial setup for Genius test suites
-    Run_Keyword_If_At_Least_Oxygen    Wait Until Keyword Succeeds    60    2    Check System Status    @{GENIUS_DIAG_SERVICES}
+    Run_Keyword_If_At_Least_Oxygen    Wait Until Keyword Succeeds    60    2    ClusterManagement.Check Status Of Services Is OPERATIONAL    @{GENIUS_DIAG_SERVICES}
     Log    Start the tests
     ${conn_id_1}=    Open Connection    ${TOOLS_SYSTEM_IP}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=30s
     Set Global Variable    ${conn_id_1}
     KarafKeywords.Setup_Karaf_Keywords
     ${karaf_debug_enabled}    BuiltIn.Get_Variable_Value    ${KARAF_DEBUG}    ${False}
     BuiltIn.run_keyword_if    ${karaf_debug_enabled}    KarafKeywords.Execute_Controller_Karaf_Command_On_Background    log:set DEBUG org.opendaylight.genius
+    BuiltIn.Run Keyword And Ignore Error    KarafKeywords.Log_Test_Suite_Start_To_Controller_Karaf
     Login With Public Key    ${TOOLS_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
     Log    ${conn_id_1}
-    Execute Command    sudo ovs-vsctl add-br BR1
-    Execute Command    sudo ovs-vsctl set bridge BR1 protocols=OpenFlow13
-    Execute Command    sudo ovs-vsctl set-controller BR1 tcp:${ODL_SYSTEM_IP}:6633
-    Execute Command    sudo ifconfig BR1 up
-    Execute Command    sudo ovs-vsctl add-port BR1 tap8ed70586-6c -- set Interface tap8ed70586-6c type=tap
+    Execute Command    sudo ovs-vsctl add-br ${Bridge}
+    Execute Command    sudo ovs-vsctl set bridge ${Bridge} protocols=OpenFlow13
+    Execute Command    sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:6633
+    Execute Command    sudo ifconfig ${Bridge} up
+    Execute Command    sudo ovs-vsctl add-port ${Bridge} tap8ed70586-6c -- set Interface tap8ed70586-6c type=tap
     Execute Command    sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:6640
     ${output_1}    Execute Command    sudo ovs-vsctl show
     Log    ${output_1}
@@ -63,10 +66,10 @@ Start Suite
     Set Global Variable    ${conn_id_2}
     Login With Public Key    ${TOOLS_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
     Log    ${conn_id_2}
-    Execute Command    sudo ovs-vsctl add-br BR2
-    Execute Command    sudo ovs-vsctl set bridge BR2 protocols=OpenFlow13
-    Execute Command    sudo ovs-vsctl set-controller BR2 tcp:${ODL_SYSTEM_IP}:6633
-    Execute Command    sudo ifconfig BR2 up
+    Execute Command    sudo ovs-vsctl add-br ${Bridge}
+    Execute Command    sudo ovs-vsctl set bridge ${Bridge} protocols=OpenFlow13
+    Execute Command    sudo ovs-vsctl set-controller ${Bridge} tcp:${ODL_SYSTEM_IP}:6633
+    Execute Command    sudo ifconfig ${Bridge} up
     Execute Command    sudo ovs-vsctl set-manager tcp:${ODL_SYSTEM_IP}:6640
     ${output_2}    Execute Command    sudo ovs-vsctl show
     Log    ${output_2}
@@ -75,13 +78,13 @@ Stop Suite
     Log    Stop the tests
     Switch Connection    ${conn_id_1}
     Log    ${conn_id_1}
-    Execute Command    sudo ovs-vsctl del-br BR1
+    Execute Command    sudo ovs-vsctl del-br ${Bridge}
     Execute Command    sudo ovs-vsctl del-manager
     Write    exit
     close connection
     Switch Connection    ${conn_id_2}
     Log    ${conn_id_2}
-    Execute Command    sudo ovs-vsctl del-br BR2
+    Execute Command    sudo ovs-vsctl del-br ${Bridge}
     Execute Command    sudo ovs-vsctl del-manager
     Write    exit
     close connection
@@ -93,14 +96,6 @@ check establishment
     Should contain    ${check_establishment}    ESTABLISHED
     [Return]    ${check_establishment}
 
-Check Service Status
-    [Arguments]    ${odl_ip}    ${system_ready_state}    ${service_state}    @{service_list}
-    [Documentation]    Issues the karaf shell command showSvcStatus to verify the ready and service states are the same as the arguments passed
-    ${service_status_output}    Issue_Command_On_Karaf_Console    showSvcStatus -n ${odl_ip}    ${odl_ip}    8101
-    Should Contain    ${service_status_output}    ${system_ready_state}
-    : FOR    ${service}    IN    @{service_list}
-    \    Should Match Regexp    ${service_status_output}    ${service} +: ${service_state}
-
 Create Vteps
     [Arguments]    ${Dpn_id_1}    ${Dpn_id_2}    ${TOOLS_SYSTEM_IP}    ${TOOLS_SYSTEM_2_IP}    ${vlan}    ${gateway-ip}
     [Documentation]    This keyword creates VTEPs between ${TOOLS_SYSTEM_IP} and ${TOOLS_SYSTEM_2_IP}
@@ -138,46 +133,67 @@ Get Dpn Ids
     [Arguments]    ${connection_id}
     [Documentation]    This keyword gets the DPN id of the switch after configuring bridges on it.It returns the captured DPN id.
     Switch connection    ${connection_id}
-    ${cmd}    set Variable    sudo ovs-vsctl show | grep Bridge | awk -F "\\"" '{print $2}'
-    ${Bridgename1}    Execute command    ${cmd}
-    log    ${Bridgename1}
-    ${output1}    Execute command    sudo ovs-ofctl show -O Openflow13 ${Bridgename1} | head -1 | awk -F "dpid:" '{ print $2 }'
+    ${output1}    Execute command    sudo ovs-ofctl show -O Openflow13 ${Bridge} | head -1 | awk -F "dpid:" '{ print $2 }'
     log    ${output1}
     # "echo \$\(\(16\#${output1}\)\) command below converts ovs dpnid (i.e., output1) from hexadecimal to decimal."
     ${Dpn_id}    Execute command    echo \$\(\(16\#${output1}\)\)
     log    ${Dpn_id}
     [Return]    ${Dpn_id}
 
-BFD Suite Stop
+BFD Suite Teardown
     [Documentation]    Run at end of BFD suite
     Delete All Vteps
     Stop Suite
 
 Delete All Vteps
     [Documentation]    This will delete vtep.
-    ${resp}    RequestsLibrary.Delete Request    session    ${CONFIG_API}/itm:transport-zones/    data=${vtep_body}
-    Should Be Equal As Strings    ${resp.status_code}    200
+    ${dpn_id_1} =    Genius.Get Dpn Ids    ${conn_id_1}
+    ${dpn_id_2} =    Genius.Get Dpn Ids    ${conn_id_2}
+    ${cmd} =    BuiltIn.Set Variable    tep:delete ${dpn_id_1} ${port_name} ${vlan} ${TOOLS_SYSTEM_IP} ${subnet}/24 null ${itm_created[0]}
+    ${cmd2} =    BuiltIn.Set Variable    tep:delete ${dpn_id_2} ${port_name} ${vlan} ${TOOLS_SYSTEM_2_IP} ${subnet}/24 null ${itm_created[0]}
+    KarafKeywords.Issue Command On Karaf Console    ${cmd}
+    KarafKeywords.Issue Command On Karaf Console    tep:commit
+    KarafKeywords.Issue Command On Karaf Console    ${cmd2}
+    KarafKeywords.Issue Command On Karaf Console    tep:commit
+    ${resp} =    RequestsLibrary.Delete Request    session    ${CONFIG_API}/itm:transport-zones/    data=${vtep_body}
     Log    "Before disconnecting CSS with controller"
     ${output} =    Issue Command On Karaf Console    ${TEP_SHOW}
+    BuiltIn.Should Not Contain    ${output}    ${itm_created[0]}
     BuiltIn.Wait Until Keyword Succeeds    30    5    Verify All Tunnel Delete on DS
+    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:not-hosted-transport-zones/
+    ${respjson}    RequestsLibrary.To Json    ${resp.content}    pretty_print=True
+    BuiltIn.Log    ${respjson}
+    BuiltIn.Should Not Contain    ${resp.content}    ${itm_created[0]}
+
+Genius Test Setup
+    [Documentation]    Genius test case setup
+    BuiltIn.Run Keyword And Ignore Error    KarafKeywords.Log_Testcase_Start_To_Controller_Karaf
 
 Genius Test Teardown
-    [Arguments]    ${data_models}
-    OVSDB.Get DumpFlows And Ovsconfig    ${conn_id_1}    BR1
-    OVSDB.Get DumpFlows And Ovsconfig    ${conn_id_2}    BR2
+    [Arguments]    ${data_models}    ${test_name}=${SUITE_NAME}.${TEST_NAME}    ${fail}=${FAIL_ON_EXCEPTIONS}
+    OVSDB.Get DumpFlows And Ovsconfig    ${conn_id_1}    ${Bridge}
+    OVSDB.Get DumpFlows And Ovsconfig    ${conn_id_2}    ${Bridge}
     BuiltIn.Run Keyword And Ignore Error    DataModels.Get Model Dump    ${ODL_SYSTEM_IP}    ${data_models}
+    KarafKeywords.Fail If Exceptions Found During Test    ${test_name}    fail=${fail}
+    ODLTools.Get All    node_ip=${ODL_SYSTEM_IP}    test_name=${test_name}
+
+Genius Suite Debugs
+    [Arguments]    ${data_models}
+    Genius Test Teardown    ${data_models}    test_name=${SUITE_NAME}    fail=False
 
 ITM Direct Tunnels Start Suite
     [Documentation]    start suite for itm scalability
     ClusterManagement.ClusterManagement_Setup
     ClusterManagement.Stop_Members_From_List_Or_All
-    ClusterManagement.Clean_Journals_Data_And_Snapshots_On_List_Or_All
-    Run Command On Remote System And Log    ${ODL_SYSTEM_IP}    sed -i -- 's/<itm-direct-tunnels>false/<itm-direct-tunnels>true/g' ${GENIUS_IFM_CONFIG_FLAG}
+    : FOR    ${i}    IN RANGE    ${NUM_ODL_SYSTEM}
+    \    Run Command On Remote System And Log    ${ODL_SYSTEM_${i+1}_IP}    sed -i -- 's/<itm-direct-tunnels>false/<itm-direct-tunnels>true/g' ${GENIUS_IFM_CONFIG_FLAG}
     ClusterManagement.Start_Members_From_List_Or_All
     Genius Suite Setup
 
 ITM Direct Tunnels Stop Suite
-    Run Command On Remote System And Log    ${ODL_SYSTEM_IP}    sed -i -- 's/<itm-direct-tunnels>true/<itm-direct-tunnels>false/g' ${GENIUS_IFM_CONFIG_FLAG}
+    : FOR    ${i}    IN RANGE    ${NUM_ODL_SYSTEM}
+    \    Run Command On Remote System And Log    ${ODL_SYSTEM_${i+1}_IP}    sed -i -- 's/<itm-direct-tunnels>true/<itm-direct-tunnels>false/g' ${GENIUS_IFM_CONFIG_FLAG}
     Genius Suite Teardown
 
 Verify Tunnel Monitoring is on
@@ -199,8 +215,8 @@ Get ITM
     ...    ${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    ${TUNNEL_TRANSPORTZONE}/transport-zone/${itm_created[0]}    ${Itm-no-vlan}
 
 Check Tunnel Delete On OVS
@@ -243,12 +259,6 @@ Verify Tunnel Status as UP
     ${Expected_Tunnel_Count}    Set Variable    ${Expected_Node_Count*${Expected_Node_Count - 1}}
     Should Be Equal As Strings    ${Actual_Tunnel_Count}    ${Expected_Tunnel_Count}
 
-Check System Status
-    [Arguments]    @{service_list}
-    [Documentation]    This keyword will verify whether all the services are in operational and all nodes are active based on the number of odl systems
-    : FOR    ${i}    IN RANGE    ${NUM_ODL_SYSTEM}
-    \    Check Service Status    ${ODL_SYSTEM_${i+1}_IP}    ACTIVE    OPERATIONAL    @{service_list}
-
 Verify Tunnel Status
     [Arguments]    ${tunnel_names}    ${tunnel_status}
     [Documentation]    Verifies if all tunnels in the input, has the expected status(UP/DOWN/UNKNOWN)
@@ -307,8 +317,10 @@ SRM Start Suite
     ${tunnel} =    BuiltIn.Wait Until Keyword Succeeds    40    20    Genius.Get Tunnel    ${dpn_Id_1}    ${dpn_Id_2}
     ...    odl-interface:tunnel-type-vxlan
     BuiltIn.Wait Until Keyword Succeeds    60s    5s    Genius.Verify Tunnel Status as UP    TZA
+    Genius Suite Debugs    ${data_models}
 
 SRM Stop Suite
     [Documentation]    Stop suite for service recovery.
     Delete All Vteps
+    Genius Suite Debugs    ${data_models}
     Genius Suite Teardown