blob: 39171c9a307f075ac2de3ff6ffbd6138202d6a83 [file] [log] [blame]
Sivas SRR6aa101f2019-02-19 22:31:55 -06001*** Settings ***
2Documentation Test Redfish user account.
3
4Resource ../../lib/resource.robot
5Resource ../../lib/bmc_redfish_resource.robot
6Resource ../../lib/openbmc_ffdc.robot
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -05007Resource ../../lib/bmc_redfish_utils.robot
Sivas SRR6aa101f2019-02-19 22:31:55 -06008
manashsarma654cbc12021-09-23 02:28:12 -05009Library SSHLibrary
10
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -050011Test Setup Redfish.Login
Sivas SRR6aa101f2019-02-19 22:31:55 -060012Test Teardown Test Teardown Execution
13
Sandhya Somashekar37122b62019-06-18 06:02:02 -050014*** Variables ***
15
16${account_lockout_duration} ${30}
17${account_lockout_threshold} ${3}
18
Sivas SRR6aa101f2019-02-19 22:31:55 -060019** Test Cases **
20
21Verify AccountService Available
Sivas SRRfa6831c2019-02-22 00:12:00 -060022 [Documentation] Verify Redfish account service is available.
Sivas SRR6aa101f2019-02-19 22:31:55 -060023 [Tags] Verify_AccountService_Available
24
George Keishing97c93942019-03-04 12:45:07 -060025 ${resp} = Redfish_utils.Get Attribute /redfish/v1/AccountService ServiceEnabled
Sivas SRR6aa101f2019-02-19 22:31:55 -060026 Should Be Equal As Strings ${resp} ${True}
27
Rahul Maheshwarid0aa72b2022-08-23 06:44:07 -050028
29Verify Redfish Admin User Persistence After Reboot
30 [Documentation] Verify Redfish admin user persistence after reboot.
31 [Tags] Verify_Redfish_Admin_User_Persistence_After_Reboot
32 [Setup] Run Keywords Redfish.Login AND
33 ... Redfish Create User admin_user TestPwd123 Administrator ${True}
34 [Teardown] Run Keywords Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
35 ... AND Test Teardown Execution
Sandhya Somashekara83fb472019-08-29 02:26:21 -050036
37 # Reboot BMC.
38 Redfish OBMC Reboot (off) stack_mode=normal
Sandhya Somashekara83fb472019-08-29 02:26:21 -050039
40 # Verify users after reboot.
41 Redfish Verify User admin_user TestPwd123 Administrator ${True}
Rahul Maheshwarid0aa72b2022-08-23 06:44:07 -050042
43
44Verify Redfish Operator User Persistence After Reboot
45 [Documentation] Verify Redfish operator user persistence after reboot.
46 [Tags] Verify_Redfish_Operator_User_Persistence_After_Reboot
47 [Setup] Run Keywords Redfish.Login AND
48 ... Redfish Create User operator_user TestPwd123 Operator ${True}
49 [Teardown] Run Keywords Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
50 ... AND Test Teardown Execution
51
52 # Reboot BMC.
53 Redfish OBMC Reboot (off) stack_mode=normal
54
55 # Verify users after reboot.
Sandhya Somashekara83fb472019-08-29 02:26:21 -050056 Redfish Verify User operator_user TestPwd123 Operator ${True}
Rahul Maheshwarid0aa72b2022-08-23 06:44:07 -050057
58
59Verify Redfish Readonly User Persistence After Reboot
60 [Documentation] Verify Redfish readonly user persistence after reboot.
61 [Tags] Verify_Redfish_Readonly_User_Persistence_After_Reboot
62 [Setup] Run Keywords Redfish.Login AND
63 ... Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
64 [Teardown] Run Keywords Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
65 ... AND Test Teardown Execution
66
67 # Reboot BMC.
68 Redfish OBMC Reboot (off) stack_mode=normal
69
70 # Verify users after reboot.
Anusha Dathatri4062b442020-02-03 04:39:15 -060071 Redfish Verify User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekara83fb472019-08-29 02:26:21 -050072
Sandhya Somashekara83fb472019-08-29 02:26:21 -050073
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -050074Redfish Create and Verify Admin User
75 [Documentation] Create a Redfish user with administrator role and verify.
George Keishingf5176902022-05-12 04:23:59 -050076 [Tags] Redfish_Create_and_Verify_Admin_User
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -060077 [Template] Redfish Create And Verify User
78
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050079 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050080 admin_user TestPwd123 Administrator ${True}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -050081
82
83Redfish Create and Verify Operator User
84 [Documentation] Create a Redfish user with operator role and verify.
85 [Tags] Redfish_Create_and_Verify_Operator_User
86 [Template] Redfish Create And Verify User
87
88 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050089 operator_user TestPwd123 Operator ${True}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -050090
91
92Redfish Create and Verify Readonly User
93 [Documentation] Create a Redfish user with readonly role and verify.
94 [Tags] Redfish_Create_and_Verify_Readonly_User
95 [Template] Redfish Create And Verify User
96
97 #username password role_id enabled
Anusha Dathatri4062b442020-02-03 04:39:15 -060098 readonly_user TestPwd123 ReadOnly ${True}
Sivas SRR6aa101f2019-02-19 22:31:55 -060099
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500100
101Verify Redfish Admin User With Wrong Password
102 [Documentation] Verify Redfish admin user with wrong password.
103 [Tags] Verify_Redfish_Admin_User_With_Wrong_Password
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500104 [Template] Verify Redfish User with Wrong Password
105
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500106 #username password role_id enabled wrong_password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500107 admin_user TestPwd123 Administrator ${True} alskjhfwurh
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500108
109
110Verify Redfish Operator User with Wrong Password
111 [Documentation] Verify Redfish operator user with wrong password.
112 [Tags] Verify_Redfish_Operator_User_with_Wrong_Password
113 [Template] Verify Redfish User with Wrong Password
114
115 #username password role_id enabled wrong_password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500116 operator_user TestPwd123 Operator ${True} 12j8a8uakjhdaosiruf024
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500117
118
119Verify Redfish Readonly User With Wrong Password
120 [Documentation] Verify Redfish readonly user with wrong password.
121 [Tags] Verify_Redfish_Readonly_User_With_Wrong_Password
122 [Template] Verify Redfish User with Wrong Password
123
124 #username password role_id enabled wrong_password
Anusha Dathatri4062b442020-02-03 04:39:15 -0600125 readonly_user TestPwd123 ReadOnly ${True} 12
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500126
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500127
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500128Verify Login with Deleted Redfish Admin User
129 [Documentation] Verify login with deleted Redfish admin user.
130 [Tags] Verify_Login_with_Deleted_Redfish_Admin_User
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500131 [Template] Verify Login with Deleted Redfish User
132
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500133 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500134 admin_user TestPwd123 Administrator ${True}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500135
136
137Verify Login with Deleted Redfish Operator User
138 [Documentation] Verify login with deleted Redfish operator user.
139 [Tags] Verify_Login_with_Deleted_Redfish_Operator_User
140 [Template] Verify Login with Deleted Redfish User
141
142 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500143 operator_user TestPwd123 Operator ${True}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500144
145
146Verify Login with Deleted Redfish Readonly User
147 [Documentation] Verify login with deleted Redfish readonly user.
148 [Tags] Verify_Login_with_Deleted_Redfish_Readonly_User
149 [Template] Verify Login with Deleted Redfish User
150
151 #username password role_id enabled
Anusha Dathatri4062b442020-02-03 04:39:15 -0600152 readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500153
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500154
155Verify Admin User Creation Without Enabling It
156 [Documentation] Verify admin user creation without enabling it.
157 [Tags] Verify_Admin_User_Creation_Without_Enabling_It
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500158 [Template] Verify Create User Without Enabling
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500159
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500160 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500161 admin_user TestPwd123 Administrator ${False}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500162
163
164Verify Operator User Creation Without Enabling It
165 [Documentation] Verify operator user creation without enabling it.
166 [Tags] Verify_Operator_User_Creation_Without_Enabling_It
167 [Template] Verify Create User Without Enabling
168
169 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500170 operator_user TestPwd123 Operator ${False}
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500171
172
173Verify Readonly User Creation Without Enabling It
174 [Documentation] Verify readonly user creation without enabling it.
175 [Tags] Verify_Readonly_User_Creation_Without_Enabling_It
176 [Template] Verify Create User Without Enabling
177
178 #username password role_id enabled
Anusha Dathatri4062b442020-02-03 04:39:15 -0600179 readonly_user TestPwd123 ReadOnly ${False}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500180
Rahul Maheshwaricbc4c0b2022-04-25 05:29:25 -0500181
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500182Verify User Creation With Invalid Role Id
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500183 [Documentation] Verify user creation with invalid role ID.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500184 [Tags] Verify_User_Creation_With_Invalid_Role_Id
185
186 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600187 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500188 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
189
190 # Create specified user.
191 ${payload}= Create Dictionary
192 ... UserName=test_user Password=TestPwd123 RoleId=wrongroleid Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600193 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500194 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
195
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500196Verify Error Upon Creating Same Users With Different Privileges
197 [Documentation] Verify error upon creating same users with different privileges.
198 [Tags] Verify_Error_Upon_Creating_Same_Users_With_Different_Privileges
199
200 Redfish Create User test_user TestPwd123 Administrator ${True}
201
202 # Create specified user.
203 ${payload}= Create Dictionary
Nandish-Matti232a6f02023-04-07 05:54:32 -0500204 ... UserName=test_user Password=TestPwd123 RoleId=ReadOnly Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600205 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500206 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
207
Anusha Dathatri466816f2020-01-30 05:12:36 -0600208 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500209
Rahul Maheshwari124ebef2022-08-23 12:06:59 -0500210
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500211Verify Modifying User Attributes
212 [Documentation] Verify modifying user attributes.
213 [Tags] Verify_Modifying_User_Attributes
Rahul Maheshwari124ebef2022-08-23 12:06:59 -0500214
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500215 # Create Redfish users.
216 Redfish Create User admin_user TestPwd123 Administrator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600217 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500218
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500219 # Make sure the new user account does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600220 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500221 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
222
223 # Update admin_user username using Redfish.
224 ${payload}= Create Dictionary UserName=newadmin_user
Anusha Dathatri466816f2020-01-30 05:12:36 -0600225 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500226
Anusha Dathatri4062b442020-02-03 04:39:15 -0600227 # Update readonly_user role using Redfish.
Rahul Maheshwari124ebef2022-08-23 12:06:59 -0500228 ${payload}= Create Dictionary RoleId=Administrator
Anusha Dathatri466816f2020-01-30 05:12:36 -0600229 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500230
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500231 # Verify users after updating
232 Redfish Verify User newadmin_user TestPwd123 Administrator ${True}
Rahul Maheshwari124ebef2022-08-23 12:06:59 -0500233 Redfish Verify User readonly_user TestPwd123 Administrator ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500234
235 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600236 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
Anusha Dathatri466816f2020-01-30 05:12:36 -0600237 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500238
Rahul Maheshwari124ebef2022-08-23 12:06:59 -0500239
240Verify Modifying Operator User Attributes
241 [Documentation] Verify modifying operator user attributes.
242 [Tags] Verify_Modifying_Operator_User_Attributes
243 [Setup] Run Keywords Redfish.Login AND
244 ... Redfish Create User operator_user TestPwd123 Operator ${True}
245 [Teardown] Run Keywords Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
246 ... AND Test Teardown Execution
247
248 # Update operator_user password using Redfish.
249 ${payload}= Create Dictionary Password=NewTestPwd123
250 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body=&{payload}
251
252 # Verify users after updating
253 Redfish Verify User operator_user NewTestPwd123 Operator ${True}
254
255
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500256Verify User Account Locked
257 [Documentation] Verify user account locked upon trying with invalid password.
258 [Tags] Verify_User_Account_Locked
259
260 Redfish Create User admin_user TestPwd123 Administrator ${True}
261
Joy Onyerikwu1483ce02019-06-26 14:56:36 -0500262 ${payload}= Create Dictionary AccountLockoutThreshold=${account_lockout_threshold}
263 ... AccountLockoutDuration=${account_lockout_duration}
264 Redfish.Patch ${REDFISH_ACCOUNTS_SERVICE_URI} body=${payload}
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500265
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500266 Redfish.Logout
267
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500268 # Make ${account_lockout_threshold} failed login attempts.
269 Repeat Keyword ${account_lockout_threshold} times
270 ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login admin_user abc123
271
272 # Verify that legitimate login fails due to lockout.
273 Run Keyword And Expect Error InvalidCredentialsError*
274 ... Redfish.Login admin_user TestPwd123
275
276 # Wait for lockout duration to expire and then verify that login works.
277 Sleep ${account_lockout_duration}s
278 Redfish.Login admin_user TestPwd123
279
280 Redfish.Logout
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500281
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500282 Redfish.Login
283
Anusha Dathatri466816f2020-01-30 05:12:36 -0600284 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500285
aravinth0510746884b2022-09-29 16:04:07 +0000286
287Verify User Account Unlock
288 [Documentation] Verify manually unlocking the account before lockout time
289 [Tags] Verify_User_Account_Unlock
George Keishinga36926b2023-05-17 21:54:34 +0530290 [Teardown] Run Keywords Redfish.Logout
291 ... AND Redfish.Login
aravinth0510746884b2022-09-29 16:04:07 +0000292 ... AND Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
293 ... AND SSHLibrary.Close All Connections
294
295 Redfish Create User test_user TestPwd123 Administrator ${True}
296
297 ${payload}= Create Dictionary
298 ... AccountLockoutThreshold=${account_lockout_threshold}
299 ... AccountLockoutDuration=${account_lockout_duration}
300 Redfish.Patch ${REDFISH_ACCOUNTS_SERVICE_URI} body=${payload}
301
302 Redfish.Logout
303
304 # Make ${account_lockout_threshold} failed login attempts.
305 Repeat Keyword ${account_lockout_threshold} times
306 ... Run Keyword And Expect Error InvalidCredentialsError*
307 ... Redfish.Login test_user abc123
308
309 # Ensure SSH Login with locked account gets failed
310 SSHLibrary.Open Connection ${OPENBMC_HOST}
311 Run Keyword And Expect Error Authentication failed*
312 ... SSHLibrary.Login test_user TestPwd123
313
314 # Verify that legitimate login fails due to lockout.
315 Run Keyword And Expect Error InvalidCredentialsError*
316 ... Redfish.Login test_user TestPwd123
317
318 ${payload}= Create Dictionary Locked=${FALSE}
319
320 # Manually unlock the account before lockout threshold expires
321 Redfish.Login
322 Redfish.Patch ${REDFISH_ACCOUNTS_URI}test_user body=${payload}
323 Redfish.Logout
324
325 # Try redfish login with the recently unlocked account
326 Redfish.Login test_user TestPwd123
327
328 # Try SSH login with the unlocked account
329 SSHLibrary.Open Connection ${OPENBMC_HOST}
330 SSHLibrary.Login test_user TestPwd123
331
332
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500333Verify Admin User Privilege
334 [Documentation] Verify admin user privilege.
335 [Tags] Verify_Admin_User_Privilege
336
337 Redfish Create User admin_user TestPwd123 Administrator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600338 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500339
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500340 Redfish.Logout
341
Rahul Maheshwari3bc08642022-08-23 12:49:48 -0500342 Redfish.Login admin_user TestPwd123
343
344 # Change password of 'readonly' user with admin user.
345 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body={'Password': 'NewTestPwd123'}
346
347 # Verify modified user.
348 Redfish Verify User readonly_user NewTestPwd123 ReadOnly ${True}
349
350 # Note: Delete user would work here because a root login is
351 # performed as part of "Redfish Verify User" keyword's teardown.
352 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
353 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
354
355
356Verify Operator User Role Change Using Admin Privilege User
357 [Documentation] Verify operator user role change using admin privilege user
358 [Tags] Verify_Operator_User_Role_Change_Using_Admin_Privilege_User
359
360 Redfish Create User admin_user TestPwd123 Administrator ${True}
361 Redfish Create User operator_user TestPwd123 Operator ${True}
362
363 Redfish.Logout
364
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500365 # Change role ID of operator user with admin user.
366 # Login with admin user.
367 Redfish.Login admin_user TestPwd123
368
369 # Modify Role ID of Operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600370 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body={'RoleId': 'Administrator'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500371
372 # Verify modified user.
373 Redfish Verify User operator_user TestPwd123 Administrator ${True}
374
Anusha Dathatri466816f2020-01-30 05:12:36 -0600375 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
376 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
Rahul Maheshwari3bc08642022-08-23 12:49:48 -0500377
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500378
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500379Verify Operator User Privilege
380 [Documentation] Verify operator user privilege.
George Keishing5236ec52022-01-31 12:07:58 -0600381 [Tags] Verify_Operator_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500382
383 Redfish Create User admin_user TestPwd123 Administrator ${True}
384 Redfish Create User operator_user TestPwd123 Operator ${True}
385
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500386 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500387 # Login with operator user.
388 Redfish.Login operator_user TestPwd123
389
George Keishing093c1bd2020-02-10 09:47:34 -0600390 # Verify BMC reset.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500391 Run Keyword And Expect Error ValueError* Redfish BMC Reset Operation
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500392
393 # Attempt to change password of admin user with operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600394 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body={'Password': 'NewTestPwd123'}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500395 ... valid_status_codes=[${HTTP_FORBIDDEN}]
396
397 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500398
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500399 Redfish.Login
400
Anusha Dathatri466816f2020-01-30 05:12:36 -0600401 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
402 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500403
404
Anusha Dathatri4062b442020-02-03 04:39:15 -0600405Verify ReadOnly User Privilege
406 [Documentation] Verify ReadOnly user privilege.
407 [Tags] Verify_ReadOnly_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500408
Anusha Dathatri4062b442020-02-03 04:39:15 -0600409 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500410 Redfish.Logout
411
412 # Login with read_only user.
413 Redfish.Login readonly_user TestPwd123
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500414
415 # Read system level data.
416 ${system_model}= Redfish_Utils.Get Attribute
417 ... ${SYSTEM_BASE_URI} Model
418
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500419 Redfish.Logout
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500420 Redfish.Login
Anusha Dathatri4062b442020-02-03 04:39:15 -0600421 Redfish.Delete ${REDFISH_ACCOUNTS_URI}readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500422
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500423
Anusha Dathatri466816f2020-01-30 05:12:36 -0600424Verify Minimum Password Length For Redfish User
425 [Documentation] Verify minimum password length for new and existing user.
426 [Tags] Verify_Minimum_Password_Length_For_Redfish_User
427
428 ${user_name}= Set Variable testUser
429
430 # Make sure the user account in question does not already exist.
431 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
432 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
433
434 # Try to create a user with invalid length password.
435 ${payload}= Create Dictionary
436 ... UserName=${user_name} Password=UserPwd RoleId=Administrator Enabled=${True}
437 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
438 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
439
440 # Create specified user with valid length password.
441 Set To Dictionary ${payload} Password UserPwd1
442 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
443 ... valid_status_codes=[${HTTP_CREATED}]
444
445 # Try to change to an invalid password.
446 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd'}
447 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
448
449 # Change to a valid password.
450 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd1'}
451
452 # Verify login.
453 Redfish.Logout
454 Redfish.Login ${user_name} UserPwd1
455 Redfish.Logout
456 Redfish.Login
457 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
458
459
Tony Lee94335f42021-02-04 15:16:39 +0800460Verify Standard User Roles Defined By Redfish
461 [Documentation] Verify standard user roles defined by Redfish.
462 [Tags] Verify_Standard_User_Roles_Defined_By_Redfish
463
464 ${member_list}= Redfish_Utils.Get Member List
465 ... /redfish/v1/AccountService/Roles
466
467 @{roles}= Create List
468 ... /redfish/v1/AccountService/Roles/Administrator
469 ... /redfish/v1/AccountService/Roles/Operator
470 ... /redfish/v1/AccountService/Roles/ReadOnly
471
472 List Should Contain Sub List ${member_list} ${roles}
473
474 # The standard roles are:
475
476 # | Role name | Assigned privileges |
477 # | Administrator | Login, ConfigureManager, ConfigureUsers, ConfigureComponents, ConfigureSelf |
478 # | Operator | Login, ConfigureComponents, ConfigureSelf |
479 # | ReadOnly | Login, ConfigureSelf |
480
481 @{admin}= Create List Login ConfigureManager ConfigureUsers ConfigureComponents ConfigureSelf
482 @{operator}= Create List Login ConfigureComponents ConfigureSelf
483 @{readOnly}= Create List Login ConfigureSelf
484
485 ${roles_dict}= create dictionary admin_privileges=${admin} operator_privileges=${operator}
486 ... readOnly_privileges=${readOnly}
487
488 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Administrator
489 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['admin_privileges']}
490
491 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Operator
492 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['operator_privileges']}
493
494 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/ReadOnly
495 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['readOnly_privileges']}
496
497
manashsarma4910aa22021-07-26 09:12:36 -0500498Verify Error While Deleting Root User
499 [Documentation] Verify error while deleting root user.
500 [Tags] Verify_Error_While_Deleting_Root_User
501
502 Redfish.Delete /redfish/v1/AccountService/Accounts/root valid_status_codes=[${HTTP_FORBIDDEN}]
503
504
manashsarma654cbc12021-09-23 02:28:12 -0500505Verify SSH Login Access With Admin User
506 [Documentation] Verify that admin user does not have SSH login access.
507 [Tags] Verify_SSH_Login_Access_With_Admin_User
508
509 # Create an admin User.
510 Redfish Create User new_admin TestPwd1 Administrator ${True}
511
512 # Attempt SSH login with admin user.
513 SSHLibrary.Open Connection ${OPENBMC_HOST}
514 ${status}= Run Keyword And Return Status SSHLibrary.Login new_admin TestPwd1
515 Should Be Equal ${status} ${False}
516
George Keishinge8015b32022-09-19 09:38:47 -0500517 Redfish.Login
518 Redfish.Delete /redfish/v1/AccountService/Accounts/new_admin
519
manashsarma654cbc12021-09-23 02:28:12 -0500520
aravinth0510746884b2022-09-29 16:04:07 +0000521Verify Configure BasicAuth Enable And Disable
522 [Documentation] Verify configure basicauth enable and disable
523 [Tags] Verify_Configure_BasicAuth_Enable_And_Disable
524 [Template] Template For Configure Auth Methods
525
526 # auth_method
527 BasicAuth
528 XToken
529
Sivas SRR6aa101f2019-02-19 22:31:55 -0600530*** Keywords ***
531
Sivas SRR6aa101f2019-02-19 22:31:55 -0600532Test Teardown Execution
533 [Documentation] Do the post test teardown.
534
Anusha Dathatridb769702020-02-12 01:02:30 -0600535 Run Keyword And Ignore Error Redfish.Logout
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500536 FFDC On Test Case Fail
537
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600538
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500539Redfish Create User
540 [Documentation] Redfish create user.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500541 [Arguments] ${username} ${password} ${role_id} ${enabled} ${login_check}=${True}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500542
543 # Description of argument(s):
544 # username The username to be created.
545 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500546 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500547 # (e.g. "Administrator", "Operator", etc.).
548 # enabled Indicates whether the username being created
549 # should be enabled (${True}, ${False}).
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500550 # login_check Checks user login for created user.
551 # (e.g. ${True}, ${False}).
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500552
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500553 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600554 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500555 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
556
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500557 # Create specified user.
558 ${payload}= Create Dictionary
559 ... UserName=${username} Password=${password} RoleId=${role_id} Enabled=${enabled}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600560 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500561 ... valid_status_codes=[${HTTP_CREATED}]
562
Rahul Maheshwari9928b1d2021-07-19 04:59:55 -0500563 # Resetting faillock count as a workaround for issue
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600564 # openbmc/phosphor-user-manager#4
nagarjunb2261267e92022-03-30 21:04:16 +0530565 ${cmd}= Catenate test -f /usr/sbin/faillock && /usr/sbin/faillock --user USER --reset
566 ... || /usr/sbin/pam_tally2 -u ${username} --reset
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600567 Bmc Execute Command ${cmd}
568
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500569 # Verify login with created user.
570 ${status}= Run Keyword If '${login_check}' == '${True}'
571 ... Verify Redfish User Login ${username} ${password}
572 Run Keyword If '${login_check}' == '${True}' Should Be Equal ${status} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500573
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500574 # Validate Role ID of created user.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500575 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600576 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500577 Should Be Equal ${role_id} ${role_config}
578
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500579
580Redfish Verify User
581 [Documentation] Redfish user verification.
582 [Arguments] ${username} ${password} ${role_id} ${enabled}
583
584 # Description of argument(s):
585 # username The username to be created.
586 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500587 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500588 # (e.g. "Administrator", "Operator", etc.).
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500589 # enabled Indicates whether the username being created
590 # should be enabled (${True}, ${False}).
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500591
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500592 ${status}= Verify Redfish User Login ${username} ${password}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500593 # Doing a check of the returned status.
594 Should Be Equal ${status} ${enabled}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500595
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500596 # Validate Role Id of user.
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500597 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600598 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500599 Should Be Equal ${role_id} ${role_config}
600
601
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500602Verify Redfish User Login
603 [Documentation] Verify Redfish login with given user id.
604 [Teardown] Run Keywords Run Keyword And Ignore Error Redfish.Logout AND Redfish.Login
605 [Arguments] ${username} ${password}
606
607 # Description of argument(s):
608 # username Login username.
609 # password Login password.
610
611 # Logout from current Redfish session.
George Keishing1cf2a422021-02-02 22:59:29 -0600612 # We don't really care if the current session is flushed out since we are going to login
613 # with new credential in next.
614 Run Keyword And Ignore Error Redfish.Logout
615
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500616 ${status}= Run Keyword And Return Status Redfish.Login ${username} ${password}
617 [Return] ${status}
618
619
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600620Redfish Create And Verify User
621 [Documentation] Redfish create and verify user.
622 [Arguments] ${username} ${password} ${role_id} ${enabled}
623
624 # Description of argument(s):
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500625 # username The username to be created.
626 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500627 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500628 # (e.g. "Administrator", "Operator", etc.).
629 # enabled Indicates whether the username being created
630 # should be enabled (${True}, ${False}).
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600631
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500632 # Example:
633 #{
634 #"@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
635 #"@odata.id": "/redfish/v1/AccountService/Accounts/test1",
636 #"@odata.type": "#ManagerAccount.v1_0_3.ManagerAccount",
637 #"Description": "User Account",
638 #"Enabled": true,
639 #"Id": "test1",
640 #"Links": {
641 # "Role": {
642 # "@odata.id": "/redfish/v1/AccountService/Roles/Administrator"
643 # }
644 #},
645
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500646 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600647
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500648 Redfish Verify User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600649
650 # Delete Specified User
Anusha Dathatri466816f2020-01-30 05:12:36 -0600651 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500652
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500653Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500654 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500655 [Arguments] ${username} ${password} ${role_id} ${enabled} ${wrong_password}
656
657 # Description of argument(s):
658 # username The username to be created.
659 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500660 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500661 # (e.g. "Administrator", "Operator", etc.).
662 # enabled Indicates whether the username being created
663 # should be enabled (${True}, ${False}).
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500664 # wrong_password Any invalid password.
665
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500666 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500667
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500668 Redfish.Logout
669
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500670 # Attempt to login with created user with invalid password.
671 Run Keyword And Expect Error InvalidCredentialsError*
672 ... Redfish.Login ${username} ${wrong_password}
673
674 Redfish.Login
675
676 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600677 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500678
679
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500680Verify Login with Deleted Redfish User
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500681 [Documentation] Verify Login with Deleted Redfish User.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500682 [Arguments] ${username} ${password} ${role_id} ${enabled}
683
684 # Description of argument(s):
685 # username The username to be created.
686 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500687 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500688 # (e.g. "Administrator", "Operator", etc.).
689 # enabled Indicates whether the username being created
690 # should be enabled (${True}, ${False}).
691
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500692 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500693
694 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600695 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500696
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500697 Redfish.Logout
698
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500699 # Attempt to login with deleted user account.
700 Run Keyword And Expect Error InvalidCredentialsError*
701 ... Redfish.Login ${username} ${password}
702
703 Redfish.Login
704
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500705
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500706Verify Create User Without Enabling
707 [Documentation] Verify Create User Without Enabling.
708 [Arguments] ${username} ${password} ${role_id} ${enabled}
709
710 # Description of argument(s):
711 # username The username to be created.
712 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500713 # role_id The role ID of the user to be created
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500714 # (e.g. "Administrator", "Operator", etc.).
715 # enabled Indicates whether the username being created
716 # should be enabled (${True}, ${False}).
717
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500718 Redfish Create User ${username} ${password} ${role_id} ${enabled} ${False}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500719
720 Redfish.Logout
721
722 # Login with created user.
723 Run Keyword And Expect Error InvalidCredentialsError*
724 ... Redfish.Login ${username} ${password}
725
726 Redfish.Login
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500727
728 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600729 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
George Keishing07fb41f2020-06-16 08:09:19 -0500730
aravinth0510746884b2022-09-29 16:04:07 +0000731Template For Configure Auth Methods
732 [Documentation] Template to configure auth methods.
733 [Arguments] ${auth_method}
734 [Teardown] Configure AuthMethods ${auth_method}=${initial_value}
735
736 # Description of Argument(s):
737 # authmethods The authmethod setting which needs to be
738 # set in account service URI.
739 # valid values BasicAuth, XToken.
740
741 Get AuthMethods Default Values ${auth_method}
742
743 # Patch basicauth to TRUE
744 Configure AuthMethods ${auth_method}=${TRUE}
745
746 Run Keyword IF "${auth_method}" == "XToken"
747 ... Check XToken Works Fine ${HTTP_OK}
748 ... ELSE
749 ... Check BasicAuth Works Fine ${HTTP_OK}
750
751 # Patch basicauth to FALSE
752 Configure AuthMethods ${auth_method}=${FALSE}
753
754 Run Keyword IF "${auth_method}" == "BasicAuth"
755 ... Check BasicAuth Works Fine ${HTTP_UNAUTHORIZED}
756 ... ELSE
757 ... Check XToken Works Fine ${HTTP_UNAUTHORIZED}
758
759Configure AuthMethods
760 [Documentation] Enable/disable authmethod types.
761 [Arguments] &{authmethods}
762
763 # Description of argument(s):
764 # authmethods The authmethod setting which needs to be
765 # set in account service URI.
766 # Usage Example Configure AuthMethods XToken=${TRUE} BasicAuth=${TRUE}
767 # This will set the value of "XToken" and "BasicAuth"
768 # property in accountservice uri to TRUE.
769
770 ${openbmc}= Create Dictionary AuthMethods=${authmethods}
771 ${oem}= Create Dictionary OpenBMC=${openbmc}
772 ${payload}= Create Dictionary Oem=${oem}
773
774 # Setting authmethod properties using Redfish session based auth
775 ${status}= Run Keyword And Return Status
776 ... Redfish.Patch ${REDFISH_BASE_URI}AccountService
777 ... body=${payload} valid_status_codes=[${HTTP_OK},${HTTP_NO_CONTENT}]
778
779 # Setting authmethod properties using basic auth incase the former fails
780 IF ${status}==${FALSE}
781 # Payload dictionary pre-process to match json formatting
782 ${payload}= Convert To String ${payload}
783 ${payload}= Replace String ${payload} ' "
784 ${payload}= Replace String ${payload} False false
785 ${payload}= Replace String ${payload} True true
786
787 # Curl Command Framing for PATCH authmethod
788 ${cmd}= Catenate curl -k -i -u ${OPENBMC_USERNAME}:${OPENBMC_PASSWORD}
789 ... -X PATCH '${AUTH_URI}${REDFISH_ACCOUNTS_SERVICE_URI}'
790 ... -H 'content-type:application/json' -H 'If-Match:*'
791 ... -d '${payload}'
792 ${rc} ${out}= Run And Return Rc And Output ${cmd}
793
794 # Check the response of curl command is 200 or 204
795 ${check_no_content}=
796 ... Run Keyword and Return Status Should Contain ${out} 204
797 ${check_ok}=
798 ... Run Keyword and Return Status Should Contain ${out} 200
799 Pass Execution If ${check_no_content}==${TRUE}
800 ... OR ${check_ok}==${TRUE}
801 END
802
803
804Get AuthMethods Default Values
805 [Documentation] Get enabled/disabled status of all authmethods
806 ... from Redfish account service URI
807 [Arguments] ${authmethod}
808
809 # Description of argument(s):
810 # authmethod The authmethod property whose value needs to be
811 # retrieved from account service URI.
812 # Usage Example Get AuthMethods Default Values BasicAuth
813 # returns >> ${TRUE}
814 # Example:
815 # {
816 # "@odata.id": "/redfish/v1/AccountService",
817 # (...)
818 # "Oem": {
819 # "OpenBMC": {
820 # "AuthMethods": {
821 # "BasicAuth": true,
822 # "Cookie": true,
823 # "SessionToken": true,
824 # "TLS": true,
825 # "XToken": true
826 # }
827 # }
828 # }
829 # }
830
831 ${resp}= Redfish.Get Attribute ${REDFISH_ACCOUNTS_SERVICE_URI} Oem
832 ${authmethods}= Set Variable ${resp['OpenBMC']['AuthMethods']}
833 ${initial_value}= Get From Dictionary ${authmethods} ${authmethod}
834 Set Test Variable ${initial_value}
835
836Check XToken Works Fine
837 [Documentation] Verify Xtoken works fine.
838 [Arguments] ${status_code}
839
840 # Description of Argument(s):
841 # status_code : 200, 401.
842
843 # Verify xtoken auth works for xtoken
844 Redfish.Get ${REDFISH_ACCOUNTS_SERVICE_URI}
845 ... valid_status_codes=[${status_code}]
846
847Check BasicAuth Works Fine
848 [Documentation] Verify Basic Auth works fine.
849 [Arguments] ${status_code}
850
851 # Description of Argument(s):
852 # status_code : 200, 401.
853
854 # Verify basic auth works based on basic auth.
855 ${cmd}= Catenate curl -k -i -u ${OPENBMC_USERNAME}:${OPENBMC_PASSWORD}
856 ... ${AUTH_URI}/redfish/v1/AccountService
857 ${rc} ${out}= Run And Return Rc And Output ${cmd}
858
859 # Check the response of curl command is 200/401
860 Should Contain ${out} ${status_code}