blob: d18b541b296b093e3dbbd6dd91c31ef926fe1ab6 [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
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -05009Test Setup Redfish.Login
Sivas SRR6aa101f2019-02-19 22:31:55 -060010Test Teardown Test Teardown Execution
11
Sandhya Somashekar37122b62019-06-18 06:02:02 -050012*** Variables ***
13
14${account_lockout_duration} ${30}
15${account_lockout_threshold} ${3}
16
Sivas SRR6aa101f2019-02-19 22:31:55 -060017** Test Cases **
18
19Verify AccountService Available
Sivas SRRfa6831c2019-02-22 00:12:00 -060020 [Documentation] Verify Redfish account service is available.
Sivas SRR6aa101f2019-02-19 22:31:55 -060021 [Tags] Verify_AccountService_Available
22
George Keishing97c93942019-03-04 12:45:07 -060023 ${resp} = Redfish_utils.Get Attribute /redfish/v1/AccountService ServiceEnabled
Sivas SRR6aa101f2019-02-19 22:31:55 -060024 Should Be Equal As Strings ${resp} ${True}
25
Sandhya Somashekara83fb472019-08-29 02:26:21 -050026Verify Redfish User Persistence After Reboot
27 [Documentation] Verify Redfish user persistence after reboot.
28 [Tags] Verify_Redfish_User_Persistence_After_Reboot
29
30 # Create Redfish users.
31 Redfish Create User admin_user TestPwd123 Administrator ${True}
32 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060033 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekara83fb472019-08-29 02:26:21 -050034
35 # Reboot BMC.
36 Redfish OBMC Reboot (off) stack_mode=normal
Sandhya Somashekara83fb472019-08-29 02:26:21 -050037
38 # Verify users after reboot.
39 Redfish Verify User admin_user TestPwd123 Administrator ${True}
40 Redfish Verify User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060041 Redfish Verify User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekara83fb472019-08-29 02:26:21 -050042
43 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -060044 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
45 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
46 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekara83fb472019-08-29 02:26:21 -050047
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -060048Redfish Create and Verify Users
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050049 [Documentation] Create Redfish users with various roles.
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -060050 [Tags] Redfish_Create_and_Verify_Users
51 [Template] Redfish Create And Verify User
52
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050053 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050054 admin_user TestPwd123 Administrator ${True}
55 operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060056 readonly_user TestPwd123 ReadOnly ${True}
Sivas SRR6aa101f2019-02-19 22:31:55 -060057
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050058Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050059 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050060 [Tags] Verify_Redfish_User_with_Wrong_Password
61 [Template] Verify Redfish User with Wrong Password
62
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050063 #username password role_id enabled wrong_password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050064 admin_user TestPwd123 Administrator ${True} alskjhfwurh
65 operator_user TestPwd123 Operator ${True} 12j8a8uakjhdaosiruf024
Anusha Dathatri4062b442020-02-03 04:39:15 -060066 readonly_user TestPwd123 ReadOnly ${True} 12
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -050067
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050068Verify Login with Deleted Redfish Users
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050069 [Documentation] Verify login with deleted Redfish Users.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050070 [Tags] Verify_Login_with_Deleted_Redfish_Users
71 [Template] Verify Login with Deleted Redfish User
72
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050073 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050074 admin_user TestPwd123 Administrator ${True}
75 operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -060076 readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -050077
George Keishinge0c5ec32019-06-13 09:45:29 -050078Verify User Creation Without Enabling It
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050079 [Documentation] Verify User Creation Without Enabling it.
George Keishinge0c5ec32019-06-13 09:45:29 -050080 [Tags] Verify_User_Creation_Without_Enabling_It
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050081 [Template] Verify Create User Without Enabling
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050082
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050083 #username password role_id enabled
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050084 admin_user TestPwd123 Administrator ${False}
85 operator_user TestPwd123 Operator ${False}
Anusha Dathatri4062b442020-02-03 04:39:15 -060086 readonly_user TestPwd123 ReadOnly ${False}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -050087
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050088Verify User Creation With Invalid Role Id
Sandhya Somashekard7d46c02019-06-26 05:10:25 -050089 [Documentation] Verify user creation with invalid role ID.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050090 [Tags] Verify_User_Creation_With_Invalid_Role_Id
91
92 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -060093 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekare92b1e62019-04-25 05:27:45 -050094 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
95
96 # Create specified user.
97 ${payload}= Create Dictionary
98 ... UserName=test_user Password=TestPwd123 RoleId=wrongroleid Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -060099 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500100 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
101
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500102Verify Error Upon Creating Same Users With Different Privileges
103 [Documentation] Verify error upon creating same users with different privileges.
104 [Tags] Verify_Error_Upon_Creating_Same_Users_With_Different_Privileges
105
106 Redfish Create User test_user TestPwd123 Administrator ${True}
107
108 # Create specified user.
109 ${payload}= Create Dictionary
110 ... UserName=test_user Password=TestPwd123 RoleId=Operator Enabled=${True}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600111 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500112 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
113
Anusha Dathatri466816f2020-01-30 05:12:36 -0600114 Redfish.Delete /redfish/v1/AccountService/Accounts/test_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500115
116Verify Modifying User Attributes
117 [Documentation] Verify modifying user attributes.
118 [Tags] Verify_Modifying_User_Attributes
119
120 # Create Redfish users.
121 Redfish Create User admin_user TestPwd123 Administrator ${True}
122 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600123 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500124
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500125 # Make sure the new user account does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600126 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500127 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
128
129 # Update admin_user username using Redfish.
130 ${payload}= Create Dictionary UserName=newadmin_user
Anusha Dathatri466816f2020-01-30 05:12:36 -0600131 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500132
133 # Update operator_user password using Redfish.
134 ${payload}= Create Dictionary Password=NewTestPwd123
Anusha Dathatri466816f2020-01-30 05:12:36 -0600135 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500136
Anusha Dathatri4062b442020-02-03 04:39:15 -0600137 # Update readonly_user role using Redfish.
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500138 ${payload}= Create Dictionary RoleId=Operator
Anusha Dathatri466816f2020-01-30 05:12:36 -0600139 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500140
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500141 # Verify users after updating
142 Redfish Verify User newadmin_user TestPwd123 Administrator ${True}
143 Redfish Verify User operator_user NewTestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600144 Redfish Verify User readonly_user TestPwd123 Operator ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500145
146 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600147 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
148 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
149 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500150
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500151Verify User Account Locked
152 [Documentation] Verify user account locked upon trying with invalid password.
153 [Tags] Verify_User_Account_Locked
154
155 Redfish Create User admin_user TestPwd123 Administrator ${True}
156
Joy Onyerikwu1483ce02019-06-26 14:56:36 -0500157 ${payload}= Create Dictionary AccountLockoutThreshold=${account_lockout_threshold}
158 ... AccountLockoutDuration=${account_lockout_duration}
159 Redfish.Patch ${REDFISH_ACCOUNTS_SERVICE_URI} body=${payload}
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500160
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500161 Redfish.Logout
162
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500163 # Make ${account_lockout_threshold} failed login attempts.
164 Repeat Keyword ${account_lockout_threshold} times
165 ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login admin_user abc123
166
167 # Verify that legitimate login fails due to lockout.
168 Run Keyword And Expect Error InvalidCredentialsError*
169 ... Redfish.Login admin_user TestPwd123
170
171 # Wait for lockout duration to expire and then verify that login works.
172 Sleep ${account_lockout_duration}s
173 Redfish.Login admin_user TestPwd123
174
175 Redfish.Logout
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500176
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500177 Redfish.Login
178
Anusha Dathatri466816f2020-01-30 05:12:36 -0600179 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500180
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500181Verify Admin User Privilege
182 [Documentation] Verify admin user privilege.
183 [Tags] Verify_Admin_User_Privilege
184
185 Redfish Create User admin_user TestPwd123 Administrator ${True}
186 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600187 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500188
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500189 Redfish.Logout
190
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500191 # Change role ID of operator user with admin user.
192 # Login with admin user.
193 Redfish.Login admin_user TestPwd123
194
195 # Modify Role ID of Operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600196 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body={'RoleId': 'Administrator'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500197
198 # Verify modified user.
199 Redfish Verify User operator_user TestPwd123 Administrator ${True}
200
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500201 Redfish.Logout
202 Redfish.Login admin_user TestPwd123
203
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500204 # Change password of 'user' user with admin user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600205 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body={'Password': 'NewTestPwd123'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500206
207 # Verify modified user.
Anusha Dathatri4062b442020-02-03 04:39:15 -0600208 Redfish Verify User readonly_user NewTestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500209
Anusha Dathatri466816f2020-01-30 05:12:36 -0600210 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
211 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
212 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500213
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500214Verify Operator User Privilege
215 [Documentation] Verify operator user privilege.
216 [Tags] Verify_operator_User_Privilege
217
218 Redfish Create User admin_user TestPwd123 Administrator ${True}
219 Redfish Create User operator_user TestPwd123 Operator ${True}
220
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500221 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500222 # Login with operator user.
223 Redfish.Login operator_user TestPwd123
224
George Keishing093c1bd2020-02-10 09:47:34 -0600225 # Verify BMC reset.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500226 Run Keyword And Expect Error ValueError* Redfish BMC Reset Operation
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500227
228 # Attempt to change password of admin user with operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600229 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body={'Password': 'NewTestPwd123'}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500230 ... valid_status_codes=[${HTTP_FORBIDDEN}]
231
232 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500233
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500234 Redfish.Login
235
Anusha Dathatri466816f2020-01-30 05:12:36 -0600236 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
237 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500238
239
Anusha Dathatri4062b442020-02-03 04:39:15 -0600240Verify ReadOnly User Privilege
241 [Documentation] Verify ReadOnly user privilege.
242 [Tags] Verify_ReadOnly_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500243
Anusha Dathatri4062b442020-02-03 04:39:15 -0600244 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500245 Redfish.Logout
246
247 # Login with read_only user.
248 Redfish.Login readonly_user TestPwd123
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500249
250 # Read system level data.
251 ${system_model}= Redfish_Utils.Get Attribute
252 ... ${SYSTEM_BASE_URI} Model
253
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500254 Redfish.Logout
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500255 Redfish.Login
Anusha Dathatri4062b442020-02-03 04:39:15 -0600256 Redfish.Delete ${REDFISH_ACCOUNTS_URI}readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500257
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500258
Anusha Dathatri466816f2020-01-30 05:12:36 -0600259Verify Minimum Password Length For Redfish User
260 [Documentation] Verify minimum password length for new and existing user.
261 [Tags] Verify_Minimum_Password_Length_For_Redfish_User
262
263 ${user_name}= Set Variable testUser
264
265 # Make sure the user account in question does not already exist.
266 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
267 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
268
269 # Try to create a user with invalid length password.
270 ${payload}= Create Dictionary
271 ... UserName=${user_name} Password=UserPwd RoleId=Administrator Enabled=${True}
272 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
273 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
274
275 # Create specified user with valid length password.
276 Set To Dictionary ${payload} Password UserPwd1
277 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
278 ... valid_status_codes=[${HTTP_CREATED}]
279
280 # Try to change to an invalid password.
281 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd'}
282 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
283
284 # Change to a valid password.
285 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd1'}
286
287 # Verify login.
288 Redfish.Logout
289 Redfish.Login ${user_name} UserPwd1
290 Redfish.Logout
291 Redfish.Login
292 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
293
294
Tony Lee94335f42021-02-04 15:16:39 +0800295Verify Standard User Roles Defined By Redfish
296 [Documentation] Verify standard user roles defined by Redfish.
297 [Tags] Verify_Standard_User_Roles_Defined_By_Redfish
298
299 ${member_list}= Redfish_Utils.Get Member List
300 ... /redfish/v1/AccountService/Roles
301
302 @{roles}= Create List
303 ... /redfish/v1/AccountService/Roles/Administrator
304 ... /redfish/v1/AccountService/Roles/Operator
305 ... /redfish/v1/AccountService/Roles/ReadOnly
306
307 List Should Contain Sub List ${member_list} ${roles}
308
309 # The standard roles are:
310
311 # | Role name | Assigned privileges |
312 # | Administrator | Login, ConfigureManager, ConfigureUsers, ConfigureComponents, ConfigureSelf |
313 # | Operator | Login, ConfigureComponents, ConfigureSelf |
314 # | ReadOnly | Login, ConfigureSelf |
315
316 @{admin}= Create List Login ConfigureManager ConfigureUsers ConfigureComponents ConfigureSelf
317 @{operator}= Create List Login ConfigureComponents ConfigureSelf
318 @{readOnly}= Create List Login ConfigureSelf
319
320 ${roles_dict}= create dictionary admin_privileges=${admin} operator_privileges=${operator}
321 ... readOnly_privileges=${readOnly}
322
323 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Administrator
324 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['admin_privileges']}
325
326 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Operator
327 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['operator_privileges']}
328
329 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/ReadOnly
330 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['readOnly_privileges']}
331
332
manashsarma4910aa22021-07-26 09:12:36 -0500333Verify Error While Deleting Root User
334 [Documentation] Verify error while deleting root user.
335 [Tags] Verify_Error_While_Deleting_Root_User
336
337 Redfish.Delete /redfish/v1/AccountService/Accounts/root valid_status_codes=[${HTTP_FORBIDDEN}]
338
339
Sivas SRR6aa101f2019-02-19 22:31:55 -0600340*** Keywords ***
341
Sivas SRR6aa101f2019-02-19 22:31:55 -0600342Test Teardown Execution
343 [Documentation] Do the post test teardown.
344
Anusha Dathatridb769702020-02-12 01:02:30 -0600345 Run Keyword And Ignore Error Redfish.Logout
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500346 FFDC On Test Case Fail
347
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600348
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500349Redfish Create User
350 [Documentation] Redfish create user.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500351 [Arguments] ${username} ${password} ${role_id} ${enabled} ${login_check}=${True}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500352
353 # Description of argument(s):
354 # username The username to be created.
355 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500356 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500357 # (e.g. "Administrator", "Operator", etc.).
358 # enabled Indicates whether the username being created
359 # should be enabled (${True}, ${False}).
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500360 # login_check Checks user login for created user.
361 # (e.g. ${True}, ${False}).
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500362
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500363 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600364 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500365 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
366
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500367 # Create specified user.
368 ${payload}= Create Dictionary
369 ... UserName=${username} Password=${password} RoleId=${role_id} Enabled=${enabled}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600370 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500371 ... valid_status_codes=[${HTTP_CREATED}]
372
Rahul Maheshwari9928b1d2021-07-19 04:59:55 -0500373 # Resetting faillock count as a workaround for issue
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600374 # openbmc/phosphor-user-manager#4
Rahul Maheshwari9928b1d2021-07-19 04:59:55 -0500375 ${cmd}= Catenate /usr/sbin/faillock --user USER --reset
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600376 Bmc Execute Command ${cmd}
377
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500378 # Verify login with created user.
379 ${status}= Run Keyword If '${login_check}' == '${True}'
380 ... Verify Redfish User Login ${username} ${password}
381 Run Keyword If '${login_check}' == '${True}' Should Be Equal ${status} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500382
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500383 # Validate Role ID of created user.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500384 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600385 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500386 Should Be Equal ${role_id} ${role_config}
387
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500388
389Redfish Verify User
390 [Documentation] Redfish user verification.
391 [Arguments] ${username} ${password} ${role_id} ${enabled}
392
393 # Description of argument(s):
394 # username The username to be created.
395 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500396 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500397 # (e.g. "Administrator", "Operator", etc.).
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500398 # enabled Indicates whether the username being created
399 # should be enabled (${True}, ${False}).
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500400
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500401 ${status}= Verify Redfish User Login ${username} ${password}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500402 # Doing a check of the returned status.
403 Should Be Equal ${status} ${enabled}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500404
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500405 # Validate Role Id of user.
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500406 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600407 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500408 Should Be Equal ${role_id} ${role_config}
409
410
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500411Verify Redfish User Login
412 [Documentation] Verify Redfish login with given user id.
413 [Teardown] Run Keywords Run Keyword And Ignore Error Redfish.Logout AND Redfish.Login
414 [Arguments] ${username} ${password}
415
416 # Description of argument(s):
417 # username Login username.
418 # password Login password.
419
420 # Logout from current Redfish session.
George Keishing1cf2a422021-02-02 22:59:29 -0600421 # We don't really care if the current session is flushed out since we are going to login
422 # with new credential in next.
423 Run Keyword And Ignore Error Redfish.Logout
424
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500425 ${status}= Run Keyword And Return Status Redfish.Login ${username} ${password}
426 [Return] ${status}
427
428
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600429Redfish Create And Verify User
430 [Documentation] Redfish create and verify user.
431 [Arguments] ${username} ${password} ${role_id} ${enabled}
432
433 # Description of argument(s):
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500434 # username The username to be created.
435 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500436 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500437 # (e.g. "Administrator", "Operator", etc.).
438 # enabled Indicates whether the username being created
439 # should be enabled (${True}, ${False}).
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600440
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500441 # Example:
442 #{
443 #"@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
444 #"@odata.id": "/redfish/v1/AccountService/Accounts/test1",
445 #"@odata.type": "#ManagerAccount.v1_0_3.ManagerAccount",
446 #"Description": "User Account",
447 #"Enabled": true,
448 #"Id": "test1",
449 #"Links": {
450 # "Role": {
451 # "@odata.id": "/redfish/v1/AccountService/Roles/Administrator"
452 # }
453 #},
454
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500455 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600456
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500457 Redfish Verify User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600458
459 # Delete Specified User
Anusha Dathatri466816f2020-01-30 05:12:36 -0600460 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500461
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500462Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500463 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500464 [Arguments] ${username} ${password} ${role_id} ${enabled} ${wrong_password}
465
466 # Description of argument(s):
467 # username The username to be created.
468 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500469 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500470 # (e.g. "Administrator", "Operator", etc.).
471 # enabled Indicates whether the username being created
472 # should be enabled (${True}, ${False}).
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500473 # wrong_password Any invalid password.
474
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500475 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500476
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500477 Redfish.Logout
478
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500479 # Attempt to login with created user with invalid password.
480 Run Keyword And Expect Error InvalidCredentialsError*
481 ... Redfish.Login ${username} ${wrong_password}
482
483 Redfish.Login
484
485 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600486 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500487
488
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500489Verify Login with Deleted Redfish User
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500490 [Documentation] Verify Login with Deleted Redfish User.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500491 [Arguments] ${username} ${password} ${role_id} ${enabled}
492
493 # Description of argument(s):
494 # username The username to be created.
495 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500496 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500497 # (e.g. "Administrator", "Operator", etc.).
498 # enabled Indicates whether the username being created
499 # should be enabled (${True}, ${False}).
500
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500501 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500502
503 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600504 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500505
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500506 Redfish.Logout
507
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500508 # Attempt to login with deleted user account.
509 Run Keyword And Expect Error InvalidCredentialsError*
510 ... Redfish.Login ${username} ${password}
511
512 Redfish.Login
513
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500514
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500515Verify Create User Without Enabling
516 [Documentation] Verify Create User Without Enabling.
517 [Arguments] ${username} ${password} ${role_id} ${enabled}
518
519 # Description of argument(s):
520 # username The username to be created.
521 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500522 # role_id The role ID of the user to be created
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500523 # (e.g. "Administrator", "Operator", etc.).
524 # enabled Indicates whether the username being created
525 # should be enabled (${True}, ${False}).
526
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500527 Redfish Create User ${username} ${password} ${role_id} ${enabled} ${False}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500528
529 Redfish.Logout
530
531 # Login with created user.
532 Run Keyword And Expect Error InvalidCredentialsError*
533 ... Redfish.Login ${username} ${password}
534
535 Redfish.Login
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500536
537 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600538 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
George Keishing07fb41f2020-06-16 08:09:19 -0500539