blob: b1e24e6adea320f8f96d7b4fe9ff8f9afc3b6a05 [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
204 ... UserName=test_user Password=TestPwd123 RoleId=Operator 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
210Verify Modifying User Attributes
211 [Documentation] Verify modifying user attributes.
212 [Tags] Verify_Modifying_User_Attributes
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500213 # Create Redfish users.
214 Redfish Create User admin_user TestPwd123 Administrator ${True}
215 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600216 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500217
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500218 # Make sure the new user account does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600219 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500220 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
221
222 # Update admin_user username using Redfish.
223 ${payload}= Create Dictionary UserName=newadmin_user
Anusha Dathatri466816f2020-01-30 05:12:36 -0600224 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500225
226 # Update operator_user password using Redfish.
227 ${payload}= Create Dictionary Password=NewTestPwd123
Anusha Dathatri466816f2020-01-30 05:12:36 -0600228 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500229
Anusha Dathatri4062b442020-02-03 04:39:15 -0600230 # Update readonly_user role using Redfish.
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500231 ${payload}= Create Dictionary RoleId=Operator
Anusha Dathatri466816f2020-01-30 05:12:36 -0600232 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body=&{payload}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500233
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500234 # Verify users after updating
235 Redfish Verify User newadmin_user TestPwd123 Administrator ${True}
236 Redfish Verify User operator_user NewTestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600237 Redfish Verify User readonly_user TestPwd123 Operator ${True}
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500238
239 # Delete created users.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600240 Redfish.Delete /redfish/v1/AccountService/Accounts/newadmin_user
241 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
242 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500243
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500244Verify User Account Locked
245 [Documentation] Verify user account locked upon trying with invalid password.
246 [Tags] Verify_User_Account_Locked
247
248 Redfish Create User admin_user TestPwd123 Administrator ${True}
249
Joy Onyerikwu1483ce02019-06-26 14:56:36 -0500250 ${payload}= Create Dictionary AccountLockoutThreshold=${account_lockout_threshold}
251 ... AccountLockoutDuration=${account_lockout_duration}
252 Redfish.Patch ${REDFISH_ACCOUNTS_SERVICE_URI} body=${payload}
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500253
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500254 Redfish.Logout
255
Sandhya Somashekar37122b62019-06-18 06:02:02 -0500256 # Make ${account_lockout_threshold} failed login attempts.
257 Repeat Keyword ${account_lockout_threshold} times
258 ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login admin_user abc123
259
260 # Verify that legitimate login fails due to lockout.
261 Run Keyword And Expect Error InvalidCredentialsError*
262 ... Redfish.Login admin_user TestPwd123
263
264 # Wait for lockout duration to expire and then verify that login works.
265 Sleep ${account_lockout_duration}s
266 Redfish.Login admin_user TestPwd123
267
268 Redfish.Logout
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500269
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500270 Redfish.Login
271
Anusha Dathatri466816f2020-01-30 05:12:36 -0600272 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500273
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500274Verify Admin User Privilege
275 [Documentation] Verify admin user privilege.
276 [Tags] Verify_Admin_User_Privilege
277
278 Redfish Create User admin_user TestPwd123 Administrator ${True}
279 Redfish Create User operator_user TestPwd123 Operator ${True}
Anusha Dathatri4062b442020-02-03 04:39:15 -0600280 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500281
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500282 Redfish.Logout
283
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500284 # Change role ID of operator user with admin user.
285 # Login with admin user.
286 Redfish.Login admin_user TestPwd123
287
288 # Modify Role ID of Operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600289 Redfish.Patch /redfish/v1/AccountService/Accounts/operator_user body={'RoleId': 'Administrator'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500290
291 # Verify modified user.
292 Redfish Verify User operator_user TestPwd123 Administrator ${True}
293
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500294 Redfish.Logout
295 Redfish.Login admin_user TestPwd123
296
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500297 # Change password of 'user' user with admin user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600298 Redfish.Patch /redfish/v1/AccountService/Accounts/readonly_user body={'Password': 'NewTestPwd123'}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500299
300 # Verify modified user.
Anusha Dathatri4062b442020-02-03 04:39:15 -0600301 Redfish Verify User readonly_user NewTestPwd123 ReadOnly ${True}
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500302
Anusha Dathatri466816f2020-01-30 05:12:36 -0600303 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
304 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
305 Redfish.Delete /redfish/v1/AccountService/Accounts/readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500306
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500307Verify Operator User Privilege
308 [Documentation] Verify operator user privilege.
George Keishing5236ec52022-01-31 12:07:58 -0600309 [Tags] Verify_Operator_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500310
311 Redfish Create User admin_user TestPwd123 Administrator ${True}
312 Redfish Create User operator_user TestPwd123 Operator ${True}
313
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500314 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500315 # Login with operator user.
316 Redfish.Login operator_user TestPwd123
317
George Keishing093c1bd2020-02-10 09:47:34 -0600318 # Verify BMC reset.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500319 Run Keyword And Expect Error ValueError* Redfish BMC Reset Operation
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500320
321 # Attempt to change password of admin user with operator user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600322 Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user body={'Password': 'NewTestPwd123'}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500323 ... valid_status_codes=[${HTTP_FORBIDDEN}]
324
325 Redfish.Logout
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500326
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500327 Redfish.Login
328
Anusha Dathatri466816f2020-01-30 05:12:36 -0600329 Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user
330 Redfish.Delete /redfish/v1/AccountService/Accounts/operator_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500331
332
Anusha Dathatri4062b442020-02-03 04:39:15 -0600333Verify ReadOnly User Privilege
334 [Documentation] Verify ReadOnly user privilege.
335 [Tags] Verify_ReadOnly_User_Privilege
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500336
Anusha Dathatri4062b442020-02-03 04:39:15 -0600337 Redfish Create User readonly_user TestPwd123 ReadOnly ${True}
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500338 Redfish.Logout
339
340 # Login with read_only user.
341 Redfish.Login readonly_user TestPwd123
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500342
343 # Read system level data.
344 ${system_model}= Redfish_Utils.Get Attribute
345 ... ${SYSTEM_BASE_URI} Model
346
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500347 Redfish.Logout
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500348 Redfish.Login
Anusha Dathatri4062b442020-02-03 04:39:15 -0600349 Redfish.Delete ${REDFISH_ACCOUNTS_URI}readonly_user
Sandhya Somashekar7a237472019-07-15 02:06:39 -0500350
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500351
Anusha Dathatri466816f2020-01-30 05:12:36 -0600352Verify Minimum Password Length For Redfish User
353 [Documentation] Verify minimum password length for new and existing user.
354 [Tags] Verify_Minimum_Password_Length_For_Redfish_User
355
356 ${user_name}= Set Variable testUser
357
358 # Make sure the user account in question does not already exist.
359 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
360 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
361
362 # Try to create a user with invalid length password.
363 ${payload}= Create Dictionary
364 ... UserName=${user_name} Password=UserPwd RoleId=Administrator Enabled=${True}
365 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
366 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
367
368 # Create specified user with valid length password.
369 Set To Dictionary ${payload} Password UserPwd1
370 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
371 ... valid_status_codes=[${HTTP_CREATED}]
372
373 # Try to change to an invalid password.
374 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd'}
375 ... valid_status_codes=[${HTTP_BAD_REQUEST}]
376
377 # Change to a valid password.
378 Redfish.Patch /redfish/v1/AccountService/Accounts/${user_name} body={'Password': 'UserPwd1'}
379
380 # Verify login.
381 Redfish.Logout
382 Redfish.Login ${user_name} UserPwd1
383 Redfish.Logout
384 Redfish.Login
385 Redfish.Delete /redfish/v1/AccountService/Accounts/${user_name}
386
387
Tony Lee94335f42021-02-04 15:16:39 +0800388Verify Standard User Roles Defined By Redfish
389 [Documentation] Verify standard user roles defined by Redfish.
390 [Tags] Verify_Standard_User_Roles_Defined_By_Redfish
391
392 ${member_list}= Redfish_Utils.Get Member List
393 ... /redfish/v1/AccountService/Roles
394
395 @{roles}= Create List
396 ... /redfish/v1/AccountService/Roles/Administrator
397 ... /redfish/v1/AccountService/Roles/Operator
398 ... /redfish/v1/AccountService/Roles/ReadOnly
399
400 List Should Contain Sub List ${member_list} ${roles}
401
402 # The standard roles are:
403
404 # | Role name | Assigned privileges |
405 # | Administrator | Login, ConfigureManager, ConfigureUsers, ConfigureComponents, ConfigureSelf |
406 # | Operator | Login, ConfigureComponents, ConfigureSelf |
407 # | ReadOnly | Login, ConfigureSelf |
408
409 @{admin}= Create List Login ConfigureManager ConfigureUsers ConfigureComponents ConfigureSelf
410 @{operator}= Create List Login ConfigureComponents ConfigureSelf
411 @{readOnly}= Create List Login ConfigureSelf
412
413 ${roles_dict}= create dictionary admin_privileges=${admin} operator_privileges=${operator}
414 ... readOnly_privileges=${readOnly}
415
416 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Administrator
417 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['admin_privileges']}
418
419 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/Operator
420 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['operator_privileges']}
421
422 ${resp}= redfish.Get /redfish/v1/AccountService/Roles/ReadOnly
423 List Should Contain Sub List ${resp.dict['AssignedPrivileges']} ${roles_dict['readOnly_privileges']}
424
425
manashsarma4910aa22021-07-26 09:12:36 -0500426Verify Error While Deleting Root User
427 [Documentation] Verify error while deleting root user.
428 [Tags] Verify_Error_While_Deleting_Root_User
429
430 Redfish.Delete /redfish/v1/AccountService/Accounts/root valid_status_codes=[${HTTP_FORBIDDEN}]
431
432
manashsarma654cbc12021-09-23 02:28:12 -0500433Verify SSH Login Access With Admin User
434 [Documentation] Verify that admin user does not have SSH login access.
435 [Tags] Verify_SSH_Login_Access_With_Admin_User
436
437 # Create an admin User.
438 Redfish Create User new_admin TestPwd1 Administrator ${True}
439
440 # Attempt SSH login with admin user.
441 SSHLibrary.Open Connection ${OPENBMC_HOST}
442 ${status}= Run Keyword And Return Status SSHLibrary.Login new_admin TestPwd1
443 Should Be Equal ${status} ${False}
444
445
Sivas SRR6aa101f2019-02-19 22:31:55 -0600446*** Keywords ***
447
Sivas SRR6aa101f2019-02-19 22:31:55 -0600448Test Teardown Execution
449 [Documentation] Do the post test teardown.
450
Anusha Dathatridb769702020-02-12 01:02:30 -0600451 Run Keyword And Ignore Error Redfish.Logout
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500452 FFDC On Test Case Fail
453
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600454
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500455Redfish Create User
456 [Documentation] Redfish create user.
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500457 [Arguments] ${username} ${password} ${role_id} ${enabled} ${login_check}=${True}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500458
459 # Description of argument(s):
460 # username The username to be created.
461 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500462 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500463 # (e.g. "Administrator", "Operator", etc.).
464 # enabled Indicates whether the username being created
465 # should be enabled (${True}, ${False}).
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500466 # login_check Checks user login for created user.
467 # (e.g. ${True}, ${False}).
Sandhya Somashekar8c5b2492019-05-16 05:19:03 -0500468
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500469 # Make sure the user account in question does not already exist.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600470 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500471 ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
472
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500473 # Create specified user.
474 ${payload}= Create Dictionary
475 ... UserName=${username} Password=${password} RoleId=${role_id} Enabled=${enabled}
Anusha Dathatri466816f2020-01-30 05:12:36 -0600476 Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500477 ... valid_status_codes=[${HTTP_CREATED}]
478
Rahul Maheshwari9928b1d2021-07-19 04:59:55 -0500479 # Resetting faillock count as a workaround for issue
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600480 # openbmc/phosphor-user-manager#4
nagarjunb2261267e92022-03-30 21:04:16 +0530481 ${cmd}= Catenate test -f /usr/sbin/faillock && /usr/sbin/faillock --user USER --reset
482 ... || /usr/sbin/pam_tally2 -u ${username} --reset
Anusha Dathatrif7268b52020-02-19 01:03:49 -0600483 Bmc Execute Command ${cmd}
484
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500485 # Verify login with created user.
486 ${status}= Run Keyword If '${login_check}' == '${True}'
487 ... Verify Redfish User Login ${username} ${password}
488 Run Keyword If '${login_check}' == '${True}' Should Be Equal ${status} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500489
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500490 # Validate Role ID of created user.
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500491 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600492 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500493 Should Be Equal ${role_id} ${role_config}
494
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500495
496Redfish Verify User
497 [Documentation] Redfish user verification.
498 [Arguments] ${username} ${password} ${role_id} ${enabled}
499
500 # Description of argument(s):
501 # username The username to be created.
502 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500503 # role_id The role ID of the user to be created
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500504 # (e.g. "Administrator", "Operator", etc.).
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500505 # enabled Indicates whether the username being created
506 # should be enabled (${True}, ${False}).
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500507
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500508 ${status}= Verify Redfish User Login ${username} ${password}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500509 # Doing a check of the returned status.
510 Should Be Equal ${status} ${enabled}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500511
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500512 # Validate Role Id of user.
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500513 ${role_config}= Redfish_Utils.Get Attribute
Anusha Dathatri466816f2020-01-30 05:12:36 -0600514 ... /redfish/v1/AccountService/Accounts/${username} RoleId
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500515 Should Be Equal ${role_id} ${role_config}
516
517
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500518Verify Redfish User Login
519 [Documentation] Verify Redfish login with given user id.
520 [Teardown] Run Keywords Run Keyword And Ignore Error Redfish.Logout AND Redfish.Login
521 [Arguments] ${username} ${password}
522
523 # Description of argument(s):
524 # username Login username.
525 # password Login password.
526
527 # Logout from current Redfish session.
George Keishing1cf2a422021-02-02 22:59:29 -0600528 # We don't really care if the current session is flushed out since we are going to login
529 # with new credential in next.
530 Run Keyword And Ignore Error Redfish.Logout
531
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500532 ${status}= Run Keyword And Return Status Redfish.Login ${username} ${password}
533 [Return] ${status}
534
535
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600536Redfish Create And Verify User
537 [Documentation] Redfish create and verify user.
538 [Arguments] ${username} ${password} ${role_id} ${enabled}
539
540 # Description of argument(s):
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500541 # username The username to be created.
542 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500543 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500544 # (e.g. "Administrator", "Operator", etc.).
545 # enabled Indicates whether the username being created
546 # should be enabled (${True}, ${False}).
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600547
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500548 # Example:
549 #{
550 #"@odata.context": "/redfish/v1/$metadata#ManagerAccount.ManagerAccount",
551 #"@odata.id": "/redfish/v1/AccountService/Accounts/test1",
552 #"@odata.type": "#ManagerAccount.v1_0_3.ManagerAccount",
553 #"Description": "User Account",
554 #"Enabled": true,
555 #"Id": "test1",
556 #"Links": {
557 # "Role": {
558 # "@odata.id": "/redfish/v1/AccountService/Roles/Administrator"
559 # }
560 #},
561
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500562 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600563
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500564 Redfish Verify User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar00f59cc2019-03-05 03:39:47 -0600565
566 # Delete Specified User
Anusha Dathatri466816f2020-01-30 05:12:36 -0600567 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500568
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500569Verify Redfish User with Wrong Password
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500570 [Documentation] Verify Redfish User with Wrong Password.
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500571 [Arguments] ${username} ${password} ${role_id} ${enabled} ${wrong_password}
572
573 # Description of argument(s):
574 # username The username to be created.
575 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500576 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500577 # (e.g. "Administrator", "Operator", etc.).
578 # enabled Indicates whether the username being created
579 # should be enabled (${True}, ${False}).
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500580 # wrong_password Any invalid password.
581
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500582 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500583
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500584 Redfish.Logout
585
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500586 # Attempt to login with created user with invalid password.
587 Run Keyword And Expect Error InvalidCredentialsError*
588 ... Redfish.Login ${username} ${wrong_password}
589
590 Redfish.Login
591
592 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600593 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
Sandhya Somashekar33aa48c2019-03-13 05:54:49 -0500594
595
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500596Verify Login with Deleted Redfish User
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500597 [Documentation] Verify Login with Deleted Redfish User.
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500598 [Arguments] ${username} ${password} ${role_id} ${enabled}
599
600 # Description of argument(s):
601 # username The username to be created.
602 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500603 # role_id The role ID of the user to be created
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500604 # (e.g. "Administrator", "Operator", etc.).
605 # enabled Indicates whether the username being created
606 # should be enabled (${True}, ${False}).
607
Sandhya Somashekaraa280aa2019-04-01 04:15:06 -0500608 Redfish Create User ${username} ${password} ${role_id} ${enabled}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500609
610 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600611 Redfish.Delete /redfish/v1/AccountService/Accounts/${userName}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500612
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500613 Redfish.Logout
614
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500615 # Attempt to login with deleted user account.
616 Run Keyword And Expect Error InvalidCredentialsError*
617 ... Redfish.Login ${username} ${password}
618
619 Redfish.Login
620
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500621
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500622Verify Create User Without Enabling
623 [Documentation] Verify Create User Without Enabling.
624 [Arguments] ${username} ${password} ${role_id} ${enabled}
625
626 # Description of argument(s):
627 # username The username to be created.
628 # password The password to be assigned.
Sandhya Somashekard7d46c02019-06-26 05:10:25 -0500629 # role_id The role ID of the user to be created
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500630 # (e.g. "Administrator", "Operator", etc.).
631 # enabled Indicates whether the username being created
632 # should be enabled (${True}, ${False}).
633
Anusha Dathatrie0dddcf2020-06-18 05:23:16 -0500634 Redfish Create User ${username} ${password} ${role_id} ${enabled} ${False}
Sandhya Somashekare92b1e62019-04-25 05:27:45 -0500635
636 Redfish.Logout
637
638 # Login with created user.
639 Run Keyword And Expect Error InvalidCredentialsError*
640 ... Redfish.Login ${username} ${password}
641
642 Redfish.Login
Sandhya Somashekaraf402ca2019-03-18 05:59:19 -0500643
644 # Delete newly created user.
Anusha Dathatri466816f2020-01-30 05:12:36 -0600645 Redfish.Delete /redfish/v1/AccountService/Accounts/${username}
George Keishing07fb41f2020-06-16 08:09:19 -0500646