196bd1224SGeorge Keishing*** Settings *** 296bd1224SGeorge KeishingDocumentation Power cycle loop. This is to test where network service 396bd1224SGeorge Keishing... becomes unavailable during AC-Cycle stress test. 496bd1224SGeorge Keishing 596bd1224SGeorge KeishingResource ../lib/rest_client.robot 696bd1224SGeorge KeishingResource ../lib/pdu/pdu.robot 796bd1224SGeorge KeishingResource ../lib/utils.robot 896bd1224SGeorge KeishingResource ../lib/openbmc_ffdc.robot 996bd1224SGeorge KeishingResource ../lib/state_manager.robot 1096bd1224SGeorge KeishingResource ../lib/boot_utils.robot 11c26e74deSGeorge KeishingResource ../lib/code_update_utils.robot 129867beddSGeorge KeishingLibrary ../lib/bmc_ssh_utils.py 1396bd1224SGeorge Keishing 1494659a2cSGeorge KeishingTest Teardown Test Teardown Execution 15c26e74deSGeorge KeishingSuite Setup Suite Setup Execution 1696bd1224SGeorge Keishing 1796bd1224SGeorge Keishing*** Variables *** 1896bd1224SGeorge Keishing${LOOP_COUNT} ${50} 19*397846bbSGeorge Keishing${CHECK_FOR_ERRORS} ${1} 2096bd1224SGeorge Keishing 212c89173cSGeorge Keishing# Error strings to check from journald. 225b8ff520SGeorge Keishing${ERROR_REGEX} SEGV|core-dump|FAILURE|Failed to start 232c89173cSGeorge Keishing 2496bd1224SGeorge Keishing*** Test Cases *** 2596bd1224SGeorge Keishing 2696bd1224SGeorge KeishingRun Multiple Power Cycle 2796bd1224SGeorge Keishing [Documentation] Execute multiple power cycles. 2896bd1224SGeorge Keishing [Setup] Validate Parameters 2996bd1224SGeorge Keishing [Tags] Run_Multiple_Power_Cycle 3096bd1224SGeorge Keishing 3196bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 3296bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 3396bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 3496bd1224SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times Power Cycle System Via PDU 3596bd1224SGeorge Keishing 3696bd1224SGeorge Keishing 375d5b8a29SGeorge KeishingRun Multiple BMC Reset Via Redfish 3896bd1224SGeorge Keishing [Documentation] Execute multiple reboots via REST. 395d5b8a29SGeorge Keishing [Tags] Run_Multiple_BMC_Reset_Via_Redfish 4096bd1224SGeorge Keishing 4196bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 4296bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 4396bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 445d5b8a29SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Cycle 4596bd1224SGeorge Keishing 4696bd1224SGeorge Keishing 4796bd1224SGeorge KeishingRun Multiple BMC Reset Via Reboot 4896bd1224SGeorge Keishing [Documentation] Execute multiple reboots via "reboot" command. 4996bd1224SGeorge Keishing [Tags] Run_Multiple_BMC_Reset_Via_Reboot 5096bd1224SGeorge Keishing 5196bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 5296bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 5396bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 5496bd1224SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times BMC Reboot Cycle 5596bd1224SGeorge Keishing 5696bd1224SGeorge Keishing 5796bd1224SGeorge Keishing*** Keywords *** 5896bd1224SGeorge Keishing 5996bd1224SGeorge KeishingPower Cycle System Via PDU 6096bd1224SGeorge Keishing [Documentation] Power cycle system and wait for BMC to reach Ready state. 615d5b8a29SGeorge Keishing 6296bd1224SGeorge Keishing PDU Power Cycle 6396bd1224SGeorge Keishing Check If BMC Is Up 5 min 10 sec 6496bd1224SGeorge Keishing 6596bd1224SGeorge Keishing Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready 66b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 6796bd1224SGeorge Keishing 6896bd1224SGeorge Keishing 695d5b8a29SGeorge KeishingBMC Redfish Reset Cycle 705d5b8a29SGeorge Keishing [Documentation] Reset BMC via Redfish and verify required states. 715d5b8a29SGeorge Keishing 725d5b8a29SGeorge Keishing Redfish OBMC Reboot (off) 73*397846bbSGeorge Keishing 745d5b8a29SGeorge Keishing ${bmc_version}= Get BMC Version 75*397846bbSGeorge Keishing Valid Value bmc_version valid_values=['${initial_bmc_version}'] 76*397846bbSGeorge Keishing 77*397846bbSGeorge Keishing Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' 78*397846bbSGeorge Keishing ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 79*397846bbSGeorge Keishing 80b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 8196bd1224SGeorge Keishing 8296bd1224SGeorge Keishing 8396bd1224SGeorge KeishingBMC Reboot Cycle 8496bd1224SGeorge Keishing [Documentation] Reboot BMC and wait for ready state. 855d5b8a29SGeorge Keishing 8696bd1224SGeorge Keishing OBMC Reboot (off) stack_mode=normal 875d5b8a29SGeorge Keishing ${bmc_version}= Get BMC Version 889aa2f0bbSGeorge Keishing Valid Value bmc_version ["${initial_bmc_version}"] 89b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 90ef3308b7SGeorge Keishing Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 915d5b8a29SGeorge Keishing ${boot_side}= Get BMC Flash Chip Boot Side 925d5b8a29SGeorge Keishing Valid Value boot_side ['0'] 9396bd1224SGeorge Keishing 9496bd1224SGeorge Keishing 9594659a2cSGeorge KeishingTest Teardown Execution 9694659a2cSGeorge Keishing [Documentation] Do test case tear-down. 9796bd1224SGeorge Keishing Ping Host ${OPENBMC_HOST} 9896bd1224SGeorge Keishing FFDC On Test Case Fail 9996bd1224SGeorge Keishing 10096bd1224SGeorge Keishing 10196bd1224SGeorge KeishingValidate Parameters 10294659a2cSGeorge Keishing [Documentation] Validate PDU parameters. 10396bd1224SGeorge Keishing Should Not Be Empty ${PDU_IP} 10496bd1224SGeorge Keishing Should Not Be Empty ${PDU_TYPE} 10596bd1224SGeorge Keishing Should Not Be Empty ${PDU_SLOT_NO} 10696bd1224SGeorge Keishing Should Not Be Empty ${PDU_USERNAME} 10796bd1224SGeorge Keishing Should Not Be Empty ${PDU_PASSWORD} 10896bd1224SGeorge Keishing 109c26e74deSGeorge Keishing 110c26e74deSGeorge KeishingSuite Setup Execution 1115d5b8a29SGeorge Keishing [Documentation] Do suite setup. 1125d5b8a29SGeorge Keishing 1135d5b8a29SGeorge Keishing ${bmc_version}= Get BMC Version 1145d5b8a29SGeorge Keishing Set Suite Variable ${initial_bmc_version} ${bmc_version} 115