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 10*68f985b3SAnves Kumar rayankula*** Variables *** 119f42121dSAnvesh Kumar 12*68f985b3SAnves Kumar rayankula# If user re-tries more than 5 time incorrectly, the user gets locked for 5 minutes. 13*68f985b3SAnves Kumar rayankula${default_lockout_duration} ${300} 14*68f985b3SAnves 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 21*68f985b3SAnves 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 35*68f985b3SAnves 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 150*68f985b3SAnves Kumar rayankulaVerify Maximum Failed Attempts And Check Root User Account Locked 151*68f985b3SAnves Kumar rayankula [Documentation] Verify maximum failed attempts and locks out root user account. 152*68f985b3SAnves Kumar rayankula [Tags] Verify_Maximum_Failed_Attempts_And_Check_Root_User_Account_Locked 153*68f985b3SAnves Kumar rayankula 154*68f985b3SAnves Kumar rayankula # Make maximum failed login attempts. 155*68f985b3SAnves Kumar rayankula Repeat Keyword ${5} times 156*68f985b3SAnves Kumar rayankula ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login root 0penBmc123 157*68f985b3SAnves Kumar rayankula 158*68f985b3SAnves Kumar rayankula # Verify that legitimate login fails due to lockout. 159*68f985b3SAnves Kumar rayankula Run Keyword And Expect Error InvalidCredentialsError* 160*68f985b3SAnves Kumar rayankula ... Redfish.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 161*68f985b3SAnves Kumar rayankula 162*68f985b3SAnves Kumar rayankula # Wait for lockout duration to expire and then verify that login works. 163*68f985b3SAnves Kumar rayankula Sleep ${default_lockout_duration}s 164*68f985b3SAnves Kumar rayankula Redfish.Login 165*68f985b3SAnves Kumar rayankula Redfish.Logout 166*68f985b3SAnves Kumar rayankula 167*68f985b3SAnves Kumar rayankula 168a87b1b1fSAnves Kumar rayankula*** Keywords *** 169a87b1b1fSAnves Kumar rayankula 170*68f985b3SAnves Kumar rayankulaTest Setup Execution 171322e3aa9SAnves Kumar rayankula [Documentation] Suite setup execution. 172a87b1b1fSAnves Kumar rayankula 173a87b1b1fSAnves Kumar rayankula Redfish.login 1749f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/ body={"AccountLockoutThreshold": 0} 175a87b1b1fSAnves Kumar rayankula Valid Length OPENBMC_PASSWORD min_length=8 1769f42121dSAnvesh Kumar Redfish.Logout 1779f42121dSAnvesh Kumar 178a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User 179a87b1b1fSAnves Kumar rayankula [Documentation] Restore default password for root user (i.e. 0penBmc). 180a87b1b1fSAnves Kumar rayankula 181a87b1b1fSAnves Kumar rayankula # Set default password for root user. 18267921144SAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 18367921144SAnves Kumar rayankula ... body={'Password': '${OPENBMC_PASSWORD}'} valid_status_codes=[${HTTP_OK}] 184a87b1b1fSAnves Kumar rayankula # Verify that root user is able to run Redfish command using default password. 1859f42121dSAnvesh Kumar Redfish.Logout 1869f42121dSAnvesh Kumar 1879f42121dSAnvesh Kumar 1889f42121dSAnvesh KumarTest Teardown Execution 1899f42121dSAnvesh Kumar [Documentation] Do test teardown task. 1909f42121dSAnvesh Kumar 1919f42121dSAnvesh Kumar Redfish.Login 1929f42121dSAnvesh Kumar Wait Until Keyword Succeeds 1 min 10 sec Restore Default Password For Root User 1939f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/ body={"AccountLockoutThreshold": 5} 1949f42121dSAnvesh Kumar Redfish.Logout 195*68f985b3SAnves Kumar rayankula FFDC On Test Case Fail 196*68f985b3SAnves Kumar rayankula 1979f42121dSAnvesh Kumar 1989f42121dSAnvesh KumarVerify Root Password Expired 1999f42121dSAnvesh Kumar [Documentation] Checking whether root password expired or not. 2009f42121dSAnvesh Kumar 2019f42121dSAnvesh Kumar Create Session openbmc ${AUTH_URI} 2029f42121dSAnvesh Kumar ${headers}= Create Dictionary Content-Type=application/json 2039f42121dSAnvesh Kumar @{credentials}= Create List ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 2049f42121dSAnvesh Kumar ${data}= Create Dictionary data=@{credentials} 2059f42121dSAnvesh Kumar ${resp}= Post Request openbmc /login data=${data} headers=${headers} 2069f42121dSAnvesh Kumar ${json}= To JSON ${resp.content} 2079f42121dSAnvesh Kumar Should Contain ${json["extendedMessage"]} POST the new password 208