1a87b1b1fSAnves Kumar rayankula*** Settings ***
2a87b1b1fSAnves Kumar rayankulaDocumentation     Test root user expire password.
3a87b1b1fSAnves Kumar rayankula
4a87b1b1fSAnves Kumar rayankulaResource          ../lib/resource.robot
5a9d9341cSshrsuman123Resource          ../gui/lib/gui_resource.robot
6a87b1b1fSAnves Kumar rayankulaResource          ../lib/ipmi_client.robot
7a9d9341cSshrsuman123Resource          ../lib/bmc_redfish_utils.robot
8a87b1b1fSAnves Kumar rayankulaLibrary           ../lib/bmc_ssh_utils.py
9a87b1b1fSAnves Kumar rayankulaLibrary           SSHLibrary
10a87b1b1fSAnves Kumar rayankula
114d4ef99fSGeorge KeishingTest Setup       Set Account Lockout Threshold
12e6c745acSAnves Kumar rayankula
13*6fb70d98SMatt FischerTest Tags       BMC_Expire_Password
14e18cdb56SMegha G N
1568f985b3SAnves Kumar rayankula*** Variables ***
169f42121dSAnvesh Kumar
1768f985b3SAnves Kumar rayankula# If user re-tries more than 5 time incorrectly, the user gets locked for 5 minutes.
1868f985b3SAnves Kumar rayankula${default_lockout_duration}   ${300}
19e18cdb56SMegha G N${admin_user}                 admin_user
20e18cdb56SMegha G N${default_adminuser_passwd}   AdminUser1
21e18cdb56SMegha G N${admin_password}             AdminUser2
2268f985b3SAnves Kumar rayankula
23a87b1b1fSAnves Kumar rayankula
24a87b1b1fSAnves Kumar rayankula*** Test Cases ***
25a87b1b1fSAnves Kumar rayankula
26a87b1b1fSAnves Kumar rayankulaExpire Root Password And Check IPMI Access Fails
27a87b1b1fSAnves Kumar rayankula    [Documentation]   Expire root user password and expect an error while access via IPMI.
28a87b1b1fSAnves Kumar rayankula    [Tags]  Expire_Root_Password_And_Check_IPMI_Access_Fails
2968f985b3SAnves Kumar rayankula    [Teardown]  Test Teardown Execution
30a87b1b1fSAnves Kumar rayankula
31e18cdb56SMegha G N    Expire Password  ${OPENBMC_USERNAME}
32a87b1b1fSAnves Kumar rayankula
33a87b1b1fSAnves Kumar rayankula    ${status}=  Run Keyword And Return Status   Run External IPMI Standard Command  lan print -v
34a87b1b1fSAnves Kumar rayankula    Should Be Equal  ${status}  ${False}
35a87b1b1fSAnves Kumar rayankula
365df05f7dSAnves Kumar rayankula
375df05f7dSAnves Kumar rayankulaExpire Root Password And Check SSH Access Fails
385df05f7dSAnves Kumar rayankula    [Documentation]   Expire root user password and expect an error while access via SSH.
395df05f7dSAnves Kumar rayankula    [Tags]  Expire_Root_Password_And_Check_SSH_Access_Fails
4068f985b3SAnves Kumar rayankula    [Teardown]  Test Teardown Execution
415df05f7dSAnves Kumar rayankula
42e18cdb56SMegha G N    Expire Password  ${OPENBMC_USERNAME}
435df05f7dSAnves Kumar rayankula
445df05f7dSAnves Kumar rayankula    ${status}=  Run Keyword And Return Status
455df05f7dSAnves Kumar rayankula    ...  Open Connection And Log In  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
465df05f7dSAnves Kumar rayankula    Should Be Equal  ${status}  ${False}
475df05f7dSAnves Kumar rayankula
485df05f7dSAnves Kumar rayankula
4967921144SAnves Kumar rayankulaExpire And Change Root User Password And Access Via SSH
5067921144SAnves Kumar rayankula    [Documentation]   Expire and change root user password and access via SSH.
51b98036a9SGeorge Keishing    [Tags]  Expire_And_Change_Root_User_Password_And_Access_Via_SSH
5267921144SAnves Kumar rayankula    [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
5367921144SAnves Kumar rayankula    ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
5467921144SAnves Kumar rayankula
55e18cdb56SMegha G N    Expire Password  ${OPENBMC_USERNAME}
5667921144SAnves Kumar rayankula
579f42121dSAnvesh Kumar    Redfish.Login
5867921144SAnves Kumar rayankula    # Change to a valid password.
5967921144SAnves Kumar rayankula    ${resp}=  Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
6067921144SAnves Kumar rayankula    ...  body={'Password': '0penBmc123'}  valid_status_codes=[${HTTP_OK}]
6167921144SAnves Kumar rayankula
6267921144SAnves Kumar rayankula    # Verify login with the new password through SSH.
6367921144SAnves Kumar rayankula    Open Connection And Log In  ${OPENBMC_USERNAME}  0penBmc123
6467921144SAnves Kumar rayankula
6567921144SAnves Kumar rayankula
6667921144SAnves Kumar rayankulaExpire Root Password And Update Bad Password Length Via Redfish
6767921144SAnves Kumar rayankula   [Documentation]  Expire root password and update bad password via Redfish and expect an error.
6867921144SAnves Kumar rayankula   [Tags]  Expire_Root_Password_And_Update_Bad_Password_Length_Via_Redfish
6967921144SAnves Kumar rayankula   [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
7067921144SAnves Kumar rayankula   ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
7167921144SAnves Kumar rayankula
72e18cdb56SMegha G N   Expire Password  ${OPENBMC_USERNAME}
7367921144SAnves Kumar rayankula
749f42121dSAnvesh Kumar   Redfish.Login
7567921144SAnves Kumar rayankula   ${status}=  Run Keyword And Return Status
7667921144SAnves Kumar rayankula   ...  Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
7767921144SAnves Kumar rayankula   ...  body={'Password': '0penBmc0penBmc0penBmc'}
7867921144SAnves Kumar rayankula   Should Be Equal  ${status}  ${False}
79a87b1b1fSAnves Kumar rayankula
809f42121dSAnvesh Kumar
819f42121dSAnvesh KumarExpire And Change Root User Password Via Redfish And Verify
829f42121dSAnvesh Kumar   [Documentation]   Expire and change root user password via Redfish and verify.
839f42121dSAnvesh Kumar   [Tags]  Expire_And_Change_Root_User_Password_Via_Redfish_And_Verify
849f42121dSAnvesh Kumar   [Teardown]  Run Keywords  FFDC On Test Case Fail  AND
859f42121dSAnvesh Kumar   ...  Wait Until Keyword Succeeds  1 min  10 sec
869f42121dSAnvesh Kumar   ...  Restore Default Password For Root User
879f42121dSAnvesh Kumar
88e18cdb56SMegha G N   Expire Password  ${OPENBMC_USERNAME}
899f42121dSAnvesh Kumar
90a9d9341cSshrsuman123   Verify User Password Expired Using Redfish  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
919f42121dSAnvesh Kumar   # Change to a valid password.
929f42121dSAnvesh Kumar   Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
939f42121dSAnvesh Kumar   ...  body={'Password': '0penBmc123'}
949f42121dSAnvesh Kumar   Redfish.Logout
959f42121dSAnvesh Kumar
969f42121dSAnvesh Kumar   # Verify login with the new password.
979f42121dSAnvesh Kumar   Redfish.Login  ${OPENBMC_USERNAME}  0penBmc123
989f42121dSAnvesh Kumar
999f42121dSAnvesh Kumar
100322e3aa9SAnves Kumar rayankulaVerify Error While Creating User With Expired Password
101322e3aa9SAnves Kumar rayankula    [Documentation]  Expire root password and expect an error while creating new user.
102322e3aa9SAnves Kumar rayankula    [Tags]  Verify_Error_While_Creating_User_With_Expired_Password
103322e3aa9SAnves Kumar rayankula    [Teardown]  Run Keywords  Wait Until Keyword Succeeds  1 min  10 sec
104322e3aa9SAnves Kumar rayankula    ...  Restore Default Password For Root User  AND  FFDC On Test Case Fail
105322e3aa9SAnves Kumar rayankula
106e18cdb56SMegha G N    Expire Password  ${OPENBMC_USERNAME}
107322e3aa9SAnves Kumar rayankula
108a9d9341cSshrsuman123    Verify User Password Expired Using Redfish  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
109322e3aa9SAnves Kumar rayankula    Redfish.Login
110322e3aa9SAnves Kumar rayankula    ${payload}=  Create Dictionary
111322e3aa9SAnves Kumar rayankula    ...  UserName=admin_user  Password=TestPwd123  RoleId=Administrator  Enabled=${True}
112322e3aa9SAnves Kumar rayankula    Redfish.Post  /redfish/v1/AccountService/Accounts/  body=&{payload}
113322e3aa9SAnves Kumar rayankula    ...  valid_status_codes=[${HTTP_FORBIDDEN}]
114322e3aa9SAnves Kumar rayankula
115322e3aa9SAnves Kumar rayankula
1169233ce15SAnves Kumar rayankulaExpire And Change Root Password Via GUI
1179233ce15SAnves Kumar rayankula    [Documentation]  Expire and change root password via GUI.
1189233ce15SAnves Kumar rayankula    [Tags]  Expire_And_Change_Root_Password_Via_GUI
119a9d9341cSshrsuman123    [Setup]  Launch Browser And Login GUI
120a9d9341cSshrsuman123    [Teardown]  Run Keywords  Logout GUI  AND  Close Browser
1219233ce15SAnves Kumar rayankula    ...  AND  Restore Default Password For Root User  AND  FFDC On Test Case Fail
1229233ce15SAnves Kumar rayankula
123e18cdb56SMegha G N    Expire Password  ${OPENBMC_USERNAME}
1249233ce15SAnves Kumar rayankula
125a9d9341cSshrsuman123    Wait Until Page Contains Element  ${xpath_root_button_menu}
126a9d9341cSshrsuman123    Click Element  ${xpath_root_button_menu}
127a9d9341cSshrsuman123    Click Element  ${xpath_profile_settings}
128a9d9341cSshrsuman123    Wait Until Page Contains  Change password
129a9d9341cSshrsuman123
1309233ce15SAnves Kumar rayankula    # Change valid password.
1319233ce15SAnves Kumar rayankula    Input Text  ${xpath_input_password}  0penBmc123
1329233ce15SAnves Kumar rayankula    Input Text  ${xpath_input_confirm_password}  0penBmc123
133a9d9341cSshrsuman123    Click Button  ${xpath_profile_save_button}
134a9d9341cSshrsuman123    Wait Until Page Contains  Successfully saved account settings.
135a9d9341cSshrsuman123    Wait Until Page Does Not Contain  Successfully saved account settings.  timeout=20
136a9d9341cSshrsuman123    Logout GUI
1379233ce15SAnves Kumar rayankula
1389233ce15SAnves Kumar rayankula    # Verify valid password.
139a9d9341cSshrsuman123    Login GUI  ${OPENBMC_USERNAME}  0penBmc123
1409233ce15SAnves Kumar rayankula    Redfish.Login  ${OPENBMC_USERNAME}  0penBmc123
1419233ce15SAnves Kumar rayankula
1429233ce15SAnves Kumar rayankula
14368f985b3SAnves Kumar rayankulaVerify Maximum Failed Attempts And Check Root User Account Locked
14468f985b3SAnves Kumar rayankula    [Documentation]  Verify maximum failed attempts and locks out root user account.
14568f985b3SAnves Kumar rayankula    [Tags]  Verify_Maximum_Failed_Attempts_And_Check_Root_User_Account_Locked
1464d4ef99fSGeorge Keishing    [Setup]   Set Account Lockout Threshold  account_lockout_threshold=${5}
14768f985b3SAnves Kumar rayankula
14868f985b3SAnves Kumar rayankula    # Make maximum failed login attempts.
14968f985b3SAnves Kumar rayankula    Repeat Keyword  ${5} times
15068f985b3SAnves Kumar rayankula    ...  Run Keyword And Expect Error  InvalidCredentialsError*  Redfish.Login  root  0penBmc123
15168f985b3SAnves Kumar rayankula
15268f985b3SAnves Kumar rayankula    # Verify that legitimate login fails due to lockout.
15368f985b3SAnves Kumar rayankula    Run Keyword And Expect Error  InvalidCredentialsError*
15468f985b3SAnves Kumar rayankula    ...  Redfish.Login  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
15568f985b3SAnves Kumar rayankula
15668f985b3SAnves Kumar rayankula    # Wait for lockout duration to expire and then verify that login works.
15768f985b3SAnves Kumar rayankula    Sleep  ${default_lockout_duration}s
15868f985b3SAnves Kumar rayankula    Redfish.Login
15968f985b3SAnves Kumar rayankula    Redfish.Logout
16068f985b3SAnves Kumar rayankula
161c46a8960SAnves Kumar rayankulaVerify New Password Persistency After BMC Reboot
162c46a8960SAnves Kumar rayankula    [Documentation]  Verify new password persistency after BMC reboot.
163c46a8960SAnves Kumar rayankula    [Tags]  Verify_New_Password_Persistency_After_BMC_Reboot
164e6c745acSAnves Kumar rayankula    [Teardown]  Test Teardown Execution
165c46a8960SAnves Kumar rayankula
166c46a8960SAnves Kumar rayankula    Redfish.Login
167e6c745acSAnves Kumar rayankula
168e6c745acSAnves Kumar rayankula    # Make sure the user account in question does not already exist.
169e6c745acSAnves Kumar rayankula    Redfish.Delete  /redfish/v1/AccountService/Accounts/admin_user
170e6c745acSAnves Kumar rayankula    ...  valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
171e6c745acSAnves Kumar rayankula
172e6c745acSAnves Kumar rayankula    # Create specified user.
173e6c745acSAnves Kumar rayankula    ${payload}=  Create Dictionary
174e6c745acSAnves Kumar rayankula    ...  UserName=admin_user  Password=TestPwd123  RoleId=Administrator  Enabled=${True}
175e6c745acSAnves Kumar rayankula    Redfish.Post  /redfish/v1/AccountService/Accounts/  body=&{payload}
176e6c745acSAnves Kumar rayankula    ...  valid_status_codes=[${HTTP_CREATED}]
177e6c745acSAnves Kumar rayankula    Redfish.Logout
178e6c745acSAnves Kumar rayankula
179e6c745acSAnves Kumar rayankula    Redfish.Login  admin_user  TestPwd123
180e6c745acSAnves Kumar rayankula
181c46a8960SAnves Kumar rayankula    # Change to a valid password.
182e6c745acSAnves Kumar rayankula    Redfish.Patch  /redfish/v1/AccountService/Accounts/admin_user
183c46a8960SAnves Kumar rayankula    ...  body={'Password': '0penBmc123'}
184c46a8960SAnves Kumar rayankula
185c46a8960SAnves Kumar rayankula    # Reboot BMC and verify persistency.
186e6c745acSAnves Kumar rayankula    Redfish OBMC Reboot (off)
187c46a8960SAnves Kumar rayankula
188c46a8960SAnves Kumar rayankula    # verify new password
189e6c745acSAnves Kumar rayankula    Redfish.Login  admin_user  0penBmc123
190c46a8960SAnves Kumar rayankula
19168f985b3SAnves Kumar rayankula
192e18cdb56SMegha G NVerify Expire And Change Admin User Password Via GUI
193e18cdb56SMegha G N    [Documentation]  Force expire admin password and update admin password via GUI.
194e18cdb56SMegha G N    [Tags]  Verify_Expire_And_Change_Admin_User_Password_Via_GUI
195e18cdb56SMegha G N    [Setup]  Run Keywords  Launch Browser And Login GUI  AND
196e18cdb56SMegha G N    ...  Redfish Create User  ${admin_user}  ${default_adminuser_passwd}  Administrator  ${True}
197e18cdb56SMegha G N    [Teardown]  Run Keywords  Logout GUI  AND  Close Browser
198e18cdb56SMegha G N
199e18cdb56SMegha G N    Expire Password  ${admin_user}
200e18cdb56SMegha G N
201e18cdb56SMegha G N    Logout GUI
202e18cdb56SMegha G N
203e18cdb56SMegha G N    # Verify that admin user should not be able to login with expired password.
204e18cdb56SMegha G N    Login GUI  ${admin_user}  ${default_adminuser_passwd}
205e18cdb56SMegha G N
206e18cdb56SMegha G N    # Verify error message to update the password.
207e18cdb56SMegha G N    Wait Until Page Contains  The password is expired and must be changed.  timeout=10
208e18cdb56SMegha G N
209e18cdb56SMegha G N    # Update a valid acceptable password.
210e18cdb56SMegha G N    Input Text  ${xpath_input_password}  ${admin_password}
211e18cdb56SMegha G N    Input Text  ${xpath_input_confirm_password}  ${admin_password}
212e18cdb56SMegha G N    Click Button  ${xpath_confirm_password_button}
213e18cdb56SMegha G N    Wait Until Page Contains  Overview  timeout=20
214e18cdb56SMegha G N
215e18cdb56SMegha G N    # Verify valid password.
216e18cdb56SMegha G N    Redfish.Login  ${admin_user}  ${admin_password}
217e18cdb56SMegha G N
218e18cdb56SMegha G N
2192f76ae40SMegha G NExpire Admin Password And Check IPMI Access Fails
2202f76ae40SMegha G N    [Documentation]   Expire admin user password and expect an error while access via IPMI.
2212f76ae40SMegha G N    [Tags]  Expire_Admin_Password_And_Check_IPMI_Access_Fails
2222f76ae40SMegha G N    [Setup]  Redfish Create User  ${admin_user}  ${default_adminuser_passwd}  Administrator  ${True}
2232f76ae40SMegha G N
2242f76ae40SMegha G N    Expire Password  ${admin_user}
2252f76ae40SMegha G N
2262f76ae40SMegha G N    ${status}=  Run Keyword And Return Status   Run External IPMI Standard Command  lan print -v
2272f76ae40SMegha G N    Should Be Equal  ${status}  ${False}
2282f76ae40SMegha G N
2292f76ae40SMegha G N
23080222cffSMegha G NVerify Expire Admin Password And Update Bad Password Length Via Redfish
23180222cffSMegha G N   [Documentation]  Expire admin password and update bad password with more than 20 characters
23280222cffSMegha G N   ...  via Redfish and expect an error.
23380222cffSMegha G N   [Tags]  Verify_Expire_Admin_Password_And_Update_Bad_Password_Length_Via_Redfish
23480222cffSMegha G N   [Setup]  Redfish Create User  ${admin_user}  ${default_adminuser_passwd}  Administrator  ${True}
23580222cffSMegha G N
23680222cffSMegha G N   Expire Password  ${admin_user}
23780222cffSMegha G N
23880222cffSMegha G N   Redfish.Login
23980222cffSMegha G N
240b1962380SMegha G N   Set Password Via Redfish  0penBmc0penBmc0penBmc  ${False}
24180222cffSMegha G N
24280222cffSMegha G N
243014ad018SMegha G NVerify Error While Creating User With Expired Admin Password
244014ad018SMegha G N    [Documentation]  Expire admin password and expect an error while creating new user.
245014ad018SMegha G N    [Tags]  Verify_Error_While_Creating_User_With_Expired_Admin_Password
246014ad018SMegha G N    [Teardown]  Restore Default Password For Admin User
247014ad018SMegha G N
248014ad018SMegha G N    Expire Password  ${admin_user}
249014ad018SMegha G N
250014ad018SMegha G N    Verify User Password Expired Using Redfish  ${admin_user}  ${default_adminuser_passwd}
251014ad018SMegha G N
252014ad018SMegha G N    # Create new user with expired admin password and expect an error.
253014ad018SMegha G N    ${payload}=  Create Dictionary
254014ad018SMegha G N    ...  UserName=admin_user1  Password=TestPwd123  RoleId=Administrator  Enabled=${True}
255014ad018SMegha G N    Redfish.Post  /redfish/v1/AccountService/Accounts/  body=&{payload}
256014ad018SMegha G N    ...  valid_status_codes=[${HTTP_FORBIDDEN}]
257014ad018SMegha G N
258014ad018SMegha G N
259521e9e07SMegha G NVerify New Admin Password Persistency After BMC Reboot
260521e9e07SMegha G N    [Documentation]  Verify new admin password persistency after BMC reboot.
261521e9e07SMegha G N    [Tags]  Verify_New_Admin_Password_Persistency_After_BMC_Reboot
262521e9e07SMegha G N    [Setup]  Redfish Create User  ${admin_user}  ${default_adminuser_passwd}  Administrator  ${True}
263521e9e07SMegha G N    [Teardown]  Restore Default Password For Admin User
264521e9e07SMegha G N
265521e9e07SMegha G N    Expire Password  ${admin_user}
266521e9e07SMegha G N
267b1962380SMegha G N    Set Password Via Redfish  ${admin_password}  ${True}
268521e9e07SMegha G N
269521e9e07SMegha G N    # Reboot BMC.
270521e9e07SMegha G N    Redfish OBMC Reboot (off)  stack_mode=skip
271521e9e07SMegha G N
272521e9e07SMegha G N    # Verify password is persisted after bmc reboot.
273521e9e07SMegha G N    Redfish.Login  ${admin_user}  ${admin_password}
274521e9e07SMegha G N
275521e9e07SMegha G N
276b1962380SMegha G NExpire And Change Admin User Password Via Redfish And Verify
277b1962380SMegha G N   [Documentation]   Expire and change admin user password via Redfish and verify.
278b1962380SMegha G N   [Tags]  Expire_And_Change_Admin_User_Password_Via_Redfish_And_Verify
279b1962380SMegha G N   [Setup]  Redfish Create User  ${admin_user}  ${default_adminuser_passwd}  Administrator  ${True}
280b1962380SMegha G N   [Teardown]  Restore Default Password For Admin User
281b1962380SMegha G N
282b1962380SMegha G N   Expire Password  ${admin_user}
283b1962380SMegha G N
284b1962380SMegha G N   Verify User Password Expired Using Redfish  ${admin_user}  ${default_adminuser_passwd}
285b1962380SMegha G N
286b1962380SMegha G N   # Change to a valid password.
287b1962380SMegha G N   Set Password Via Redfish  AdminUser2  ${True}
288b1962380SMegha G N   Redfish.Logout
289b1962380SMegha G N
290b1962380SMegha G N   # Verify login with the new password.
291b1962380SMegha G N   Redfish.Login  ${admin_user}  AdminUser2
292b1962380SMegha G N
293b1962380SMegha G N
294a87b1b1fSAnves Kumar rayankula*** Keywords ***
295a87b1b1fSAnves Kumar rayankula
2964d4ef99fSGeorge KeishingSet Account Lockout Threshold
297e6c745acSAnves Kumar rayankula   [Documentation]  Set user account lockout threshold.
298a9d9341cSshrsuman123   [Arguments]  ${account_lockout_threshold}=${0}  ${account_lockout_duration}=${50}
299e6c745acSAnves Kumar rayankula
300e6c745acSAnves Kumar rayankula   # Description of argument(s):
301e6c745acSAnves Kumar rayankula   # account_lockout_threshold    Set lockout threshold value.
302a9d9341cSshrsuman123   # account_lockout_duration     Set lockout duration value.
303a87b1b1fSAnves Kumar rayankula
304a87b1b1fSAnves Kumar rayankula   Redfish.login
305a9d9341cSshrsuman123   ${payload}=  Create Dictionary  AccountLockoutThreshold=${account_lockout_threshold}
306a9d9341cSshrsuman123   ...  AccountLockoutDuration=${account_lockout_duration}
307a9d9341cSshrsuman123   Redfish.Patch  /redfish/v1/AccountService/  body=&{payload}
308e6c745acSAnves Kumar rayankula   gen_robot_valid.Valid Length  OPENBMC_PASSWORD  min_length=8
3099f42121dSAnvesh Kumar   Redfish.Logout
3109f42121dSAnvesh Kumar
311a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User
312a87b1b1fSAnves Kumar rayankula    [Documentation]  Restore default password for root user (i.e. 0penBmc).
313a87b1b1fSAnves Kumar rayankula
314a87b1b1fSAnves Kumar rayankula    # Set default password for root user.
31567921144SAnves Kumar rayankula    Redfish.Patch  /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME}
31667921144SAnves Kumar rayankula    ...   body={'Password': '${OPENBMC_PASSWORD}'}  valid_status_codes=[${HTTP_OK}]
317a87b1b1fSAnves Kumar rayankula    # Verify that root user is able to run Redfish command using default password.
3189f42121dSAnvesh Kumar    Redfish.Logout
3199f42121dSAnvesh Kumar
3209f42121dSAnvesh Kumar
3219f42121dSAnvesh KumarTest Teardown Execution
3229f42121dSAnvesh Kumar    [Documentation]  Do test teardown task.
3239f42121dSAnvesh Kumar
3249f42121dSAnvesh Kumar    Redfish.Login
3259f42121dSAnvesh Kumar    Wait Until Keyword Succeeds  1 min  10 sec  Restore Default Password For Root User
3269f42121dSAnvesh Kumar    Redfish.Logout
3274d4ef99fSGeorge Keishing    Set Account Lockout Threshold  account_lockout_threshold=${5}
32868f985b3SAnves Kumar rayankula    FFDC On Test Case Fail
329e18cdb56SMegha G N
330e18cdb56SMegha G N
331e18cdb56SMegha G NExpire Password
332e18cdb56SMegha G N    [Documentation]  Force expire password.
333e18cdb56SMegha G N    [Arguments]  ${username}
334e18cdb56SMegha G N
335e18cdb56SMegha G N    # Description of argument(s):
336e18cdb56SMegha G N    # username                       User to be created and expire.
337e18cdb56SMegha G N
338e18cdb56SMegha G N    # Expire the password.
339e18cdb56SMegha G N    Open Connection And Log In  ${OPENBMC_USERNAME}  ${OPENBMC_PASSWORD}
340e18cdb56SMegha G N
341e18cdb56SMegha G N    ${output}  ${stderr}  ${rc}=  BMC Execute Command  passwd --expire ${username}
342e18cdb56SMegha G N    Should Contain Any  ${output}  password expiry information changed  password changed
343e18cdb56SMegha G N
344e18cdb56SMegha G N    # Example output:
345e18cdb56SMegha G N    # passwd --expire admin
346e18cdb56SMegha G N    # passwd: password changed.
347e18cdb56SMegha G N
348e18cdb56SMegha G N    Close All Connections
349014ad018SMegha G N
350014ad018SMegha G N
351014ad018SMegha G NRestore Default Password For Admin User
352014ad018SMegha G N    [Documentation]  Restore default password for admin user (i.e. AdminUser1).
353014ad018SMegha G N
354014ad018SMegha G N    # Set default password for admin user.
355014ad018SMegha G N    Redfish.Patch  /redfish/v1/AccountService/Accounts/${admin_user}
356014ad018SMegha G N    ...   body={'Password': '${default_adminuser_passwd}'}  valid_status_codes=[${HTTP_OK}]
357014ad018SMegha G N    # Verify that admin user is able to run Redfish command using default password.
358014ad018SMegha G N    Redfish.Logout
359b1962380SMegha G N
360b1962380SMegha G N
361b1962380SMegha G NSet Password Via Redfish
362b1962380SMegha G N    [Documentation]  Set new password via redfish.
363b1962380SMegha G N    [Arguments]  ${new_password}  ${expect_result}
364b1962380SMegha G N
365b1962380SMegha G N    # Description of argument(s):
366b1962380SMegha G N    # new_password        New password set.
367b1962380SMegha G N    # expect_result       Expected result (eg:true or false).
368b1962380SMegha G N
369b1962380SMegha G N    ${status}= Run Keyword And Return Status
370b1962380SMegha G N    ... Redfish.Patch /redfish/v1/AccountService/Accounts/${admin_user}
371b1962380SMegha G N    ... body={'Password': '${new_password}'}
372b1962380SMegha G N
373b1962380SMegha G N    Should be Equal  ${status}  ${expect_result}
374