blob: f1088abf0ba86eaa15d703af08fa577888a24358 [file] [log] [blame]
George Keishingeaa73b72018-07-30 09:30:16 -05001*** Settings ***
2Documentation Test Redfish interfaces supported.
3
George Keishing9cef1092018-08-06 01:06:24 -05004Resource ../lib/redfish_client.robot
5
6Test Setup Test Setup Execution
7Test Teardown Test Teardown Execution
8
George Keishingeaa73b72018-07-30 09:30:16 -05009
10** Test Cases **
11
George Keishing9cef1092018-08-06 01:06:24 -050012Test Get Redfish Session Id
13 [Documentation] Establish session to BMC and get session identifier.
14 [Tags] Test_Get_Redfish_Session_Id
15
George Keishing1552dd32018-08-06 13:14:09 -050016 # Example:
17 # {
18 # "@odata.context": "/redfish/v1/$metadata#Session.Session",
19 # "@odata.id": "/redfish/v1/SessionService/Sessions/gxgwFkuPqo",
20 # "@odata.type": "#Session.v1_0_2.Session",
21 # "Description": "Manager User Session",
22 # "Id": "gxgwFkuPqo",
23 # "Name": "User Session",
24 # "UserName": "root"
25 # }
26
George Keishing9cef1092018-08-06 01:06:24 -050027 ${session_url} =
28 ... Catenate SEPARATOR= ${REDFISH_SESSION_URI} ${test_session_id}
29 ${resp} = Redfish Get Request
George Keishing1552dd32018-08-06 13:14:09 -050030 ... ${session_url} xauth_token=${test_auth_token}
31
32 Should Be Equal As Strings
33 ... /redfish/v1/${session_url} ${resp["@odata.id"]}
34
35
George Keishingd61775f2018-08-09 01:02:30 -050036Test Delete Redfish Session With Invalid Token
37 [Documentation] Delete valid session with invalid token.
38
39 ${session_uri} =
40 ... Catenate SEPARATOR= ${REDFISH_SESSION_URI} ${test_session_id}
41
42 ${resp} = Redfish Delete Request
43 ... ${session_uri} xauth_token=InvalidToken resp_check=${0}
44 Should Be Equal As Strings ${resp.status_code} ${HTTP_UNAUTHORIZED}
45
46
George Keishing884d7d42018-08-09 12:43:13 -050047Test Delete Redfish Response Codes
48 [Documentation] Get Redfish response codes and validate them.
49 [Tags] Test_Delete_Redfish_Response_Codes
50
51 ${resp} = Redfish Delete Request
52 ... Systems/motherboard xauth_token=${test_auth_token} resp_check=${0}
53 Should Be Equal As Strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED}
54
55
George Keishing1552dd32018-08-06 13:14:09 -050056Test Invalid Redfish Token Access
57 [Documentation] Access valid session id using invalid session token.
58 [Tags] Test_Invalid_Redfish_Token_Access
59
60 ${session_url} =
61 ... Catenate SEPARATOR= ${REDFISH_SESSION_URI} ${test_session_id}
62 ${resp} = Redfish Get Request
George Keishing884d7d42018-08-09 12:43:13 -050063 ... ${session_url} xauth_token=InvalidToken resp_check=${0}
George Keishing1552dd32018-08-06 13:14:09 -050064 Should Be Equal As Strings ${resp.status_code} ${HTTP_UNAUTHORIZED}
George Keishing9cef1092018-08-06 01:06:24 -050065
66
67Test Get Redfish Response Codes
George Keishingeaa73b72018-07-30 09:30:16 -050068 [Documentation] Get Redfish response codes and validate them.
George Keishing9cef1092018-08-06 01:06:24 -050069 [Tags] Test_Get_Redfish_Response_Codes
George Keishingeaa73b72018-07-30 09:30:16 -050070 [Template] Execute Get And Check Response
71
72 # Expected status URL Path
George Keishing884d7d42018-08-09 12:43:13 -050073 ${HTTP_OK} ${EMPTY}
George Keishingeaa73b72018-07-30 09:30:16 -050074 ${HTTP_OK} Systems
75 ${HTTP_OK} Systems/motherboard
76 ${HTTP_OK} Chassis/system
77 ${HTTP_OK} Managers/openbmc/EthernetInterfaces/eth0
78 ${HTTP_NOT_FOUND} /i/dont/exist/
79
80*** Keywords ***
81
82Execute Get And Check Response
83 [Documentation] Execute "GET" request and check for expected status.
84 [Arguments] ${expected_response_code} ${url_path}
85 # Description of argument(s):
86 # expected_response_code Expected REST status codes.
87 # url_path URL path.
88
George Keishing9cef1092018-08-06 01:06:24 -050089 ${resp} = Redfish Get Request
George Keishing884d7d42018-08-09 12:43:13 -050090 ... ${url_path} xauth_token=${test_auth_token} resp_check=${0}
George Keishingeaa73b72018-07-30 09:30:16 -050091 Should Be Equal As Strings ${resp.status_code} ${expected_response_code}
George Keishing9cef1092018-08-06 01:06:24 -050092
93
94Test Setup Execution
95 [Documentation] Do the test setup.
96
97 ${session_id} ${auth_token} = Redfish Login Request
98 Set Test Variable ${test_session_id} ${session_id}
99 Set Test Variable ${test_auth_token} ${auth_token}
100
101
102Test Teardown Execution
103 [Documentation] Do the test teardown.
104
George Keishing138f9d32018-08-08 10:50:05 -0500105 ${session_uri} =
106 ... Catenate SEPARATOR= ${REDFISH_SESSION_URI} ${test_session_id}
107
108 Redfish Delete Request ${session_uri} ${test_auth_token}