4c11c47aaf6c77b56f5f8a92a871e2b4b2a34140
[integration/test.git] / csit / suites / ovsdb / Southbound_Cluster / 020__Southbound_Cluster_Extension.robot
1 *** Settings ***
2 Documentation     Test suite for Ovsdb Southbound Cluster Extension
3 Suite Setup       Create Controller Sessions
4 Suite Teardown    Delete All Sessions
5 Library           RequestsLibrary
6 Resource          ../../../libraries/ClusterOvsdb.robot
7 Resource          ../../../libraries/ClusterKeywords.robot
8 Resource          ../../../libraries/MininetKeywords.robot
9 Variables         ../../../variables/Variables.py
10
11 *** Variables ***
12 ${OVSDB_CONFIG_DIR}    ${CURDIR}/../../../variables/ovsdb
13 ${BRIDGE}         br01
14
15 *** Test Cases ***
16 Create Original Cluster List
17     [Documentation]    Create original cluster list.
18     ${original_cluster_list}    Create Controller Index List
19     Set Suite Variable    ${original_cluster_list}
20     Log    ${original_cluster_list}
21
22 Check Shards Status Before Fail
23     [Documentation]    Check Status for all shards in Ovsdb application.
24     Check Ovsdb Shards Status    ${original_cluster_list}
25
26 Check Entity Owner Status And Find Owner and Candidate Before Fail
27     [Documentation]    Check Entity Owner Status and identify owner and candidate.
28     ${original_owner}    ${original_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${original_cluster_list}
29     ${original_candidate}=    Get From List    ${original_candidates_list}    0
30     Set Suite Variable    ${original_owner}
31     Set Suite Variable    ${original_candidate}
32
33 Create Bridge Via Controller In Owner and Verify Before Fail
34     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
35     Create Bridge In Candidate    ${original_cluster_list}    ${original_owner}    BeforeCandidateFail
36
37 Create Port Via Controller In Owner and Verify Before Fail
38     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
39     Create Port Vxlan in Candidate    ${original_cluster_list}    ${original_owner}    BeforeCandidateFail
40
41 Kill Non Owner Instance
42     [Documentation]    Kill Non Owner Instance and verify it is dead
43     Kill Multiple Controllers    ${original_candidate}
44     ${new_cluster_list}    Create Controller Index List
45     Remove Values From List    ${new_cluster_list}    ${original_candidate}
46     Set Suite Variable    ${new_cluster_list}
47
48 Check Shards Status After Fail
49     [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
50     Check Ovsdb Shards Status After Cluster Event    ${new_cluster_list}
51
52 Check Entity Owner Status And Find Owner and Candidate After Fail
53     [Documentation]    Check Entity Owner Status and identify owner and candidate.
54     ${new_owner}    ${new_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${new_cluster_list}
55     Run Keyword And Continue On Failure    List Should Not Contain Value    ${new_candidates_list}    ${original_candidate}    Original candidate ${original_candidate} still in candidate list.
56     Remove Values From List    ${new_candidates_list}    ${original_candidate}
57     ${new_candidate}=    Get From List    ${new_candidates_list}    0
58     Set Suite Variable    ${new_owner}
59     Set Suite Variable    ${new_candidate}
60
61 Create Bridge Via Controller In Owner and Verify After Fail
62     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
63     Create Bridge In Candidate    ${new_cluster_list}    ${new_owner}    AfterCandidateFail
64
65 Start Non Old Owner Instance
66     [Documentation]    Start Non Owner Instance and verify it is active
67     Start Multiple Controllers    300s    ${original_candidate}
68
69 Check Shards Status After Recover
70     [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
71     Check Ovsdb Shards Status After Cluster Event    ${original_cluster_list}
72
73 Check Entity Owner Status After Recover
74     [Documentation]    Check Entity Owner Status and verify owner is not changed.
75     ${new_owner}    ${new_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${original_cluster_list}
76     Set Suite Variable    ${new_owner}
77
78 Create Bridge Via Controller In Owner and Verify After Recover
79     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
80     Create Bridge In Candidate    ${original_cluster_list}    ${new_owner}
81
82 Verify Bridge in Restarted Node Which Is Killed Earlier
83     [Documentation]    Verify Bridge in Restarted node, which is created when the node is down.
84     Verify Bridge in Restarted Node    ${original_cluster_list}    AfterCandidateRecover
85
86 Create Port Via Controller In Owner and Verify After Recover
87     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
88     Create Port Vxlan in Candidate    ${original_cluster_list}    ${new_owner}
89
90 Verify Port in Restarted Node Which Is Killed Earlier
91     [Documentation]    Verify Port in Restarted node, which is created when the node is down.
92     Verify Port in Restarted Node    ${original_cluster_list}    AfterCandidateRecover
93
94 Delete the Port After Recover
95     [Documentation]    This request will delete the port node from the bridge node and data store.
96     Delete Port In Candidate    ${original_cluster_list}    ${new_owner}
97
98 Delete Bridge Via Rest Call And Verify In Owner After Recover
99     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
100     Delete Bridge In Candidate    ${original_cluster_list}    ${new_owner}
101
102 Cleans Up Test Environment For Next Suite
103     [Documentation]    Cleans up test environment, close existing sessions in teardown.
104     Configure Exit OVSDB Connection    ${original_cluster_list}    ${new_owner}