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*4d4ef99fSGeorge KeishingTest Setup Set Account Lockout Threshold 11e6c745acSAnves Kumar rayankula 1268f985b3SAnves Kumar rayankula*** Variables *** 139f42121dSAnvesh Kumar 1468f985b3SAnves Kumar rayankula# If user re-tries more than 5 time incorrectly, the user gets locked for 5 minutes. 1568f985b3SAnves Kumar rayankula${default_lockout_duration} ${300} 1668f985b3SAnves Kumar rayankula 17a87b1b1fSAnves Kumar rayankula 18a87b1b1fSAnves Kumar rayankula*** Test Cases *** 19a87b1b1fSAnves Kumar rayankula 20a87b1b1fSAnves Kumar rayankulaExpire Root Password And Check IPMI Access Fails 21a87b1b1fSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via IPMI. 22a87b1b1fSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_IPMI_Access_Fails 2368f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 24a87b1b1fSAnves Kumar rayankula 25a87b1b1fSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 26a87b1b1fSAnves Kumar rayankula 27a87b1b1fSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 28a87b1b1fSAnves Kumar rayankula Should Contain ${output} password expiry information changed 29a87b1b1fSAnves Kumar rayankula 30a87b1b1fSAnves Kumar rayankula ${status}= Run Keyword And Return Status Run External IPMI Standard Command lan print -v 31a87b1b1fSAnves Kumar rayankula Should Be Equal ${status} ${False} 32a87b1b1fSAnves Kumar rayankula 335df05f7dSAnves Kumar rayankula 345df05f7dSAnves Kumar rayankulaExpire Root Password And Check SSH Access Fails 355df05f7dSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via SSH. 365df05f7dSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_SSH_Access_Fails 3768f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 385df05f7dSAnves Kumar rayankula 395df05f7dSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 405df05f7dSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 415df05f7dSAnves Kumar rayankula Should Contain ${output} password expiry information changed 425df05f7dSAnves Kumar rayankula 435df05f7dSAnves Kumar rayankula ${status}= Run Keyword And Return Status 445df05f7dSAnves Kumar rayankula ... Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 455df05f7dSAnves Kumar rayankula Should Be Equal ${status} ${False} 465df05f7dSAnves Kumar rayankula 475df05f7dSAnves Kumar rayankula 4867921144SAnves Kumar rayankulaExpire And Change Root User Password And Access Via SSH 4967921144SAnves Kumar rayankula [Documentation] Expire and change root user password and access via SSH. 5067921144SAnves Kumar rayankula [Tags] Expire_Root_User_Password_And_Access_Via_SSH 5167921144SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 5267921144SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 5367921144SAnves Kumar rayankula 5467921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 5567921144SAnves Kumar rayankula 5667921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 5767921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 5867921144SAnves Kumar rayankula 599f42121dSAnvesh Kumar Redfish.Login 6067921144SAnves Kumar rayankula # Change to a valid password. 6167921144SAnves Kumar rayankula ${resp}= Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 6267921144SAnves Kumar rayankula ... body={'Password': '0penBmc123'} valid_status_codes=[${HTTP_OK}] 6367921144SAnves Kumar rayankula 6467921144SAnves Kumar rayankula # Verify login with the new password through SSH. 6567921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} 0penBmc123 6667921144SAnves Kumar rayankula 6767921144SAnves Kumar rayankula 6867921144SAnves Kumar rayankulaExpire Root Password And Update Bad Password Length Via Redfish 6967921144SAnves Kumar rayankula [Documentation] Expire root password and update bad password via Redfish and expect an error. 7067921144SAnves Kumar rayankula [Tags] Expire_Root_Password_And_Update_Bad_Password_Length_Via_Redfish 7167921144SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 7267921144SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 7367921144SAnves Kumar rayankula 7467921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 7567921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 7667921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 7767921144SAnves Kumar rayankula 789f42121dSAnvesh Kumar Redfish.Login 7967921144SAnves Kumar rayankula ${status}= Run Keyword And Return Status 8067921144SAnves Kumar rayankula ... Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 8167921144SAnves Kumar rayankula ... body={'Password': '0penBmc0penBmc0penBmc'} 8267921144SAnves Kumar rayankula Should Be Equal ${status} ${False} 83a87b1b1fSAnves Kumar rayankula 849f42121dSAnvesh Kumar 859f42121dSAnvesh KumarExpire And Change Root User Password Via Redfish And Verify 869f42121dSAnvesh Kumar [Documentation] Expire and change root user password via Redfish and verify. 879f42121dSAnvesh Kumar [Tags] Expire_And_Change_Root_User_Password_Via_Redfish_And_Verify 889f42121dSAnvesh Kumar [Teardown] Run Keywords FFDC On Test Case Fail AND 899f42121dSAnvesh Kumar ... Wait Until Keyword Succeeds 1 min 10 sec 909f42121dSAnvesh Kumar ... Restore Default Password For Root User 919f42121dSAnvesh Kumar 929f42121dSAnvesh Kumar Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 939f42121dSAnvesh Kumar 949f42121dSAnvesh Kumar ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 959f42121dSAnvesh Kumar Should Contain ${output} password expiry information changed 969f42121dSAnvesh Kumar 979f42121dSAnvesh Kumar Redfish.Login 989f42121dSAnvesh Kumar Verify Root Password Expired 999f42121dSAnvesh Kumar # Change to a valid password. 1009f42121dSAnvesh Kumar Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 1019f42121dSAnvesh Kumar ... body={'Password': '0penBmc123'} 1029f42121dSAnvesh Kumar Redfish.Logout 1039f42121dSAnvesh Kumar 1049f42121dSAnvesh Kumar # Verify login with the new password. 1059f42121dSAnvesh Kumar Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 1069f42121dSAnvesh Kumar 1079f42121dSAnvesh Kumar 108322e3aa9SAnves Kumar rayankulaVerify Error While Creating User With Expired Password 109322e3aa9SAnves Kumar rayankula [Documentation] Expire root password and expect an error while creating new user. 110322e3aa9SAnves Kumar rayankula [Tags] Verify_Error_While_Creating_User_With_Expired_Password 111322e3aa9SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 112322e3aa9SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 113322e3aa9SAnves Kumar rayankula 114322e3aa9SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 115322e3aa9SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 116322e3aa9SAnves Kumar rayankula Should Contain ${output} password expiry information changed 117322e3aa9SAnves Kumar rayankula 118322e3aa9SAnves Kumar rayankula Verify Root Password Expired 119322e3aa9SAnves Kumar rayankula Redfish.Login 120322e3aa9SAnves Kumar rayankula ${payload}= Create Dictionary 121322e3aa9SAnves Kumar rayankula ... UserName=admin_user Password=TestPwd123 RoleId=Administrator Enabled=${True} 122322e3aa9SAnves Kumar rayankula Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload} 123322e3aa9SAnves Kumar rayankula ... valid_status_codes=[${HTTP_FORBIDDEN}] 124322e3aa9SAnves Kumar rayankula 125322e3aa9SAnves Kumar rayankula 1269233ce15SAnves Kumar rayankulaExpire And Change Root Password Via GUI 1279233ce15SAnves Kumar rayankula [Documentation] Expire and change root password via GUI. 1289233ce15SAnves Kumar rayankula [Tags] Expire_And_Change_Root_Password_Via_GUI 1299233ce15SAnves Kumar rayankula [Setup] Run Keywords Launch Browser And Login OpenBMC GUI 1309233ce15SAnves Kumar rayankula [Teardown] Run Keywords Logout And Close Browser 1319233ce15SAnves Kumar rayankula ... AND Restore Default Password For Root User AND FFDC On Test Case Fail 1329233ce15SAnves Kumar rayankula 1339233ce15SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 1349233ce15SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 1359233ce15SAnves Kumar rayankula Should Contain ${output} password expiry information changed 1369233ce15SAnves Kumar rayankula 1379233ce15SAnves Kumar rayankula Click Button ${xpath_button_user_action} 1389233ce15SAnves Kumar rayankula Click Element ${xpath_button_profile_settings} 1399233ce15SAnves Kumar rayankula Page Should Contain Change password 1409233ce15SAnves Kumar rayankula Sleep 2s 1419233ce15SAnves Kumar rayankula # Change valid password. 1429233ce15SAnves Kumar rayankula Input Text ${xpath_input_password} 0penBmc123 1439233ce15SAnves Kumar rayankula Input Text ${xpath_input_confirm_password} 0penBmc123 1449233ce15SAnves Kumar rayankula Click Button ${xpath_submit_button} 1459233ce15SAnves Kumar rayankula 1469233ce15SAnves Kumar rayankula # Verify valid password. 1479233ce15SAnves Kumar rayankula Open Browser With URL ${obmc_gui_url} 1489233ce15SAnves Kumar rayankula Login OpenBMC GUI ${OPENBMC_USERNAME} 0penBmc123 1499233ce15SAnves Kumar rayankula Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 1509233ce15SAnves Kumar rayankula 1519233ce15SAnves Kumar rayankula 15268f985b3SAnves Kumar rayankulaVerify Maximum Failed Attempts And Check Root User Account Locked 15368f985b3SAnves Kumar rayankula [Documentation] Verify maximum failed attempts and locks out root user account. 15468f985b3SAnves Kumar rayankula [Tags] Verify_Maximum_Failed_Attempts_And_Check_Root_User_Account_Locked 155*4d4ef99fSGeorge Keishing [Setup] Set Account Lockout Threshold account_lockout_threshold=${5} 15668f985b3SAnves Kumar rayankula 15768f985b3SAnves Kumar rayankula # Make maximum failed login attempts. 15868f985b3SAnves Kumar rayankula Repeat Keyword ${5} times 15968f985b3SAnves Kumar rayankula ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login root 0penBmc123 16068f985b3SAnves Kumar rayankula 16168f985b3SAnves Kumar rayankula # Verify that legitimate login fails due to lockout. 16268f985b3SAnves Kumar rayankula Run Keyword And Expect Error InvalidCredentialsError* 16368f985b3SAnves Kumar rayankula ... Redfish.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 16468f985b3SAnves Kumar rayankula 16568f985b3SAnves Kumar rayankula # Wait for lockout duration to expire and then verify that login works. 16668f985b3SAnves Kumar rayankula Sleep ${default_lockout_duration}s 16768f985b3SAnves Kumar rayankula Redfish.Login 16868f985b3SAnves Kumar rayankula Redfish.Logout 16968f985b3SAnves Kumar rayankula 170c46a8960SAnves Kumar rayankulaVerify New Password Persistency After BMC Reboot 171c46a8960SAnves Kumar rayankula [Documentation] Verify new password persistency after BMC reboot. 172c46a8960SAnves Kumar rayankula [Tags] Verify_New_Password_Persistency_After_BMC_Reboot 173e6c745acSAnves Kumar rayankula [Teardown] Test Teardown Execution 174c46a8960SAnves Kumar rayankula 175c46a8960SAnves Kumar rayankula Redfish.Login 176e6c745acSAnves Kumar rayankula 177e6c745acSAnves Kumar rayankula # Make sure the user account in question does not already exist. 178e6c745acSAnves Kumar rayankula Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user 179e6c745acSAnves Kumar rayankula ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}] 180e6c745acSAnves Kumar rayankula 181e6c745acSAnves Kumar rayankula # Create specified user. 182e6c745acSAnves Kumar rayankula ${payload}= Create Dictionary 183e6c745acSAnves Kumar rayankula ... UserName=admin_user Password=TestPwd123 RoleId=Administrator Enabled=${True} 184e6c745acSAnves Kumar rayankula Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload} 185e6c745acSAnves Kumar rayankula ... valid_status_codes=[${HTTP_CREATED}] 186e6c745acSAnves Kumar rayankula Redfish.Logout 187e6c745acSAnves Kumar rayankula 188e6c745acSAnves Kumar rayankula Redfish.Login admin_user TestPwd123 189e6c745acSAnves Kumar rayankula 190c46a8960SAnves Kumar rayankula # Change to a valid password. 191e6c745acSAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user 192c46a8960SAnves Kumar rayankula ... body={'Password': '0penBmc123'} 193c46a8960SAnves Kumar rayankula 194c46a8960SAnves Kumar rayankula # Reboot BMC and verify persistency. 195e6c745acSAnves Kumar rayankula Redfish OBMC Reboot (off) 196c46a8960SAnves Kumar rayankula 197c46a8960SAnves Kumar rayankula # verify new password 198e6c745acSAnves Kumar rayankula Redfish.Login admin_user 0penBmc123 199c46a8960SAnves Kumar rayankula 20068f985b3SAnves Kumar rayankula 201a87b1b1fSAnves Kumar rayankula*** Keywords *** 202a87b1b1fSAnves Kumar rayankula 203*4d4ef99fSGeorge KeishingSet Account Lockout Threshold 204e6c745acSAnves Kumar rayankula [Documentation] Set user account lockout threshold. 205e6c745acSAnves Kumar rayankula [Arguments] ${account_lockout_threshold}=${0} 206e6c745acSAnves Kumar rayankula 207e6c745acSAnves Kumar rayankula # Description of argument(s): 208e6c745acSAnves Kumar rayankula # account_lockout_threshold Set lockout threshold value. 209a87b1b1fSAnves Kumar rayankula 210a87b1b1fSAnves Kumar rayankula Redfish.login 211e6c745acSAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/ body={"AccountLockoutThreshold":${account_lockout_threshold}} 212e6c745acSAnves Kumar rayankula gen_robot_valid.Valid Length OPENBMC_PASSWORD min_length=8 2139f42121dSAnvesh Kumar Redfish.Logout 2149f42121dSAnvesh Kumar 215a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User 216a87b1b1fSAnves Kumar rayankula [Documentation] Restore default password for root user (i.e. 0penBmc). 217a87b1b1fSAnves Kumar rayankula 218a87b1b1fSAnves Kumar rayankula # Set default password for root user. 21967921144SAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 22067921144SAnves Kumar rayankula ... body={'Password': '${OPENBMC_PASSWORD}'} valid_status_codes=[${HTTP_OK}] 221a87b1b1fSAnves Kumar rayankula # Verify that root user is able to run Redfish command using default password. 2229f42121dSAnvesh Kumar Redfish.Logout 2239f42121dSAnvesh Kumar 2249f42121dSAnvesh Kumar 2259f42121dSAnvesh KumarTest Teardown Execution 2269f42121dSAnvesh Kumar [Documentation] Do test teardown task. 2279f42121dSAnvesh Kumar 2289f42121dSAnvesh Kumar Redfish.Login 2299f42121dSAnvesh Kumar Wait Until Keyword Succeeds 1 min 10 sec Restore Default Password For Root User 2309f42121dSAnvesh Kumar Redfish.Logout 231*4d4ef99fSGeorge Keishing Set Account Lockout Threshold account_lockout_threshold=${5} 23268f985b3SAnves Kumar rayankula FFDC On Test Case Fail 23368f985b3SAnves Kumar rayankula 2349f42121dSAnvesh Kumar 2359f42121dSAnvesh KumarVerify Root Password Expired 2369f42121dSAnvesh Kumar [Documentation] Checking whether root password expired or not. 2379f42121dSAnvesh Kumar 2389f42121dSAnvesh Kumar Create Session openbmc ${AUTH_URI} 2399f42121dSAnvesh Kumar ${headers}= Create Dictionary Content-Type=application/json 2409f42121dSAnvesh Kumar @{credentials}= Create List ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 2419f42121dSAnvesh Kumar ${data}= Create Dictionary data=@{credentials} 2429f42121dSAnvesh Kumar ${resp}= Post Request openbmc /login data=${data} headers=${headers} 2439f42121dSAnvesh Kumar ${json}= To JSON ${resp.content} 2449f42121dSAnvesh Kumar Should Contain ${json["extendedMessage"]} POST the new password 245e6c745acSAnves Kumar rayankula 246