Tidied updated tests.
[integration/test.git] / csit / suites / ovsdb / Southbound_Cluster / 010__Ovsdb_Southbound_Cluster.robot
1 *** Settings ***
2 Documentation     Test suite for Ovsdb Southbound Cluster
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 Start OVS Multiple Connections
27     [Documentation]    Start mininet with connection to all cluster instances.
28     ${mininet_conn_id}    Add Multiple Managers to OVS    ${TOOLS_SYSTEM_IP}    ${original_cluster_list}
29     Set Suite Variable    ${mininet_conn_id}
30
31 Check Entity Owner Status And Find Owner and Candidate Before Fail
32     [Documentation]    Check Entity Owner Status and identify owner and candidate.
33     ${original_owner}    ${original_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${original_cluster_list}
34     ${original_candidate}=    Get From List    ${original_candidates_list}    0
35     Set Suite Variable    ${original_owner}
36     Set Suite Variable    ${original_candidate}
37
38 Create Bridge Manually In Owner and Verify Before Fail
39     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
40     Create Bridge Manually And Verify    ${original_cluster_list}    ${original_owner}
41
42 Add Port Manually In Owner and Verify Before Fail
43     [Documentation]    Add Port in Owner and verify it gets applied from all instances.
44     Add Port To The Manual Bridge And Verify    ${original_cluster_list}    ${original_owner}
45
46 Create Bridge Via Controller In Owner and Verify Before Fail
47     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
48     Create Bridge And Verify    ${original_cluster_list}    ${original_owner}
49
50 Create Port Via Controller In Owner and Verify Before Fail
51     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
52     Create Port Via Controller    ${original_cluster_list}    ${original_owner}
53
54 Modify the destination IP of Port Before Fail
55     [Documentation]    This will modify the dst ip of existing port
56     Modify the destination IP of Port    ${original_cluster_list}    ${original_owner}
57
58 Get Operational Topology with modified Port Before Fail
59     [Documentation]    This request will fetch the operational topology after the modified port is added to the bridge
60     Get Operational Topology with modified Port    ${original_cluster_list}    ${original_owner}
61
62 Delete the Port Before Fail
63     [Documentation]    This request will delete the port node from the bridge node and data store.
64     Delete Port And Verify    ${original_cluster_list}    ${original_owner}
65
66 Delete the Bridge In Owner and Verify Before Fail
67     [Documentation]    This request will delete the bridge node from the operational data store.
68     Delete Bridge Manually And Verify    ${original_cluster_list}    ${original_owner}
69
70 Delete Bridge Via Rest Call And Verify In Owner Before Fail
71     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
72     Delete Bridge Via Rest Call And Verify    ${original_cluster_list}    ${original_owner}
73
74 Kill Owner Instance
75     [Documentation]    Kill Owner Instance and verify it is dead
76     Kill Multiple Controllers    ${original_owner}
77     ${new_cluster_list}    Create Controller Index List
78     Remove Values From List    ${new_cluster_list}    ${original_owner}
79     Set Suite Variable    ${new_cluster_list}
80
81 Check Shards Status After Fail
82     [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
83     Check Ovsdb Shards Status After Cluster Event    ${new_cluster_list}
84
85 Check Entity Owner Status And Find Owner and Candidate After Fail
86     [Documentation]    Check Entity Owner Status and identify owner and candidate.
87     ${new_owner}    ${new_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${new_cluster_list}
88     Run Keyword And Continue On Failure    List Should Not Contain Value    ${new_candidates_list}    ${original_owner}    Original owner ${original_owner} still in candidate list.
89     Remove Values From List    ${new_candidates_list}    ${original_owner}
90     ${new_candidate}=    Get From List    ${new_candidates_list}    0
91     Set Suite Variable    ${new_owner}
92     Set Suite Variable    ${new_candidate}
93
94 Create Bridge Manually In Owner and Verify After Fail
95     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
96     Create Bridge Manually And Verify    ${new_cluster_list}    ${new_owner}
97
98 Add Port Manually In Owner and Verify After Fail
99     [Documentation]    Add Port in Owner and verify it gets applied from all instances.
100     Add Port To The Manual Bridge And Verify    ${new_cluster_list}    ${new_owner}
101
102 Create Bridge Via Controller In Owner and Verify After Fail
103     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
104     Create Bridge And Verify    ${new_cluster_list}    ${new_owner}    AfterFail
105
106 Create Port Via Controller In Owner and Verify After Fail
107     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
108     Create Port Via Controller    ${new_cluster_list}    ${new_owner}    AfterFail
109
110 Modify the destination IP of Port After Fail
111     [Documentation]    This will modify the dst ip of existing port
112     Modify the destination IP of Port    ${new_cluster_list}    ${new_owner}    AfterFail
113
114 Get Operational Topology with modified Port After Fail
115     [Documentation]    This request will fetch the operational topology after the modified port is added to the bridge
116     Get Operational Topology with modified Port    ${new_cluster_list}    ${new_owner}    AfterFail
117
118 Delete the Port After Fail
119     [Documentation]    This request will delete the port node from the bridge node and data store.
120     Delete Port And Verify    ${new_cluster_list}    ${new_owner}    AfterFail
121
122 Delete the Bridge In Owner and Verify After Fail
123     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
124     Delete Bridge Manually And Verify    ${new_cluster_list}    ${new_owner}
125
126 Delete Bridge Via Rest Call And Verify In Owner After Fail
127     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
128     Delete Bridge Via Rest Call And Verify    ${new_cluster_list}    ${new_owner}
129
130 Start Old Owner Instance
131     [Documentation]    Start Owner Instance and verify it is active
132     Start Multiple Controllers    300s    ${original_owner}
133
134 Check Shards Status After Recover
135     [Documentation]    Create original cluster list and check Status for all shards in Ovsdb application.
136     Check Ovsdb Shards Status After Cluster Event    ${original_cluster_list}
137
138 Check Entity Owner Status After Recover
139     [Documentation]    Check Entity Owner Status and identify owner and candidate.
140     ${new_owner}    ${new_candidates_list}    Get Ovsdb Entity Owner Status For One Device    ${original_cluster_list}
141     Set Suite Variable    ${new_owner}
142
143 Create Bridge Manually In Owner and Verify After Recover
144     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
145     Create Bridge Manually And Verify    ${original_cluster_list}    ${new_owner}
146
147 Add Port Manually In Owner and Verify After Recover
148     [Documentation]    Add Port in Owner and verify it gets applied from all instances.
149     Add Port To The Manual Bridge And Verify    ${original_cluster_list}    ${new_owner}
150
151 Create Bridge Via Controller In Owner and Verify After Recover
152     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
153     Create Bridge And Verify    ${original_cluster_list}    ${new_owner}
154
155 Verify Bridge in Restarted Node Which Is Killed Earlier
156     [Documentation]    Verify Bridge in Restarted node, which is created when the node is down.
157     Verify Bridge in Restarted Node    ${original_cluster_list}
158
159 Create Port Via Controller In Owner and Verify After Recover
160     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
161     Create Port Via Controller    ${original_cluster_list}    ${new_owner}
162
163 Verify Port in Restarted Node Which Is Killed Earlier
164     [Documentation]    Verify Port in Restarted node, which is created when the node is down.
165     Verify Port in Restarted Node    ${original_cluster_list}
166
167 Modify the destination IP of Port After Recover
168     [Documentation]    This will modify the dst ip of existing port
169     Modify the destination IP of Port    ${original_cluster_list}    ${new_owner}
170
171 Get Operational Topology with modified Port After Recover
172     [Documentation]    This request will fetch the operational topology after the modified port is added to the bridge
173     Get Operational Topology with modified Port    ${original_cluster_list}    ${new_owner}
174
175 Delete the Port After Recover
176     [Documentation]    This request will delete the port node from the bridge node and data store.
177     Delete Port And Verify    ${original_cluster_list}    ${new_owner}
178
179 Delete the Bridge In Owner and Verify After Recover
180     [Documentation]    This request will delete the bridge node from the operational data store.
181     Delete Bridge Manually And Verify    ${original_cluster_list}    ${new_owner}
182
183 Delete Bridge Via Rest Call And Verify In Owner After Recover
184     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
185     Delete Bridge Via Rest Call And Verify    ${original_cluster_list}    ${new_owner}
186
187 Create Bridge Manually In Old Owner and Verify After Recover
188     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
189     Create Bridge Manually And Verify    ${original_cluster_list}    ${original_owner}
190
191 Add Port Manually In Old Owner and Verify After Recover
192     [Documentation]    Add Port in Owner and verify it gets applied from all instances.
193     Add Port To The Manual Bridge And Verify    ${original_cluster_list}    ${original_owner}
194
195 Create Bridge Via Controller In Old Owner and Verify After Recover
196     [Documentation]    Create Bridge in Owner and verify it gets applied from all instances.
197     Create Bridge And Verify    ${original_cluster_list}    ${original_owner}
198
199 Create Port Via Controller In Old Owner and Verify After Recover
200     [Documentation]    Create Port in Owner and verify it gets applied from all instances.
201     Create Port Via Controller    ${original_cluster_list}    ${original_owner}
202
203 Modify the destination IP of Port After Recover
204     [Documentation]    This will modify the dst ip of existing port
205     Modify the destination IP of Port    ${original_cluster_list}    ${original_owner}
206
207 Get Operational Topology with modified Port After Recover
208     [Documentation]    This request will fetch the operational topology after the modified port is added to the bridge
209     Get Operational Topology with modified Port    ${original_cluster_list}    ${original_owner}
210
211 Delete the Port After Recover
212     [Documentation]    This request will delete the port node from the bridge node and data store.
213     Delete Port And Verify    ${original_cluster_list}    ${original_owner}
214
215 Delete the Bridge In Old Owner and Verify After Recover
216     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
217     Delete Bridge Manually And Verify    ${original_cluster_list}    ${original_owner}
218
219 Delete Bridge Via Rest Call And Verify In Old Owner After Recover
220     [Documentation]    This request will delete the bridge node from the config data store and operational data store.
221     Delete Bridge Via Rest Call And Verify    ${original_cluster_list}    ${original_owner}