blob: c82e8607ffb3e8e443033b0029e9362f506fe350 [file] [log] [blame]
A.R Karthickc3eb12b2016-10-20 17:39:47 -07001*** Settings ***
2Documentation Common definitions of variables and keywords for running cord tester
3Library OperatingSystem
4Library Collections
A R Karthick9ee92522016-11-29 14:59:11 -08005Library String
A.R Karthickc3eb12b2016-10-20 17:39:47 -07006Library RequestsLibrary
7
8*** Variables ***
9${CORD_TESTER} %{HOME}/cord-tester/src/test/setup/cord-test.py
A R Karthicka95c7242017-01-09 15:54:30 -080010${MANIFEST} %{HOME}/manifest.unused
A.R Karthickc3eb12b2016-10-20 17:39:47 -070011${RESTPORT} 8181
12${NODES} 1
A R Karthick51e6fd82016-11-22 14:39:19 -080013${EXTRA_OPTS}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070014
15*** Keywords ***
16Cord Setup
17 [Documentation] Setup the cord tester
18 Cord Teardown
A R Karthicka95c7242017-01-09 15:54:30 -080019 ${rc}= Run and Return RC sudo ${CORD_TESTER} setup --olt --start-switch -n ${NODES} -m ${MANIFEST} ${EXTRA_OPTS}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070020 Should Be Equal As Integers ${rc} 0
21 ${test_container}= Run sudo docker ps | grep cord-tester | tail -1 | tr -s ' ' | awk '{print $NF}'
22 ${controllers}= Run sudo docker ps | grep cord-onos | tr -s ' ' | awk '{print $NF}' | tr -s '\n' ' '
A R Karthick9ee92522016-11-29 14:59:11 -080023 @{controller_names}= Split String ${controllers}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070024 @{controller_list}= Create List
25 : FOR ${controller} IN @{controller_names}
26 \ ${ip}= Run sudo docker inspect -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' ${controller}
27 \ Append To List ${controller_list} ${ip}
28
29 Set Suite Variable ${test_container}
30 Set Suite Variable @{controller_list}
31 Create HTTP Sessions
32 Wait Until Keyword Succeeds 30s 2s Verify If All Controllers Are Up
33
34Cord Teardown
35 [Documentation] Teardown the cord tester setup
A R Karthicka95c7242017-01-09 15:54:30 -080036 ${output}= Run sudo ${CORD_TESTER} cleanup --olt -m ${MANIFEST}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070037
38Create HTTP Sessions
39 [Documentation] Create controller http sessions
40 ${AUTH}= Create List karaf karaf
41 : FOR ${ip} IN @{controller_list}
42 \ Create Session ${ip} http://${ip}:${RESTPORT} auth=${AUTH}
43
44Verify If All Controllers Are Up
45 [Documentation] Make a rest call to the controller to see if its responding
46 : FOR ${ip} IN @{controller_list}
47 \ ${resp}= ONOS Get ${ip} devices
48 \ Should Be Equal As Strings ${resp.status_code} 200
49
50ONOS Get
51 [Documentation] Make a rest call to ONOS controller
52 [Arguments] ${session} ${noun}
53 ${resp}= Get Request ${session} /onos/v1/${noun}
54 Log ${resp.content}
55 [Return] ${resp}
56
57Run Cord Tester
58 [Arguments] ${test_case}
A R Karthick584f8d22017-02-08 16:51:01 -080059 ${status} ${output}= Run and Return RC and Output sudo ${CORD_TESTER} run -m ${MANIFEST} --onos-instances=${NODES} --container=${test_container} -t ${test_case}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070060 Log ${output}
61 [Return] ${status}