1a87b1b1fSAnves Kumar rayankula*** Settings *** 2a87b1b1fSAnves Kumar rayankulaDocumentation Test root user expire password. 3a87b1b1fSAnves Kumar rayankula 4a87b1b1fSAnves Kumar rayankulaResource ../lib/resource.robot 59233ce15SAnves Kumar rayankulaResource ../gui/lib/resource.robot 6a87b1b1fSAnves Kumar rayankulaResource ../lib/ipmi_client.robot 7a87b1b1fSAnves Kumar rayankulaLibrary ../lib/bmc_ssh_utils.py 8a87b1b1fSAnves Kumar rayankulaLibrary SSHLibrary 9a87b1b1fSAnves Kumar rayankula 1068f985b3SAnves Kumar rayankula*** Variables *** 119f42121dSAnvesh Kumar 1268f985b3SAnves Kumar rayankula# If user re-tries more than 5 time incorrectly, the user gets locked for 5 minutes. 1368f985b3SAnves Kumar rayankula${default_lockout_duration} ${300} 1468f985b3SAnves Kumar rayankula 15a87b1b1fSAnves Kumar rayankula 16a87b1b1fSAnves Kumar rayankula*** Test Cases *** 17a87b1b1fSAnves Kumar rayankula 18a87b1b1fSAnves Kumar rayankulaExpire Root Password And Check IPMI Access Fails 19a87b1b1fSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via IPMI. 20a87b1b1fSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_IPMI_Access_Fails 2168f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 22a87b1b1fSAnves Kumar rayankula 23a87b1b1fSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 24a87b1b1fSAnves Kumar rayankula 25a87b1b1fSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 26a87b1b1fSAnves Kumar rayankula Should Contain ${output} password expiry information changed 27a87b1b1fSAnves Kumar rayankula 28a87b1b1fSAnves Kumar rayankula ${status}= Run Keyword And Return Status Run External IPMI Standard Command lan print -v 29a87b1b1fSAnves Kumar rayankula Should Be Equal ${status} ${False} 30a87b1b1fSAnves Kumar rayankula 315df05f7dSAnves Kumar rayankula 325df05f7dSAnves Kumar rayankulaExpire Root Password And Check SSH Access Fails 335df05f7dSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via SSH. 345df05f7dSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_SSH_Access_Fails 3568f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 365df05f7dSAnves Kumar rayankula 375df05f7dSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 385df05f7dSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 395df05f7dSAnves Kumar rayankula Should Contain ${output} password expiry information changed 405df05f7dSAnves Kumar rayankula 415df05f7dSAnves Kumar rayankula ${status}= Run Keyword And Return Status 425df05f7dSAnves Kumar rayankula ... Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 435df05f7dSAnves Kumar rayankula Should Be Equal ${status} ${False} 445df05f7dSAnves Kumar rayankula 455df05f7dSAnves Kumar rayankula 4667921144SAnves Kumar rayankulaExpire And Change Root User Password And Access Via SSH 4767921144SAnves Kumar rayankula [Documentation] Expire and change root user password and access via SSH. 4867921144SAnves Kumar rayankula [Tags] Expire_Root_User_Password_And_Access_Via_SSH 4967921144SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 5067921144SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 5167921144SAnves Kumar rayankula 5267921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 5367921144SAnves Kumar rayankula 5467921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 5567921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 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 7267921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 7367921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 7467921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 7567921144SAnves Kumar rayankula 769f42121dSAnvesh Kumar Redfish.Login 7767921144SAnves Kumar rayankula ${status}= Run Keyword And Return Status 7867921144SAnves Kumar rayankula ... Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 7967921144SAnves Kumar rayankula ... body={'Password': '0penBmc0penBmc0penBmc'} 8067921144SAnves Kumar rayankula Should Be Equal ${status} ${False} 81a87b1b1fSAnves Kumar rayankula 829f42121dSAnvesh Kumar 839f42121dSAnvesh KumarExpire And Change Root User Password Via Redfish And Verify 849f42121dSAnvesh Kumar [Documentation] Expire and change root user password via Redfish and verify. 859f42121dSAnvesh Kumar [Tags] Expire_And_Change_Root_User_Password_Via_Redfish_And_Verify 869f42121dSAnvesh Kumar [Teardown] Run Keywords FFDC On Test Case Fail AND 879f42121dSAnvesh Kumar ... Wait Until Keyword Succeeds 1 min 10 sec 889f42121dSAnvesh Kumar ... Restore Default Password For Root User 899f42121dSAnvesh Kumar 909f42121dSAnvesh Kumar Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 919f42121dSAnvesh Kumar 929f42121dSAnvesh Kumar ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 939f42121dSAnvesh Kumar Should Contain ${output} password expiry information changed 949f42121dSAnvesh Kumar 959f42121dSAnvesh Kumar Redfish.Login 969f42121dSAnvesh Kumar Verify Root Password Expired 979f42121dSAnvesh Kumar # Change to a valid password. 989f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 999f42121dSAnvesh Kumar ... body={'Password': '0penBmc123'} 1009f42121dSAnvesh Kumar Redfish.Logout 1019f42121dSAnvesh Kumar 1029f42121dSAnvesh Kumar # Verify login with the new password. 1039f42121dSAnvesh Kumar Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 1049f42121dSAnvesh Kumar 1059f42121dSAnvesh Kumar 106322e3aa9SAnves Kumar rayankulaVerify Error While Creating User With Expired Password 107322e3aa9SAnves Kumar rayankula [Documentation] Expire root password and expect an error while creating new user. 108322e3aa9SAnves Kumar rayankula [Tags] Verify_Error_While_Creating_User_With_Expired_Password 109322e3aa9SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 110322e3aa9SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 111322e3aa9SAnves Kumar rayankula 112322e3aa9SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 113322e3aa9SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 114322e3aa9SAnves Kumar rayankula Should Contain ${output} password expiry information changed 115322e3aa9SAnves Kumar rayankula 116322e3aa9SAnves Kumar rayankula Verify Root Password Expired 117322e3aa9SAnves Kumar rayankula Redfish.Login 118322e3aa9SAnves Kumar rayankula ${payload}= Create Dictionary 119322e3aa9SAnves Kumar rayankula ... UserName=admin_user Password=TestPwd123 RoleId=Administrator Enabled=${True} 120322e3aa9SAnves Kumar rayankula Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload} 121322e3aa9SAnves Kumar rayankula ... valid_status_codes=[${HTTP_FORBIDDEN}] 122322e3aa9SAnves Kumar rayankula 123322e3aa9SAnves Kumar rayankula 1249233ce15SAnves Kumar rayankulaExpire And Change Root Password Via GUI 1259233ce15SAnves Kumar rayankula [Documentation] Expire and change root password via GUI. 1269233ce15SAnves Kumar rayankula [Tags] Expire_And_Change_Root_Password_Via_GUI 1279233ce15SAnves Kumar rayankula [Setup] Run Keywords Launch Browser And Login OpenBMC GUI 1289233ce15SAnves Kumar rayankula [Teardown] Run Keywords Logout And Close Browser 1299233ce15SAnves Kumar rayankula ... AND Restore Default Password For Root User AND FFDC On Test Case Fail 1309233ce15SAnves Kumar rayankula 1319233ce15SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 1329233ce15SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 1339233ce15SAnves Kumar rayankula Should Contain ${output} password expiry information changed 1349233ce15SAnves Kumar rayankula 1359233ce15SAnves Kumar rayankula Click Button ${xpath_button_user_action} 1369233ce15SAnves Kumar rayankula Click Element ${xpath_button_profile_settings} 1379233ce15SAnves Kumar rayankula Page Should Contain Change password 1389233ce15SAnves Kumar rayankula Sleep 2s 1399233ce15SAnves Kumar rayankula # Change valid password. 1409233ce15SAnves Kumar rayankula Input Text ${xpath_input_password} 0penBmc123 1419233ce15SAnves Kumar rayankula Input Text ${xpath_input_confirm_password} 0penBmc123 1429233ce15SAnves Kumar rayankula Click Button ${xpath_submit_button} 1439233ce15SAnves Kumar rayankula 1449233ce15SAnves Kumar rayankula # Verify valid password. 1459233ce15SAnves Kumar rayankula Open Browser With URL ${obmc_gui_url} 1469233ce15SAnves Kumar rayankula Login OpenBMC GUI ${OPENBMC_USERNAME} 0penBmc123 1479233ce15SAnves Kumar rayankula Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 1489233ce15SAnves Kumar rayankula 1499233ce15SAnves Kumar rayankula 15068f985b3SAnves Kumar rayankulaVerify Maximum Failed Attempts And Check Root User Account Locked 15168f985b3SAnves Kumar rayankula [Documentation] Verify maximum failed attempts and locks out root user account. 15268f985b3SAnves Kumar rayankula [Tags] Verify_Maximum_Failed_Attempts_And_Check_Root_User_Account_Locked 15368f985b3SAnves Kumar rayankula 15468f985b3SAnves Kumar rayankula # Make maximum failed login attempts. 15568f985b3SAnves Kumar rayankula Repeat Keyword ${5} times 15668f985b3SAnves Kumar rayankula ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login root 0penBmc123 15768f985b3SAnves Kumar rayankula 15868f985b3SAnves Kumar rayankula # Verify that legitimate login fails due to lockout. 15968f985b3SAnves Kumar rayankula Run Keyword And Expect Error InvalidCredentialsError* 16068f985b3SAnves Kumar rayankula ... Redfish.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 16168f985b3SAnves Kumar rayankula 16268f985b3SAnves Kumar rayankula # Wait for lockout duration to expire and then verify that login works. 16368f985b3SAnves Kumar rayankula Sleep ${default_lockout_duration}s 16468f985b3SAnves Kumar rayankula Redfish.Login 16568f985b3SAnves Kumar rayankula Redfish.Logout 16668f985b3SAnves Kumar rayankula 167*c46a8960SAnves Kumar rayankulaVerify New Password Persistency After BMC Reboot 168*c46a8960SAnves Kumar rayankula [Documentation] Verify new password persistency after BMC reboot. 169*c46a8960SAnves Kumar rayankula [Tags] Verify_New_Password_Persistency_After_BMC_Reboot 170*c46a8960SAnves Kumar rayankula [Teardown] Run Keywords Restore Default Password For Root User 171*c46a8960SAnves Kumar rayankula ... AND FFDC On Test Case Fail 172*c46a8960SAnves Kumar rayankula 173*c46a8960SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 174*c46a8960SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 175*c46a8960SAnves Kumar rayankula Should Contain ${output} password expiry information changed 176*c46a8960SAnves Kumar rayankula 177*c46a8960SAnves Kumar rayankula Redfish.Login 178*c46a8960SAnves Kumar rayankula # Change to a valid password. 179*c46a8960SAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 180*c46a8960SAnves Kumar rayankula ... body={'Password': '0penBmc123'} 181*c46a8960SAnves Kumar rayankula 182*c46a8960SAnves Kumar rayankula # Reboot BMC and verify persistency. 183*c46a8960SAnves Kumar rayankula OBMC Reboot (off) 184*c46a8960SAnves Kumar rayankula 185*c46a8960SAnves Kumar rayankula # verify new password 186*c46a8960SAnves Kumar rayankula Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 187*c46a8960SAnves Kumar rayankula 18868f985b3SAnves Kumar rayankula 189a87b1b1fSAnves Kumar rayankula*** Keywords *** 190a87b1b1fSAnves Kumar rayankula 19168f985b3SAnves Kumar rayankulaTest Setup Execution 192322e3aa9SAnves Kumar rayankula [Documentation] Suite setup execution. 193a87b1b1fSAnves Kumar rayankula 194a87b1b1fSAnves Kumar rayankula Redfish.login 1959f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/ body={"AccountLockoutThreshold": 0} 196a87b1b1fSAnves Kumar rayankula Valid Length OPENBMC_PASSWORD min_length=8 1979f42121dSAnvesh Kumar Redfish.Logout 1989f42121dSAnvesh Kumar 199a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User 200a87b1b1fSAnves Kumar rayankula [Documentation] Restore default password for root user (i.e. 0penBmc). 201a87b1b1fSAnves Kumar rayankula 202a87b1b1fSAnves Kumar rayankula # Set default password for root user. 20367921144SAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 20467921144SAnves Kumar rayankula ... body={'Password': '${OPENBMC_PASSWORD}'} valid_status_codes=[${HTTP_OK}] 205a87b1b1fSAnves Kumar rayankula # Verify that root user is able to run Redfish command using default password. 2069f42121dSAnvesh Kumar Redfish.Logout 2079f42121dSAnvesh Kumar 2089f42121dSAnvesh Kumar 2099f42121dSAnvesh KumarTest Teardown Execution 2109f42121dSAnvesh Kumar [Documentation] Do test teardown task. 2119f42121dSAnvesh Kumar 2129f42121dSAnvesh Kumar Redfish.Login 2139f42121dSAnvesh Kumar Wait Until Keyword Succeeds 1 min 10 sec Restore Default Password For Root User 2149f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/ body={"AccountLockoutThreshold": 5} 2159f42121dSAnvesh Kumar Redfish.Logout 21668f985b3SAnves Kumar rayankula FFDC On Test Case Fail 21768f985b3SAnves Kumar rayankula 2189f42121dSAnvesh Kumar 2199f42121dSAnvesh KumarVerify Root Password Expired 2209f42121dSAnvesh Kumar [Documentation] Checking whether root password expired or not. 2219f42121dSAnvesh Kumar 2229f42121dSAnvesh Kumar Create Session openbmc ${AUTH_URI} 2239f42121dSAnvesh Kumar ${headers}= Create Dictionary Content-Type=application/json 2249f42121dSAnvesh Kumar @{credentials}= Create List ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 2259f42121dSAnvesh Kumar ${data}= Create Dictionary data=@{credentials} 2269f42121dSAnvesh Kumar ${resp}= Post Request openbmc /login data=${data} headers=${headers} 2279f42121dSAnvesh Kumar ${json}= To JSON ${resp.content} 2289f42121dSAnvesh Kumar Should Contain ${json["extendedMessage"]} POST the new password 229