blob: a4a1de72e446df6608ba41cc5bc0719e30dc5247 [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
7
8Test Setup Test Setup Execution
9Test Teardown Test Teardown Execution
10
Sandhya Somashekar37122b62019-06-18 06:02:02 -050011*** Variables ***
12
13${account_lockout_duration} ${30}
14${account_lockout_threshold} ${3}
15
Sivas SRR6aa101f2019-02-19 22:31:55 -060016** Test Cases **
17
18Verify AccountService Available
Sivas SRRfa6831c2019-02-22 00:12:00 -060019 [Documentation] Verify Redfish account service is available.
Sivas SRR6aa101f2019-02-19 22:31:55 -060020 [Tags] Verify_AccountService_Available
21
George Keishing97c93942019-03-04 12:45:07 -060022 ${resp} = Redfish_utils.Get Attribute /redfish/v1/AccountService ServiceEnabled
Sivas SRR6aa101f2019-02-19 22:31:55 -060023 Should Be Equal As Strings ${resp} ${True}
24
Sandhya Somashekara83fb472019-08-29 02:26:21 -050025Verify Redfish User Persistence After Reboot
26 [Documentation] Verify Redfish user persistence after reboot.
27 [Tags] Verify_Redfish_User_Persistence_After_Reboot
28
29 # Create Redfish users.
30 Redfish Create User admin_user TestPwd123 Administrator ${True}
31 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060032 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekara83fb472019-08-29 02:26:21 -050033 Redfish Create User callback_user TestPwd123 Callback ${True}
34
35 # Reboot BMC.
36 Redfish OBMC Reboot (off) stack_mode=normal
37 Redfish.Login
38
39 # Verify users after reboot.
40 Redfish Verify User admin_user TestPwd123 Administrator ${True}
41 Redfish Verify User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060042 Redfish Verify User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekara83fb472019-08-29 02:26:21 -050043 Redfish Verify User callback_user TestPwd123 Callback ${True}
44
45 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -060046 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
47 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
48 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
49 Redfish.Delete /redfish/v1/AccountService/Accounts/callback_user
Sandhya Somashekara83fb472019-08-29 02:26:21 -050050
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -060051Redfish Create and Verify Users
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050052 [Documentation] Create Redfish users with various roles.
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -060053 [Tags] Redfish_Create_and_Verify_Users
54 [Template] Redfish Create And Verify User
55
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050056 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050057 admin_user TestPwd123 Administrator ${True}
58 operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060059 readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050060 callback_user TestPwd123 Callback ${True}
Sivas SRR6aa101f2019-02-19 22:31:55 -060061
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050062Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050063 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050064 [Tags] Verify_Redfish_User_with_Wrong_Password
65 [Template] Verify Redfish User with Wrong Password
66
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050067 #username password role_id enabled wrong_password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050068 admin_user TestPwd123 Administrator ${True} alskjhfwurh
69 operator_user TestPwd123 Operator ${True} 12j8a8uakjhdaosiruf024
Anusha Dathatri4062b442020-02-03 04:39:15 -060070 readonly_user TestPwd123 ReadOnly ${True} 12
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050071 callback_user TestPwd123 Callback ${True} !#@D#RF#@!D
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050072
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050073Verify Login with Deleted Redfish Users
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050074 [Documentation] Verify login with deleted Redfish Users.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050075 [Tags] Verify_Login_with_Deleted_Redfish_Users
76 [Template] Verify Login with Deleted Redfish User
77
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050078 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050079 admin_user TestPwd123 Administrator ${True}
80 operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060081 readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050082 callback_user TestPwd123 Callback ${True}
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050083
George Keishinge0c5ec32019-06-13 09:45:29 -050084Verify User Creation Without Enabling It
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050085 [Documentation] Verify User Creation Without Enabling it.
George Keishinge0c5ec32019-06-13 09:45:29 -050086 [Tags] Verify_User_Creation_Without_Enabling_It
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050087 [Template] Verify Create User Without Enabling
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050088
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050089 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050090 admin_user TestPwd123 Administrator ${False}
91 operator_user TestPwd123 Operator ${False}
Anusha Dathatri4062b442020-02-03 04:39:15 -060092 readonly_user TestPwd123 ReadOnly ${False}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050093 callback_user TestPwd123 Callback ${False}
94
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050095
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050096Verify User Creation With Invalid Role Id
Sandhya Somashekard7d46c02019-06-26 05:10:25 -050097 [Documentation] Verify user creation with invalid role ID.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050098 [Tags] Verify_User_Creation_With_Invalid_Role_Id
99
100 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600101 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500102 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
103
104 # Create specified user.
105 ${payload}= Create Dictionary
106 ... UserName=test_user Password=TestPwd123 RoleId=wrongroleid Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600107 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500108 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
109
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500110Verify Error Upon Creating Same Users With Different Privileges
111 [Documentation] Verify error upon creating same users with different privileges.
112 [Tags] Verify_Error_Upon_Creating_Same_Users_With_Different_Privileges
113
114 Redfish Create User test_user TestPwd123 Administrator ${True}
115
116 # Create specified user.
117 ${payload}= Create Dictionary
118 ... UserName=test_user Password=TestPwd123 RoleId=Operator Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600119 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500120 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
121
Anusha Dathatri466816f2020-01-30 05:12:36 -0600122 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500123
124Verify Modifying User Attributes
125 [Documentation] Verify modifying user attributes.
126 [Tags] Verify_Modifying_User_Attributes
127
128 # Create Redfish users.
129 Redfish Create User admin_user TestPwd123 Administrator ${True}
130 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600131 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500132 Redfish Create User callback_user TestPwd123 Callback ${True}
133
134 Redfish.Login
135
136 # Make sure the new user account does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600137 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500138 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
139
140 # Update admin_user username using Redfish.
141 ${payload}= Create Dictionary UserName=newadmin_user
Anusha Dathatri466816f2020-01-30 05:12:36 -0600142 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500143
144 # Update operator_user password using Redfish.
145 ${payload}= Create Dictionary Password=NewTestPwd123
Anusha Dathatri466816f2020-01-30 05:12:36 -0600146 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500147
Anusha Dathatri4062b442020-02-03 04:39:15 -0600148 # Update readonly_user role using Redfish.
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500149 ${payload}= Create Dictionary RoleId=Operator
Anusha Dathatri466816f2020-01-30 05:12:36 -0600150 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500151
152 # Update callback_user to disable using Redfish.
153 ${payload}= Create Dictionary Enabled=${False}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600154 Redfish.Patch /redfish/v1/AccountService/Accounts/callback_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500155
156 # Verify users after updating
157 Redfish Verify User newadmin_user TestPwd123 Administrator ${True}
158 Redfish Verify User operator_user NewTestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600159 Redfish Verify User readonly_user TestPwd123 Operator ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500160 Redfish Verify User callback_user TestPwd123 Callback ${False}
161
162 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600163 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
164 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
165 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
166 Redfish.Delete /redfish/v1/AccountService/Accounts/callback_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500167
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500168Verify User Account Locked
169 [Documentation] Verify user account locked upon trying with invalid password.
170 [Tags] Verify_User_Account_Locked
171
172 Redfish Create User admin_user TestPwd123 Administrator ${True}
173
Sandhya Somashekar4737c8f2019-07-11 00:00:58 -0500174 Redfish.Logout
175
176 Redfish.Login
177
Joy Onyerikwu1483ce02019-06-26 14:56:36 -0500178 ${payload}= Create Dictionary AccountLockoutThreshold=${account_lockout_threshold}
179 ... AccountLockoutDuration=${account_lockout_duration}
180 Redfish.Patch ${REDFISH_ACCOUNTS_SERVICE_URI} body=${payload}
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500181
182 # Make ${account_lockout_threshold} failed login attempts.
183 Repeat Keyword ${account_lockout_threshold} times
184 ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login admin_user abc123
185
186 # Verify that legitimate login fails due to lockout.
187 Run Keyword And Expect Error InvalidCredentialsError*
188 ... Redfish.Login admin_user TestPwd123
189
190 # Wait for lockout duration to expire and then verify that login works.
191 Sleep ${account_lockout_duration}s
192 Redfish.Login admin_user TestPwd123
193
194 Redfish.Logout
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500195
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500196 Redfish.Login
197
Anusha Dathatri466816f2020-01-30 05:12:36 -0600198 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500199
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500200Verify Admin User Privilege
201 [Documentation] Verify admin user privilege.
202 [Tags] Verify_Admin_User_Privilege
203
204 Redfish Create User admin_user TestPwd123 Administrator ${True}
205 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600206 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500207
208 # Change role ID of operator user with admin user.
209 # Login with admin user.
210 Redfish.Login admin_user TestPwd123
211
212 # Modify Role ID of Operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600213 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body={'RoleId': 'Administrator'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500214
215 # Verify modified user.
216 Redfish Verify User operator_user TestPwd123 Administrator ${True}
217
218 # Change password of 'user' user with admin user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600219 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body={'Password': 'NewTestPwd123'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500220
221 # Verify modified user.
Anusha Dathatri4062b442020-02-03 04:39:15 -0600222 Redfish Verify User readonly_user NewTestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500223
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500224 Redfish.Login
225
Anusha Dathatri466816f2020-01-30 05:12:36 -0600226 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
227 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
228 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500229
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500230Verify Operator User Privilege
231 [Documentation] Verify operator user privilege.
232 [Tags] Verify_operator_User_Privilege
233
234 Redfish Create User admin_user TestPwd123 Administrator ${True}
235 Redfish Create User operator_user TestPwd123 Operator ${True}
236
237 # Login with operator user.
238 Redfish.Login operator_user TestPwd123
239
240 # Verify power on system.
241 Redfish OBMC Reboot (off) stack_mode=normal
242
243 # Attempt to change password of admin user with operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600244 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body={'Password': 'NewTestPwd123'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500245 ... valid_status_codes=[${HTTP_UNAUTHORIZED}]
246
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500247 Redfish.Login
248
Anusha Dathatri466816f2020-01-30 05:12:36 -0600249 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
250 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500251
252
Anusha Dathatri4062b442020-02-03 04:39:15 -0600253Verify ReadOnly User Privilege
254 [Documentation] Verify ReadOnly user privilege.
255 [Tags] Verify_ReadOnly_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500256
Anusha Dathatri4062b442020-02-03 04:39:15 -0600257 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500258
259 # Read system level data.
260 ${system_model}= Redfish_Utils.Get Attribute
261 ... ${SYSTEM_BASE_URI} Model
262
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500263 Redfish.Login
264
Anusha Dathatri4062b442020-02-03 04:39:15 -0600265 Redfish.Delete ${REDFISH_ACCOUNTS_URI}readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500266
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500267
Anusha Dathatri466816f2020-01-30 05:12:36 -0600268Verify Minimum Password Length For Redfish User
269 [Documentation] Verify minimum password length for new and existing user.
270 [Tags] Verify_Minimum_Password_Length_For_Redfish_User
271
272 ${user_name}= Set Variable testUser
273
274 # Make sure the user account in question does not already exist.
275 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
276 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
277
278 # Try to create a user with invalid length password.
279 ${payload}= Create Dictionary
280 ... UserName=${user_name} Password=UserPwd RoleId=Administrator Enabled=${True}
281 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
282 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
283
284 # Create specified user with valid length password.
285 Set To Dictionary ${payload} Password UserPwd1
286 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
287 ... valid_status_codes=[${HTTP_CREATED}]
288
289 # Try to change to an invalid password.
290 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd'}
291 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
292
293 # Change to a valid password.
294 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd1'}
295
296 # Verify login.
297 Redfish.Logout
298 Redfish.Login ${user_name} UserPwd1
299 Redfish.Logout
300 Redfish.Login
301 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
302
303
Sivas SRR6aa101f2019-02-19 22:31:55 -0600304*** Keywords ***
305
306Test Setup Execution
307 [Documentation] Do test case setup tasks.
308
George Keishing97c93942019-03-04 12:45:07 -0600309 Redfish.Login
Sivas SRR6aa101f2019-02-19 22:31:55 -0600310
311
312Test Teardown Execution
313 [Documentation] Do the post test teardown.
314
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500315 FFDC On Test Case Fail
George Keishing97c93942019-03-04 12:45:07 -0600316 Redfish.Logout
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600317
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500318Redfish Create User
319 [Documentation] Redfish create user.
320 [Arguments] ${username} ${password} ${role_id} ${enabled}
321
322 # Description of argument(s):
323 # username The username to be created.
324 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500325 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500326 # (e.g. "Administrator", "Operator", etc.).
327 # enabled Indicates whether the username being created
328 # should be enabled (${True}, ${False}).
329
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500330 Redfish.Login
331
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500332 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600333 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500334 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
335
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500336 # Create specified user.
337 ${payload}= Create Dictionary
338 ... UserName=${username} Password=${password} RoleId=${role_id} Enabled=${enabled}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600339 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500340 ... valid_status_codes=[${HTTP_CREATED}]
341
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500342 Redfish.Logout
343
344 # Login with created user.
George Keishing4916b462019-08-08 23:24:48 -0500345 Run Keyword If ${enabled} == ${False}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500346 ... Run Keyword And Expect Error InvalidCredentialsError*
347 ... Redfish.Login ${username} ${password}
348 ... ELSE
349 ... Redfish.Login ${username} ${password}
350
Sandhya Somashekara83fb472019-08-29 02:26:21 -0500351 Run Keyword If ${enabled} == ${False}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500352 ... Redfish.Login
353
Sandhya Somashekar0e73c112019-09-24 01:11:13 -0500354 Run Keyword If '${role_id}' == 'Callback'
355 ... Run Keywords Redfish.Logout AND Redfish.Login
356
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500357 # Validate Role ID of created user.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500358 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600359 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500360 Should Be Equal ${role_id} ${role_config}
361
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500362
363Redfish Verify User
364 [Documentation] Redfish user verification.
365 [Arguments] ${username} ${password} ${role_id} ${enabled}
366
367 # Description of argument(s):
368 # username The username to be created.
369 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500370 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500371 # (e.g. "Administrator", "Operator", etc.).
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500372 # enabled Indicates whether the username being created
373 # should be enabled (${True}, ${False}).
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500374
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500375 # Trying to do a login with created user.
376 ${status}= Run Keyword And Return Status Redfish.Login ${username} ${password}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500377
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500378 # Doing a check of the returned status.
379 Should Be Equal ${status} ${enabled}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500380
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500381 # We do not need to login with created user (user could be in disabled status).
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500382 Redfish.Login
383
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500384 # Validate Role Id of user.
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500385 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600386 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500387 Should Be Equal ${role_id} ${role_config}
388
389
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600390Redfish Create And Verify User
391 [Documentation] Redfish create and verify user.
392 [Arguments] ${username} ${password} ${role_id} ${enabled}
393
394 # Description of argument(s):
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500395 # username The username to be created.
396 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500397 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500398 # (e.g. "Administrator", "Operator", etc.).
399 # enabled Indicates whether the username being created
400 # should be enabled (${True}, ${False}).
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600401
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500402 # Example:
403 #{
404 #"@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
405 #"@odata.id": "/redfish/v1/AccountService/Accounts/test1",
406 #"@odata.type": "#ManagerAccount.v1_0_3.ManagerAccount",
407 #"Description": "User Account",
408 #"Enabled": true,
409 #"Id": "test1",
410 #"Links": {
411 # "Role": {
412 # "@odata.id": "/redfish/v1/AccountService/Roles/Administrator"
413 # }
414 #},
415
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500416 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600417
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500418 Redfish Verify User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600419
420 # Delete Specified User
Anusha Dathatri466816f2020-01-30 05:12:36 -0600421 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500422
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500423Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500424 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500425 [Arguments] ${username} ${password} ${role_id} ${enabled} ${wrong_password}
426
427 # Description of argument(s):
428 # username The username to be created.
429 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500430 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500431 # (e.g. "Administrator", "Operator", etc.).
432 # enabled Indicates whether the username being created
433 # should be enabled (${True}, ${False}).
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500434 # wrong_password Any invalid password.
435
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500436 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500437
438 # Attempt to login with created user with invalid password.
439 Run Keyword And Expect Error InvalidCredentialsError*
440 ... Redfish.Login ${username} ${wrong_password}
441
442 Redfish.Login
443
444 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600445 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500446
447
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500448Verify Login with Deleted Redfish User
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500449 [Documentation] Verify Login with Deleted Redfish User.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500450 [Arguments] ${username} ${password} ${role_id} ${enabled}
451
452 # Description of argument(s):
453 # username The username to be created.
454 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500455 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500456 # (e.g. "Administrator", "Operator", etc.).
457 # enabled Indicates whether the username being created
458 # should be enabled (${True}, ${False}).
459
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500460 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500461 ${status}= Run Keyword And Return Status Redfish.Login ${username} ${password}
462
463 # Doing a check of the rerurned status
464 Should Be Equal ${status} ${True}
465
466 Redfish.Login
467
468 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600469 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500470
471 # Attempt to login with deleted user account.
472 Run Keyword And Expect Error InvalidCredentialsError*
473 ... Redfish.Login ${username} ${password}
474
475 Redfish.Login
476
477Verify Create User Without Enabling
478 [Documentation] Verify Create User Without Enabling.
479 [Arguments] ${username} ${password} ${role_id} ${enabled}
480
481 # Description of argument(s):
482 # username The username to be created.
483 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500484 # role_id The role ID of the user to be created
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500485 # (e.g. "Administrator", "Operator", etc.).
486 # enabled Indicates whether the username being created
487 # should be enabled (${True}, ${False}).
488
489 Redfish.Login
490
491 Redfish Create User ${username} ${password} ${role_id} ${enabled}
492
493 Redfish.Logout
494
495 # Login with created user.
496 Run Keyword And Expect Error InvalidCredentialsError*
497 ... Redfish.Login ${username} ${password}
498
499 Redfish.Login
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500500
501 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600502 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}