X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fovsdb%2FSouthbound_Cluster%2F020__Southbound_Cluster_Extension.robot;h=c1194824472f1e447be706d0413931e2769c69d7;hb=d883b8eb7f8831ced0ea7289045c7074fbd4ba43;hp=4932d682adf149292b9b37b1308c9f6b1611233e;hpb=f9d5d70fb7a288fc901eab04519d5b5246c56be6;p=integration%2Ftest.git diff --git a/csit/suites/ovsdb/Southbound_Cluster/020__Southbound_Cluster_Extension.robot b/csit/suites/ovsdb/Southbound_Cluster/020__Southbound_Cluster_Extension.robot index 4932d682ad..c119482447 100644 --- a/csit/suites/ovsdb/Southbound_Cluster/020__Southbound_Cluster_Extension.robot +++ b/csit/suites/ovsdb/Southbound_Cluster/020__Southbound_Cluster_Extension.robot @@ -1,106 +1,180 @@ *** Settings *** -Documentation Test suite for Ovsdb Southbound Cluster Extension +Documentation Test suite for Ovsdb Southbound Cluster - Candidate failover and recover 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 *** -${OVSDB_CONFIG_DIR} ${CURDIR}/../../../variables/ovsdb -${BRIDGE} br01 - *** Test Cases *** Create Original Cluster List [Documentation] Create original cluster list. - ${original_cluster_list} Create Controller Index List + ${original_cluster_list} ClusterKeywords.Create Controller Index List Set Suite Variable ${original_cluster_list} Log ${original_cluster_list} 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 ${original_cluster_list} + +Start OVS Multiple Connections + [Documentation] Connect OVS to all cluster instances. + ${ovsdb_uuid} Ovsdb.Add Multiple Managers to OVS ${TOOLS_SYSTEM_IP} ${original_cluster_list} + 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_owner} ${original_candidates_list} ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device ${original_cluster_list} ovsdb://uuid/${ovsdb_uuid} ${original_candidate}= Get From List ${original_candidates_list} 0 Set Suite Variable ${original_owner} Set Suite Variable ${original_candidate} -Create Bridge Via Controller In Owner and Verify Before Fail +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 ${original_cluster_list} + +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 ${original_cluster_list} + +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 ${original_cluster_list} + +Create Bridge In Owner and Verify Before Fail [Documentation] Create Bridge in Owner and verify it gets applied from all instances. - Create Bridge In Candidate ${original_cluster_list} ${original_owner} BeforeCandidateFail + ClusterOvsdb.Create Sample Bridge And Verify ${original_cluster_list} ${original_owner} -Create Port Via Controller In Owner and Verify Before Fail +Create Port In Owner and Verify Before Fail [Documentation] Create Port in Owner and verify it gets applied from all instances. - Create Port Vxlan in Candidate ${original_cluster_list} ${original_owner} BeforeCandidateFail + ClusterOvsdb.Create Sample Port And Verify ${original_cluster_list} ${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_cluster_list} ${original_owner} + +Verify Port Is Modified Before Fail + [Documentation] Verify port is modified in all instances. + ClusterOvsdb.Verify Sample Port Is Modified ${original_cluster_list} -Kill Non Owner Instance - [Documentation] Kill Non Owner Instance and verify it is dead - Kill Multiple Controllers ${original_candidate} - ${new_cluster_list} Create Controller Index List +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_cluster_list} ${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_cluster_list} ${original_owner} + +Kill Candidate Instance + [Documentation] Kill Owner Instance and verify it is dead + ClusterKeywords.Kill Multiple Controllers ${original_candidate} + ${new_cluster_list} ClusterKeywords.Create Controller Index List Remove Values From List ${new_cluster_list} ${original_candidate} Set Suite Variable ${new_cluster_list} Check Shards Status After Fail [Documentation] Create original cluster list and check Status for all shards in Ovsdb application. - Check Ovsdb Shards Status After Cluster Event ${new_cluster_list} + 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_candidates_list} Get Ovsdb Entity Owner Status For One Device ${new_cluster_list} - Run Keyword And Continue On Failure List Should Not Contain Value ${new_candidates_list} ${original_candidate} Original candidate ${original_candidate} still in candidate list. - Remove Values From List ${new_candidates_list} ${original_candidate} + ${new_owner} ${new_candidates_list} ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device ${new_cluster_list} ovsdb://uuid/${ovsdb_uuid} + Run Keyword And Continue On Failure List Should Not Contain Value ${new_candidates_list} ${original_owner} Original owner ${original_owner} still in candidate list. + Remove Values From List ${new_candidates_list} ${original_owner} ${new_candidate}= Get From List ${new_candidates_list} 0 Set Suite Variable ${new_owner} Set Suite Variable ${new_candidate} -Create Bridge Via Controller In Owner and Verify After Fail +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 ${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 ${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 ${new_cluster_list} + +Create Bridge In Owner and Verify After Fail [Documentation] Create Bridge in Owner and verify it gets applied from all instances. - Create Bridge In Candidate ${new_cluster_list} ${new_owner} AfterCandidateFail + ClusterOvsdb.Create Sample Bridge And Verify ${new_cluster_list} ${new_owner} -Start Non Old Owner Instance - [Documentation] Start Non Owner Instance and verify it is active - Start Multiple Controllers 300s ${original_candidate} +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_cluster_list} ${new_owner} + +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_cluster_list} ${new_owner} + +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 Candidate Instance + [Documentation] Start Owner Instance and verify it is active + ClusterKeywords.Start Multiple Controllers 300s ${original_candidate} Check Shards Status After Recover [Documentation] Create original cluster list and check Status for all shards in Ovsdb application. - Check Ovsdb Shards Status After Cluster Event ${original_cluster_list} + ClusterOvsdb.Check Ovsdb Shards Status After Cluster Event ${original_cluster_list} Check Entity Owner Status After Recover - [Documentation] Check Entity Owner Status and verify owner is not changed. - ${new_owner} ${new_candidates_list} Get Ovsdb Entity Owner Status For One Device ${original_cluster_list} + [Documentation] Check Entity Owner Status and identify owner and candidate. + ${new_owner} ${new_candidates_list} ClusterOvsdb.Get Ovsdb Entity Owner Status For One Device ${original_cluster_list} ovsdb://uuid/${ovsdb_uuid} Set Suite Variable ${new_owner} -Create Bridge Via Controller In Owner and Verify After Recover - [Documentation] Create Bridge in Owner and verify it gets applied from all instances. - Create Bridge In Candidate ${original_cluster_list} ${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 ${original_cluster_list} + +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 ${original_cluster_list} -Verify Bridge in Restarted Node Which Is Killed Earlier - [Documentation] Verify Bridge in Restarted node, which is created when the node is down. - Verify Bridge in Restarted Node ${original_cluster_list} AfterCandidateRecover +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 ${original_cluster_list} -Create Port Via Controller In Owner and Verify After Recover +Verify Modified Port After Recover + [Documentation] Verify modified port exists in all instances. + ClusterOvsdb.Verify Sample Port Is Modified ${original_cluster_list} + +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 ${original_cluster_list} ${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 ${original_cluster_list} ${new_owner} + +Create Bridge In Old Candidate and Verify After Recover + [Documentation] Create Bridge in Owner and verify it gets applied from all instances. + ClusterOvsdb.Create Sample Bridge And Verify ${original_cluster_list} ${original_candidate} + +Create Port In Old Owner and Verify After Recover [Documentation] Create Port in Owner and verify it gets applied from all instances. - Create Port Vxlan in Candidate ${original_cluster_list} ${new_owner} + ClusterOvsdb.Create Sample Port And Verify ${original_cluster_list} ${original_candidate} + +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_cluster_list} ${original_candidate} -Verify Port in Restarted Node Which Is Killed Earlier - [Documentation] Verify Port in Restarted node, which is created when the node is down. - Verify Port in Restarted Node ${original_cluster_list} AfterCandidateRecover +Verify Port Is Modified After Recover + [Documentation] Verify port is modified in all instances. + ClusterOvsdb.Verify Sample Port Is Modified ${original_cluster_list} -Delete the Port After Recover - [Documentation] This request will delete the port node from the bridge node and data store. - Delete Port In Candidate ${original_cluster_list} ${new_owner} +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_cluster_list} ${original_candidate} -Delete Bridge Via Rest Call And Verify In Owner After Recover - [Documentation] This request will delete the bridge node from the config data store and operational data store. - Delete Bridge In Candidate ${original_cluster_list} ${new_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_cluster_list} ${original_candidate} Cleans Up Test Environment For Next Suite - [Documentation] Cleans up test environment, close existing sessions in teardown. This step needs to be excluded - ... until the keyword "Get Cluster Entity Owner For Ovsdb" is fixed to search using ovs uuid as argument. - [Tags] exclude - Configure Exit OVSDB Connection ${original_cluster_list} ${new_owner} + [Documentation] Cleans up test environment, close existing sessions in teardown. + ClusterOvsdb.Configure Exit OVSDB Connection ${original_cluster_list}