1a87b1b1fSAnves Kumar rayankula*** Settings *** 2a87b1b1fSAnves Kumar rayankulaDocumentation Test root user expire password. 3a87b1b1fSAnves Kumar rayankula 4a87b1b1fSAnves Kumar rayankulaResource ../lib/resource.robot 5*a9d9341cSshrsuman123Resource ../gui/lib/gui_resource.robot 6a87b1b1fSAnves Kumar rayankulaResource ../lib/ipmi_client.robot 7*a9d9341cSshrsuman123Resource ../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 1368f985b3SAnves Kumar rayankula*** Variables *** 149f42121dSAnvesh Kumar 1568f985b3SAnves Kumar rayankula# If user re-tries more than 5 time incorrectly, the user gets locked for 5 minutes. 1668f985b3SAnves Kumar rayankula${default_lockout_duration} ${300} 1768f985b3SAnves Kumar rayankula 18a87b1b1fSAnves Kumar rayankula 19a87b1b1fSAnves Kumar rayankula*** Test Cases *** 20a87b1b1fSAnves Kumar rayankula 21a87b1b1fSAnves Kumar rayankulaExpire Root Password And Check IPMI Access Fails 22a87b1b1fSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via IPMI. 23a87b1b1fSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_IPMI_Access_Fails 2468f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 25a87b1b1fSAnves Kumar rayankula 26a87b1b1fSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 27a87b1b1fSAnves Kumar rayankula 28a87b1b1fSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 29a87b1b1fSAnves Kumar rayankula Should Contain ${output} password expiry information changed 30a87b1b1fSAnves Kumar rayankula 31a87b1b1fSAnves Kumar rayankula ${status}= Run Keyword And Return Status Run External IPMI Standard Command lan print -v 32a87b1b1fSAnves Kumar rayankula Should Be Equal ${status} ${False} 33a87b1b1fSAnves Kumar rayankula 345df05f7dSAnves Kumar rayankula 355df05f7dSAnves Kumar rayankulaExpire Root Password And Check SSH Access Fails 365df05f7dSAnves Kumar rayankula [Documentation] Expire root user password and expect an error while access via SSH. 375df05f7dSAnves Kumar rayankula [Tags] Expire_Root_Password_And_Check_SSH_Access_Fails 3868f985b3SAnves Kumar rayankula [Teardown] Test Teardown Execution 395df05f7dSAnves Kumar rayankula 405df05f7dSAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 415df05f7dSAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 425df05f7dSAnves Kumar rayankula Should Contain ${output} password expiry information changed 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. 5167921144SAnves Kumar rayankula [Tags] Expire_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 5567921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 5667921144SAnves Kumar rayankula 5767921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 5867921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 5967921144SAnves Kumar rayankula 609f42121dSAnvesh Kumar Redfish.Login 6167921144SAnves Kumar rayankula # Change to a valid password. 6267921144SAnves Kumar rayankula ${resp}= Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 6367921144SAnves Kumar rayankula ... body={'Password': '0penBmc123'} valid_status_codes=[${HTTP_OK}] 6467921144SAnves Kumar rayankula 6567921144SAnves Kumar rayankula # Verify login with the new password through SSH. 6667921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} 0penBmc123 6767921144SAnves Kumar rayankula 6867921144SAnves Kumar rayankula 6967921144SAnves Kumar rayankulaExpire Root Password And Update Bad Password Length Via Redfish 7067921144SAnves Kumar rayankula [Documentation] Expire root password and update bad password via Redfish and expect an error. 7167921144SAnves Kumar rayankula [Tags] Expire_Root_Password_And_Update_Bad_Password_Length_Via_Redfish 7267921144SAnves Kumar rayankula [Teardown] Run Keywords Wait Until Keyword Succeeds 1 min 10 sec 7367921144SAnves Kumar rayankula ... Restore Default Password For Root User AND FFDC On Test Case Fail 7467921144SAnves Kumar rayankula 7567921144SAnves Kumar rayankula Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 7667921144SAnves Kumar rayankula ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 7767921144SAnves Kumar rayankula Should Contain ${output} password expiry information changed 7867921144SAnves Kumar rayankula 799f42121dSAnvesh Kumar Redfish.Login 8067921144SAnves Kumar rayankula ${status}= Run Keyword And Return Status 8167921144SAnves Kumar rayankula ... Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 8267921144SAnves Kumar rayankula ... body={'Password': '0penBmc0penBmc0penBmc'} 8367921144SAnves Kumar rayankula Should Be Equal ${status} ${False} 84a87b1b1fSAnves Kumar rayankula 859f42121dSAnvesh Kumar 869f42121dSAnvesh KumarExpire And Change Root User Password Via Redfish And Verify 879f42121dSAnvesh Kumar [Documentation] Expire and change root user password via Redfish and verify. 889f42121dSAnvesh Kumar [Tags] Expire_And_Change_Root_User_Password_Via_Redfish_And_Verify 899f42121dSAnvesh Kumar [Teardown] Run Keywords FFDC On Test Case Fail AND 909f42121dSAnvesh Kumar ... Wait Until Keyword Succeeds 1 min 10 sec 919f42121dSAnvesh Kumar ... Restore Default Password For Root User 929f42121dSAnvesh Kumar 939f42121dSAnvesh Kumar Open Connection And Log In ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 949f42121dSAnvesh Kumar 959f42121dSAnvesh Kumar ${output} ${stderr} ${rc}= BMC Execute Command passwd --expire ${OPENBMC_USERNAME} 969f42121dSAnvesh Kumar Should Contain ${output} password expiry information changed 979f42121dSAnvesh Kumar 98*a9d9341cSshrsuman123 Verify User Password Expired Using Redfish ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 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 118*a9d9341cSshrsuman123 Verify User Password Expired Using Redfish ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 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 129*a9d9341cSshrsuman123 [Setup] Launch Browser And Login GUI 130*a9d9341cSshrsuman123 [Teardown] Run Keywords Logout GUI 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 137*a9d9341cSshrsuman123 Wait Until Page Contains Element ${xpath_root_button_menu} 138*a9d9341cSshrsuman123 Click Element ${xpath_root_button_menu} 139*a9d9341cSshrsuman123 Click Element ${xpath_profile_settings} 140*a9d9341cSshrsuman123 Wait Until Page Contains Change password 141*a9d9341cSshrsuman123 1429233ce15SAnves Kumar rayankula # Change valid password. 1439233ce15SAnves Kumar rayankula Input Text ${xpath_input_password} 0penBmc123 1449233ce15SAnves Kumar rayankula Input Text ${xpath_input_confirm_password} 0penBmc123 145*a9d9341cSshrsuman123 Click Button ${xpath_profile_save_button} 146*a9d9341cSshrsuman123 Wait Until Page Contains Successfully saved account settings. 147*a9d9341cSshrsuman123 Wait Until Page Does Not Contain Successfully saved account settings. timeout=20 148*a9d9341cSshrsuman123 Logout GUI 1499233ce15SAnves Kumar rayankula 1509233ce15SAnves Kumar rayankula # Verify valid password. 151*a9d9341cSshrsuman123 Login GUI ${OPENBMC_USERNAME} 0penBmc123 1529233ce15SAnves Kumar rayankula Redfish.Login ${OPENBMC_USERNAME} 0penBmc123 1539233ce15SAnves Kumar rayankula 1549233ce15SAnves Kumar rayankula 15568f985b3SAnves Kumar rayankulaVerify Maximum Failed Attempts And Check Root User Account Locked 15668f985b3SAnves Kumar rayankula [Documentation] Verify maximum failed attempts and locks out root user account. 15768f985b3SAnves Kumar rayankula [Tags] Verify_Maximum_Failed_Attempts_And_Check_Root_User_Account_Locked 1584d4ef99fSGeorge Keishing [Setup] Set Account Lockout Threshold account_lockout_threshold=${5} 15968f985b3SAnves Kumar rayankula 16068f985b3SAnves Kumar rayankula # Make maximum failed login attempts. 16168f985b3SAnves Kumar rayankula Repeat Keyword ${5} times 16268f985b3SAnves Kumar rayankula ... Run Keyword And Expect Error InvalidCredentialsError* Redfish.Login root 0penBmc123 16368f985b3SAnves Kumar rayankula 16468f985b3SAnves Kumar rayankula # Verify that legitimate login fails due to lockout. 16568f985b3SAnves Kumar rayankula Run Keyword And Expect Error InvalidCredentialsError* 16668f985b3SAnves Kumar rayankula ... Redfish.Login ${OPENBMC_USERNAME} ${OPENBMC_PASSWORD} 16768f985b3SAnves Kumar rayankula 16868f985b3SAnves Kumar rayankula # Wait for lockout duration to expire and then verify that login works. 16968f985b3SAnves Kumar rayankula Sleep ${default_lockout_duration}s 17068f985b3SAnves Kumar rayankula Redfish.Login 17168f985b3SAnves Kumar rayankula Redfish.Logout 17268f985b3SAnves Kumar rayankula 173c46a8960SAnves Kumar rayankulaVerify New Password Persistency After BMC Reboot 174c46a8960SAnves Kumar rayankula [Documentation] Verify new password persistency after BMC reboot. 175c46a8960SAnves Kumar rayankula [Tags] Verify_New_Password_Persistency_After_BMC_Reboot 176e6c745acSAnves Kumar rayankula [Teardown] Test Teardown Execution 177c46a8960SAnves Kumar rayankula 178c46a8960SAnves Kumar rayankula Redfish.Login 179e6c745acSAnves Kumar rayankula 180e6c745acSAnves Kumar rayankula # Make sure the user account in question does not already exist. 181e6c745acSAnves Kumar rayankula Redfish.Delete /redfish/v1/AccountService/Accounts/admin_user 182e6c745acSAnves Kumar rayankula ... valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}] 183e6c745acSAnves Kumar rayankula 184e6c745acSAnves Kumar rayankula # Create specified user. 185e6c745acSAnves Kumar rayankula ${payload}= Create Dictionary 186e6c745acSAnves Kumar rayankula ... UserName=admin_user Password=TestPwd123 RoleId=Administrator Enabled=${True} 187e6c745acSAnves Kumar rayankula Redfish.Post /redfish/v1/AccountService/Accounts/ body=&{payload} 188e6c745acSAnves Kumar rayankula ... valid_status_codes=[${HTTP_CREATED}] 189e6c745acSAnves Kumar rayankula Redfish.Logout 190e6c745acSAnves Kumar rayankula 191e6c745acSAnves Kumar rayankula Redfish.Login admin_user TestPwd123 192e6c745acSAnves Kumar rayankula 193c46a8960SAnves Kumar rayankula # Change to a valid password. 194e6c745acSAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/admin_user 195c46a8960SAnves Kumar rayankula ... body={'Password': '0penBmc123'} 196c46a8960SAnves Kumar rayankula 197c46a8960SAnves Kumar rayankula # Reboot BMC and verify persistency. 198e6c745acSAnves Kumar rayankula Redfish OBMC Reboot (off) 199c46a8960SAnves Kumar rayankula 200c46a8960SAnves Kumar rayankula # verify new password 201e6c745acSAnves Kumar rayankula Redfish.Login admin_user 0penBmc123 202c46a8960SAnves Kumar rayankula 20368f985b3SAnves Kumar rayankula 204a87b1b1fSAnves Kumar rayankula*** Keywords *** 205a87b1b1fSAnves Kumar rayankula 2064d4ef99fSGeorge KeishingSet Account Lockout Threshold 207e6c745acSAnves Kumar rayankula [Documentation] Set user account lockout threshold. 208*a9d9341cSshrsuman123 [Arguments] ${account_lockout_threshold}=${0} ${account_lockout_duration}=${50} 209e6c745acSAnves Kumar rayankula 210e6c745acSAnves Kumar rayankula # Description of argument(s): 211e6c745acSAnves Kumar rayankula # account_lockout_threshold Set lockout threshold value. 212*a9d9341cSshrsuman123 # account_lockout_duration Set lockout duration value. 213a87b1b1fSAnves Kumar rayankula 214a87b1b1fSAnves Kumar rayankula Redfish.login 215*a9d9341cSshrsuman123 ${payload}= Create Dictionary AccountLockoutThreshold=${account_lockout_threshold} 216*a9d9341cSshrsuman123 ... AccountLockoutDuration=${account_lockout_duration} 217*a9d9341cSshrsuman123 Redfish.Patch /redfish/v1/AccountService/ body=&{payload} 218e6c745acSAnves Kumar rayankula gen_robot_valid.Valid Length OPENBMC_PASSWORD min_length=8 2199f42121dSAnvesh Kumar Redfish.Logout 2209f42121dSAnvesh Kumar 221a87b1b1fSAnves Kumar rayankulaRestore Default Password For Root User 222a87b1b1fSAnves Kumar rayankula [Documentation] Restore default password for root user (i.e. 0penBmc). 223a87b1b1fSAnves Kumar rayankula 224a87b1b1fSAnves Kumar rayankula # Set default password for root user. 22567921144SAnves Kumar rayankula Redfish.Patch /redfish/v1/AccountService/Accounts/${OPENBMC_USERNAME} 22667921144SAnves Kumar rayankula ... body={'Password': '${OPENBMC_PASSWORD}'} valid_status_codes=[${HTTP_OK}] 227a87b1b1fSAnves Kumar rayankula # Verify that root user is able to run Redfish command using default password. 2289f42121dSAnvesh Kumar Redfish.Logout 2299f42121dSAnvesh Kumar 2309f42121dSAnvesh Kumar 2319f42121dSAnvesh KumarTest Teardown Execution 2329f42121dSAnvesh Kumar [Documentation] Do test teardown task. 2339f42121dSAnvesh Kumar 2349f42121dSAnvesh Kumar Redfish.Login 2359f42121dSAnvesh Kumar Wait Until Keyword Succeeds 1 min 10 sec Restore Default Password For Root User 2369f42121dSAnvesh Kumar Redfish.Logout 2374d4ef99fSGeorge Keishing Set Account Lockout Threshold account_lockout_threshold=${5} 23868f985b3SAnves Kumar rayankula FFDC On Test Case Fail 239