Update Robot Framework format - step 13
[integration/test.git] / csit / suites / ovsdb / Southbound_Cluster / 010__Ovsdb_Southbound_Cluster.robot
index 42236715876ac334753bef39246908a16f36873b..0a1f4a4a9e24f075f62ffc7ee369e5f2b1a8e36f 100644 (file)
 *** Settings ***
-Documentation     Test suite for Ovsdb Southbound Cluster
-Suite Setup       Create Controller Sessions
-Suite Teardown    Delete All Sessions
-Library           RequestsLibrary
-Resource          ../../../libraries/ClusterOvsdb.robot
-Resource          ../../../libraries/ClusterKeywords.robot
-Resource          ../../../libraries/MininetKeywords.robot
-Variables         ../../../variables/Variables.py
-
-*** Variables ***
-${SOUTHBOUND_CONFIG_API}    ${CONFIG_TOPO_API}/topology/ovsdb:1/node/ovsdb:%2F%2F${MININET}:${OVSDBPORT}
-${OVSDB_CONFIG_DIR}    ${CURDIR}/../../../variables/ovsdb
-${BRIDGE}         br01
+Documentation       Test suite for Ovsdb Southbound Cluster - Owner failover and recover
 
-*** Test Cases ***
-Create Original Cluster List
-    [Documentation]    Create original cluster list.
-    ${original_cluster_list}    Create Controller Index List
-    Set Suite Variable    ${original_cluster_list}
-    Log    ${original_cluster_list}
+Library             Collections
+Library             RequestsLibrary
+Resource            ../../../libraries/ClusterManagement.robot
+Resource            ../../../libraries/ClusterOvsdb.robot
+Resource            ../../../libraries/SetupUtils.robot
+Resource            ../../../variables/Variables.robot
+
+Suite Setup         Suite Setup
+Suite Teardown      Delete All Sessions
+Test Setup          SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
 
+
+*** Test Cases ***
 Check Shards Status Before Fail
     [Documentation]    Check Status for all shards in Ovsdb application.
-    Check Ovsdb Shards Status    ${original_cluster_list}
+    ClusterOvsdb.Check Ovsdb Shards Status
 
-Start Mininet Multiple Connections
-    [Documentation]    Start mininet with connection to all cluster instances.
-    ${mininet_conn_id}    Add Multiple Managers to OVS    ${TOOLS_SYSTEM_IP}    ${original_cluster_list}
-    Set Suite Variable    ${mininet_conn_id}
+Start OVS Multiple Connections
+    [Documentation]    Connect OVS to all cluster instances.
+    ${ovsdb_uuid} =    OVSDB.Add Multiple Managers to OVS
+    Set Suite Variable    ${ovsdb_uuid}
 
 Check Entity Owner Status And Find Owner and Candidate Before Fail
     [Documentation]    Check Entity Owner Status and identify owner and candidate.
-    ${original_owner}    ${original_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${original_cluster_list}
-    ${original_candidate}=    Get From List    ${original_candidates_list}    0
-    Set Suite Variable    ${original_owner}
-    Set Suite Variable    ${original_candidate}
+    ${original_owner}    ${original_candidate_list} =    ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device
+    ...    ovsdb://uuid/${ovsdb_uuid}
+    ...    1
+    ${original_candidate} =    Collections.Get From List    ${original_candidate_list}    0
+    BuiltIn.Set Suite Variable    ${original_owner}
+    BuiltIn.Set Suite Variable    ${original_candidate_list}
+    BuiltIn.Set Suite Variable    ${original_candidate}
+
+Create Bridge Manually and Verify Before Fail
+    [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Bridge Manually And Verify
+
+Add Port Manually and Verify Before Fail
+    [Documentation]    Add port with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Port To The Manual Bridge And Verify
+
+Create Tap Device Before Fail
+    [Documentation]    Create tap devices to add to the bridge in ovs
+    ClusterOvsdb.Create Sample Tap Device
+
+Add Tap Device Manually and Verify Before Fail
+    [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify
+
+Delete the Bridge Manually and Verify Before Fail
+    [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge Manually And Verify
 
 Create Bridge In Owner and Verify Before Fail
     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
-    Create Bridge And Verify    ${original_cluster_list}    ${original_owner}
-    [Teardown]    Report_Failure_Due_To_Bug    4908
\ No newline at end of file
+    ClusterOvsdb.Create Sample Bridge And Verify    ${original_owner}
+
+Create Port In Owner and Verify Before Fail
+    [Documentation]    Create Port in Owner and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Port And Verify    ${original_owner}
+
+Modify the destination IP of Port In Owner Before Fail
+    [Documentation]    Modify the dst ip of existing port in Owner.
+    ClusterOvsdb.Modify the destination IP of Sample Port    ${original_owner}
+
+Verify Port Is Modified Before Fail
+    [Documentation]    Verify port is modified in all instances.
+    ClusterOvsdb.Verify Sample Port Is Modified
+
+Delete Port In Owner Before Fail
+    [Documentation]    Delete port in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Port And Verify    ${original_owner}
+
+Delete Bridge In Owner And Verify Before Fail
+    [Documentation]    Delete bridge in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge And Verify    ${original_owner}
+
+Kill Owner Instance
+    [Documentation]    Kill Owner Instance and verify it is dead
+    ClusterManagement.Kill Single Member    ${original_owner}
+    BuiltIn.Set Suite Variable    ${new_cluster_list}    ${original_candidate_list}
+
+Check Shards Status After Fail
+    [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
+    ClusterOvsdb.Check Ovsdb Shards Status After Cluster Event    ${new_cluster_list}
+
+Check Entity Owner Status And Find Owner and Candidate After Fail
+    [Documentation]    Check Entity Owner Status and identify owner and candidate.
+    ${new_owner}    ${new_candidate_list} =    ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device
+    ...    ovsdb://uuid/${ovsdb_uuid}
+    ...    ${original_candidate}
+    ...    ${new_cluster_list}
+    ${new_candidate} =    Collections.Get From List    ${new_candidate_list}    0
+    BuiltIn.Set Suite Variable    ${new_owner}
+    BuiltIn.Set Suite Variable    ${new_candidate}
+
+Create Bridge Manually and Verify After Fail
+    [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Bridge Manually And Verify    controller_index_list=${new_cluster_list}
+
+Add Port Manually and Verify After Fail
+    [Documentation]    Add port with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Port To The Manual Bridge And Verify    controller_index_list=${new_cluster_list}
+
+Create Tap Device After Fail
+    [Documentation]    Create tap devices to add to the bridge in ovs
+    ClusterOvsdb.Create Sample Tap Device
+
+Add Tap Device Manually and Verify After Fail
+    [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify    controller_index_list=${new_cluster_list}
+
+Delete the Bridge Manually and Verify After Fail
+    [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge Manually And Verify    controller_index_list=${new_cluster_list}
+
+Create Bridge In Owner and Verify After Fail
+    [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Bridge And Verify    ${new_owner}    ${new_cluster_list}
+
+Create Port In Owner and Verify After Fail
+    [Documentation]    Create Port in Owner and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Port And Verify    ${new_owner}    ${new_cluster_list}
+
+Modify the destination IP of Port In Owner After Fail
+    [Documentation]    Modify the dst ip of existing port in Owner.
+    ClusterOvsdb.Modify the destination IP of Sample Port    ${new_owner}    ${new_cluster_list}
+
+Verify Port Is Modified After Fail
+    [Documentation]    Verify port is modified in all instances.
+    ClusterOvsdb.Verify Sample Port Is Modified    ${new_cluster_list}
+
+Start Old Owner Instance
+    [Documentation]    Start Owner Instance and verify it is active
+    ClusterManagement.Start Single Member    ${original_owner}
+
+Check Shards Status After Recover
+    [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
+    ClusterOvsdb.Check Ovsdb Shards Status After Cluster Event
+
+Check Entity Owner Status After Recover
+    [Documentation]    Check Entity Owner Status and identify owner and candidate.
+    ${new_owner}    ${new_candidate_list} =    ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device
+    ...    ovsdb://uuid/${ovsdb_uuid}
+    ...    1
+    BuiltIn.Set Suite Variable    ${new_owner}
+
+Create Bridge Manually and Verify After Recover
+    [Documentation]    Create bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Bridge Manually And Verify
+
+Add Port Manually and Verify After Recover
+    [Documentation]    Add port with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Port To The Manual Bridge And Verify
+
+Create Tap Device After Recover
+    [Documentation]    Create tap devices to add to the bridge in ovs
+    ClusterOvsdb.Create Sample Tap Device
+
+Add Tap Device Manually and Verify After Recover
+    [Documentation]    Add tap devices to the bridge with OVS command and verify it gets applied from all instances.
+    ClusterOvsdb.Add Sample Tap Device To The Manual Bridge And Verify
+
+Delete the Bridge Manually and Verify After Recover
+    [Documentation]    Delete bridge with OVS command and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge Manually And Verify
+
+Verify Modified Port After Recover
+    [Documentation]    Verify modified port exists in all instances.
+    ClusterOvsdb.Verify Sample Port Is Modified
+
+Delete Port In New Owner After Recover
+    [Documentation]    Delete port in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Port And Verify    ${new_owner}
+
+Delete Bridge In New Owner And Verify After Recover
+    [Documentation]    Delete bridge in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge And Verify    ${new_owner}
+
+Create Bridge In Old Owner and Verify After Recover
+    [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Bridge And Verify    ${original_owner}
+
+Create Port In Old Owner and Verify After Recover
+    [Documentation]    Create Port in Owner and verify it gets applied from all instances.
+    ClusterOvsdb.Create Sample Port And Verify    ${original_owner}
+
+Modify the destination IP of Port In Old Owner After Recover
+    [Documentation]    Modify the dst ip of existing port in Owner.
+    ClusterOvsdb.Modify the destination IP of Sample Port    ${original_owner}
+
+Verify Port Is Modified After Recover
+    [Documentation]    Verify port is modified in all instances.
+    ClusterOvsdb.Verify Sample Port Is Modified
+
+Delete Port In Old Owner After Recover
+    [Documentation]    Delete port in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Port And Verify    ${original_owner}
+
+Delete Bridge In Old Owner And Verify After Recover
+    [Documentation]    Delete bridge in Owner and verify it gets deleted from all instances.
+    ClusterOvsdb.Delete Sample Bridge And Verify    ${original_owner}
+
+Cleans Up Test Environment For Next Suite
+    [Documentation]    Cleans up test environment, close existing sessions in teardown.
+    ClusterOvsdb.Configure Exit OVSDB Connection
+
+
+*** Keywords ***
+Suite Setup
+    SetupUtils.Setup_Utils_For_Setup_And_Teardown
+    ClusterManagement.ClusterManagement Setup