blob: 67219e5d13603e26dc2abbc48e5be9a25df5ba6c [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
5Library RequestsLibrary
6
7*** Variables ***
8${CORD_TESTER} %{HOME}/cord-tester/src/test/setup/cord-test.py
9${RESTPORT} 8181
10${NODES} 1
A R Karthick51e6fd82016-11-22 14:39:19 -080011${EXTRA_OPTS}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070012
13*** Keywords ***
14Cord Setup
15 [Documentation] Setup the cord tester
16 Cord Teardown
A R Karthick51e6fd82016-11-22 14:39:19 -080017 ${rc}= Run and Return RC sudo ${CORD_TESTER} setup --olt --start-switch -n ${NODES} ${EXTRA_OPTS}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070018 Should Be Equal As Integers ${rc} 0
19 ${test_container}= Run sudo docker ps | grep cord-tester | tail -1 | tr -s ' ' | awk '{print $NF}'
20 ${controllers}= Run sudo docker ps | grep cord-onos | tr -s ' ' | awk '{print $NF}' | tr -s '\n' ' '
21 @{controller_names}= Create List ${controllers}
22 @{controller_list}= Create List
23 : FOR ${controller} IN @{controller_names}
24 \ ${ip}= Run sudo docker inspect -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' ${controller}
25 \ Append To List ${controller_list} ${ip}
26
27 Set Suite Variable ${test_container}
28 Set Suite Variable @{controller_list}
29 Create HTTP Sessions
30 Wait Until Keyword Succeeds 30s 2s Verify If All Controllers Are Up
31
32Cord Teardown
33 [Documentation] Teardown the cord tester setup
34 ${output}= Run sudo ${CORD_TESTER} cleanup --olt
35
36Create HTTP Sessions
37 [Documentation] Create controller http sessions
38 ${AUTH}= Create List karaf karaf
39 : FOR ${ip} IN @{controller_list}
40 \ Create Session ${ip} http://${ip}:${RESTPORT} auth=${AUTH}
41
42Verify If All Controllers Are Up
43 [Documentation] Make a rest call to the controller to see if its responding
44 : FOR ${ip} IN @{controller_list}
45 \ ${resp}= ONOS Get ${ip} devices
46 \ Should Be Equal As Strings ${resp.status_code} 200
47
48ONOS Get
49 [Documentation] Make a rest call to ONOS controller
50 [Arguments] ${session} ${noun}
51 ${resp}= Get Request ${session} /onos/v1/${noun}
52 Log ${resp.content}
53 [Return] ${resp}
54
55Run Cord Tester
56 [Arguments] ${test_case}
A R Karthick51e6fd82016-11-22 14:39:19 -080057 ${status} ${output}= Run and Return RC and Output sudo ${CORD_TESTER} run --onos-instances=${NODES} --container=${test_container} -t ${test_case}
A.R Karthickc3eb12b2016-10-20 17:39:47 -070058 Log ${output}
59 [Return] ${status}