2 Documentation ODL controller clustering test case using the gherkin syntax.
4 ... This test has a workflow similar to the keyword-driven
5 ... examples. The difference is that the keywords use higher
6 ... abstraction level and their arguments are embedded into
9 ... This kind of _gherkin_ syntax has been made popular by
10 ... [http://cukes.info|Cucumber]. It works well especially when
11 ... tests act as examples that need to be easily understood also
12 ... by the business people.
14 Library Selenium2Library
17 Library ../../libraries/RequestsLibrary.py
18 Library ../../libraries/Common.py
19 Variables ../../variables/Variables.py
23 Controller1 recovers after failure
26 # And C2 a controller in cluster of two controllers
27 # And all switches are introduced to both controllers
29 Then the system is working with C1 and C2
34 Open Connection ${Controller1_IP} prompt=>
35 Login ${VM USERNAME} ${VM PASSWORD}
36 Write cd controller-base/opendaylight
37 Write sudo ./run.sh -stop
38 Set Selenium Speed ${DELAY2}
39 Open Browser ${LOGIN URL1} ${BROWSER}
40 Maximize Browser Window
41 Set Selenium Speed ${DELAY}
42 Location Should Be ${ERROR URL1}
43 Title Should Be Problem loading page
44 [Teardown] Close Browser
47 C1 a controller in cluster of two controllers
48 # Open Connection ${Controller1_IP} prompt=>
49 # Login ${VM USERNAME} ${VM PASSWORD}
50 # Write cd controller-base/opendaylight
51 # Write sudo ./run.sh -Dsupernodes=${Controller1_IP}:${Controller2_IP} -start
52 Open Connection ${HOST}
53 Login ${VM USERNAME} ${VM PASSWORD}
54 ${stdout}= Execute Command sudo ovs-vsctl show
55 Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER1}" 3
59 C2 a controller in cluster of two controllers
60 # Open Connection ${Controller2_IP} prompt=>
61 # Login ${VM USERNAME} ${VM PASSWORD}
62 # Write cd controller-base/opendaylight
63 # Write sudo ./run.sh -Dsupernodes=${Controller1_IP}:${Controller2_IP} -start
64 Open Connection ${HOST}
65 Login ${VM USERNAME} ${VM PASSWORD}
66 ${stdout}= Execute Command sudo ovs-vsctl show
67 Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER2}" 3
70 all switches are introduced to both controllers
71 Open Connection ${HOST}
72 Login ${VM USERNAME} ${VM PASSWORD}
73 # ${stdout1}= Execute Command sudo ovs-vsctl set-controller s1 tcp:${CONTROLLER1} tcp:${CONTROLLER2}
74 # ${stdout2}= Execute Command sudo ovs-vsctl set-controller s2 tcp:${CONTROLLER1} tcp:${CONTROLLER2}
75 # ${stdout2}= Execute Command sudo ovs-vsctl set-controller s3 tcp:${CONTROLLER1} tcp:${CONTROLLER2}
76 ${stdout}= Execute Command sudo ovs-vsctl show
77 Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER1}" 3
78 Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER2}" 3
79 Should Contain ${stdout} Bridge "s1"
80 Should Contain ${stdout} Bridge "s2"
81 Should Contain ${stdout} Bridge "s3"
82 Should Contain X Times ${stdout} is_connected: true 6
83 ${stdout}= Execute Command sudo ovs-vsctl get-controller "s1"
84 Should Contain ${stdout} ${CONTROLLER1}
85 Should Contain ${stdout} ${CONTROLLER2}
86 ${stdout}= Execute Command sudo ovs-vsctl get-controller "s2"
87 Should Contain ${stdout} ${CONTROLLER1}
88 Should Contain ${stdout} ${CONTROLLER2}
89 ${stdout}= Execute Command sudo ovs-vsctl get-controller "s3"
90 Should Contain ${stdout} ${CONTROLLER1}
91 Should Contain ${stdout} ${CONTROLLER2}
94 the system is working with C1 and C2
95 ${headers} Create Dictionary Content-Type application/json
96 Create Session session http://${Controller1_IP}:8080 headers=${headers} auth=${auth}
97 ${resp} Get session ${REST_CONTEXT}/${CONTAINER}
98 Should Be Equal As Strings ${resp.status_code} 200 Response status code error
100 Should Contain X Times ${resp.content} ${nodeconn1} 2
101 Should Contain X Times ${resp.content} ${nodeconn2} 2
102 Should Contain X Times ${resp.content} ${nodeconn3} 2
103 Should Contain X Times ${resp.content} ${nodeconn4} 2
105 ${headers} Create Dictionary Content-Type application/json
106 Create Session session http://${Controller2_IP}:8080 headers=${headers} auth=${auth}
107 ${resp} Get session ${REST_CONTEXT}/${CONTAINER}
108 Should Be Equal As Strings ${resp.status_code} 200 Response status code error
110 Should Contain X Times ${resp.content} ${nodeconn1} 2
111 Should Contain X Times ${resp.content} ${nodeconn2} 2
112 Should Contain X Times ${resp.content} ${nodeconn3} 2
113 Should Contain X Times ${resp.content} ${nodeconn4} 2
117 Open Connection ${HOST}
118 Login ${VM USERNAME} ${VM PASSWORD}
119 ${stdout}= Execute Command sudo ovs-vsctl show
120 Should Contain X Times ${stdout} Controller "tcp:${CONTROLLER2}" 3
121 Should Contain X Times ${stdout} is_connected: true 3
125 Open Connection ${Controller1_IP} prompt=>
126 Login ${VM USERNAME} ${VM PASSWORD}
127 Write cd controller-base/opendaylight
128 Write sudo ./run.sh -Dsupernodes=${Controller1_IP}:${Controller2_IP} -start