blob: eb1a28ada6c974ae14d6795c3893cf7068bc5b43 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
2Library Collections
3Library String
4Library RequestsLibrary.RequestsKeywords
5Library OperatingSystem
6Resource ../lib/resource.txt
7Library ../lib/disable_warning_urllib.py
8
9*** Variables ***
10# Response codes
11${HTTP_CONTINUE} 100
12${HTTP_SWITCHING_PROTOCOLS} 101
13${HTTP_PROCESSING} 102
14${HTTP_OK} 200
15${HTTP_CREATED} 201
16${HTTP_ACCEPTED} 202
17${HTTP_NON_AUTHORITATIVE_INFORMATION} 203
18${HTTP_NO_CONTENT} 204
19${HTTP_RESET_CONTENT} 205
20${HTTP_PARTIAL_CONTENT} 206
21${HTTP_MULTI_STATUS} 207
22${HTTP_IM_USED} 226
23${HTTP_MULTIPLE_CHOICES} 300
24${HTTP_MOVED_PERMANENTLY} 301
25${HTTP_FOUND} 302
26${HTTP_SEE_OTHER} 303
27${HTTP_NOT_MODIFIED} 304
28${HTTP_USE_PROXY} 305
29${HTTP_TEMPORARY_REDIRECT} 307
30${HTTP_BAD_REQUEST} 400
31${HTTP_UNAUTHORIZED} 401
32${HTTP_PAYMENT_REQUIRED} 402
33${HTTP_FORBIDDEN} 403
34${HTTP_NOT_FOUND} 404
35${HTTP_METHOD_NOT_ALLOWED} 405
36${HTTP_NOT_ACCEPTABLE} 406
37${HTTP_PROXY_AUTHENTICATION_REQUIRED} 407
38${HTTP_REQUEST_TIMEOUT} 408
39${HTTP_CONFLICT} 409
40${HTTP_GONE} 410
41${HTTP_LENGTH_REQUIRED} 411
42${HTTP_PRECONDITION_FAILED} 412
43${HTTP_REQUEST_ENTITY_TOO_LARGE} 413
44${HTTP_REQUEST_URI_TOO_LONG} 414
45${HTTP_UNSUPPORTED_MEDIA_TYPE} 415
46${HTTP_REQUESTED_RANGE_NOT_SATISFIABLE} 416
47${HTTP_EXPECTATION_FAILED} 417
48${HTTP_UNPROCESSABLE_ENTITY} 422
49${HTTP_LOCKED} 423
50${HTTP_FAILED_DEPENDENCY} 424
51${HTTP_UPGRADE_REQUIRED} 426
52${HTTP_INTERNAL_SERVER_ERROR} 500
53${HTTP_NOT_IMPLEMENTED} 501
54${HTTP_BAD_GATEWAY} 502
55${HTTP_SERVICE_UNAVAILABLE} 503
56${HTTP_GATEWAY_TIMEOUT} 504
57${HTTP_HTTP_VERSION_NOT_SUPPORTED} 505
58${HTTP_INSUFFICIENT_STORAGE} 507
59${HTTP_NOT_EXTENDED} 510
60
61*** Keywords ***
62OpenBMC Get Request
Rahul Maheshwari79c12942016-10-17 09:39:17 -050063 [Arguments] ${uri} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -050064 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
65 Log Request method=Get base_uri=${base_uri} args=&{kwargs}
Rahul Maheshwari79c12942016-10-17 09:39:17 -050066 Initialize OpenBMC ${timeout}
67 ${ret}= Get Request openbmc ${base_uri} &{kwargs} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -050068 Log Response ${ret}
69 [Return] ${ret}
70
71OpenBMC Post Request
Rahul Maheshwari79c12942016-10-17 09:39:17 -050072 [Arguments] ${uri} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -050073 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
74 ${headers}= Create Dictionary Content-Type=application/json
75 set to dictionary ${kwargs} headers ${headers}
76 Log Request method=Post base_uri=${base_uri} args=&{kwargs}
Rahul Maheshwari79c12942016-10-17 09:39:17 -050077 Initialize OpenBMC ${timeout}
78 ${ret}= Post Request openbmc ${base_uri} &{kwargs} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -050079 Log Response ${ret}
80 [Return] ${ret}
81
82OpenBMC Put Request
Rahul Maheshwari79c12942016-10-17 09:39:17 -050083 [Arguments] ${uri} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -050084 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
85 ${headers}= Create Dictionary Content-Type=application/json
86 set to dictionary ${kwargs} headers ${headers}
87 Log Request method=Put base_uri=${base_uri} args=&{kwargs}
Rahul Maheshwari79c12942016-10-17 09:39:17 -050088 Initialize OpenBMC ${timeout}
89 ${ret}= Put Request openbmc ${base_uri} &{kwargs} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -050090 Log Response ${ret}
91 [Return] ${ret}
92
93OpenBMC Delete Request
Rahul Maheshwari79c12942016-10-17 09:39:17 -050094 [Arguments] ${uri} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -050095 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
96 Log Request method=Delete base_uri=${base_uri} args=&{kwargs}
Rahul Maheshwari79c12942016-10-17 09:39:17 -050097 Initialize OpenBMC ${timeout}
98 ${ret}= Put Request openbmc ${base_uri} &{kwargs} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -050099 Log Response ${ret}
100 [Return] ${ret}
101
102Initialize OpenBMC
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500103 [Arguments] ${timeout}=10
104 Create Session openbmc ${AUTH_URI} timeout=${timeout} max_retries=3
Chris Austenb29d2e82016-06-07 12:25:35 -0500105 ${headers}= Create Dictionary Content-Type=application/json
106 @{credentials} = Create List ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD}
107 ${data} = create dictionary data=@{credentials}
108 ${resp} = Post Request openbmc /login data=${data} headers=${headers}
109 should be equal as strings ${resp.status_code} ${HTTP_OK}
110
111Log Request
112 [Arguments] &{kwargs}
113 ${msg}= Catenate SEPARATOR= URI: ${AUTH_URI} ${kwargs["base_uri"]} , method:
114 ... ${kwargs["method"]} , args: ${kwargs["args"]}
115 Logging ${msg} console=True
116
117Log Response
118 [Arguments] ${resp}
119 ${msg}= Catenate SEPARATOR= Response code: ${resp.status_code} , Content: ${resp.content}
120 Logging ${msg} console=True
121
122Logging
123 [Arguments] ${msg} ${console}=default False
124 Log ${msg} console=True
125
126Read Attribute
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500127 [arguments] ${uri} ${attr} ${timeout}=10
128 ${resp} = OpenBMC Get Request ${uri}/attr/${attr} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -0500129 ${content}= To Json ${resp.content}
130 [return] ${content["data"]}
131
132Write Attribute
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500133 [Arguments] ${uri} ${attr} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -0500134 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500135 ${resp} = openbmc put request ${base_uri}/attr/${attr} timeout=${timeout} &{kwargs}
George Keishing06ae4aa2016-08-30 01:41:28 -0500136 should be equal as strings ${resp.status_code} ${HTTP_OK}
Chris Austenb29d2e82016-06-07 12:25:35 -0500137 ${json} = to json ${resp.content}
138
139Read Properties
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500140 [arguments] ${uri} ${timeout}=10
141 ${resp} = OpenBMC Get Request ${uri} timeout=${timeout}
Chris Austenb29d2e82016-06-07 12:25:35 -0500142 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
143 ${content}= To Json ${resp.content}
144 [return] ${content["data"]}
145
146Call Method
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500147 [arguments] ${uri} ${method} ${timeout}=10 &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -0500148 ${base_uri}= Catenate SEPARATOR= ${DBUS_PREFIX} ${uri}
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500149 ${resp} = openbmc post request ${base_uri}/action/${method} timeout=${timeout} &{kwargs}
Chris Austenb29d2e82016-06-07 12:25:35 -0500150 [return] ${resp}