blob: e19b5e115b8c49adee07302f15ba32c402d15287 [file] [log] [blame]
*** Settings ***
Documentation Test auto reboot functionality of host.
Resource ../lib/openbmc_ffdc.robot
Resource ../lib/rest_client.robot
Resource ../lib/state_manager.robot
Test Setup Open Connection And Log In
Test Teardown Post Testcase Execution
*** Variables ***
*** Test Cases ***
Verify Host Quiesce State Without Auto Reboot
# Description of template fields:
# Auto Reboot Host State Expected Host Action
no Off No Reboot
[Documentation] Validate "Quiesce" state without auto reboot.
[Tags] Verify_Host_Quiesce_State_Without_Auto_Reboot
[Template] Verify Host Quiesce State
Verify Host Quiesce State With Auto Reboot
# Description of template fields:
# Auto Reboot Host State Expected Host Action
yes Off Reboot
[Documentation] Validate "Quiesce" state with auto reboot.
[Tags] Verify_Host_Quiesce_State_With_Auto_Reboot
[Template] Verify Host Quiesce State
Verify Host Quiesce State Without Auto Reboot During Boot
# Description of template fields:
# Auto Reboot Host State Expected Host Action
no Booting No Reboot
[Documentation] Validate "Quiesce" state during IPL.
[Tags] Verify_Host_Quiesce_State_Without_Auto_Reboot_During_Boot
[Template] Verify Host Quiesce State
Verify Host Quiesce State With Auto Reboot During Boot
# Description of template fields:
# Auto Reboot Host State Expected Host Action
yes Booting Reboot
[Documentation] Validate "Quiesce" state during IPL.
[Tags] Verify_Host_Quiesce_State_With_Auto_Reboot_During_Boot
[Template] Verify Host Quiesce State
*** Keywords ***
Verify Host Quiesce State
[Documentation] Inject watchdog error on host to reach "Quiesce" state.
... Later recover host from this state.
[Arguments] ${auto_reboot} ${host_state} ${action}
# Description of Arguments:
# auto_reboot Auto reboot setting ("yes" or "no").
# host_state State of host before injecting error.
# action Action of host due to error ("No Reboot" or "Reboot").
Set Auto Reboot ${auto_reboot}
Run Keyword If '${host_state}' == 'Off' Initiate Host PowerOff
... ELSE IF '${host_state}' == 'Booting'
... Run Keywords Initiate Host PowerOff AND Initiate Host Boot
Trigger Host Watchdog Error
${resp}= Run Keyword And Return Status Is Host Rebooted
Run Keyword If '${action}' == 'No Reboot'
... Run Keywords Should Be Equal ${resp} ${False} AND
... Wait Until Keyword Succeeds 3 min 5 sec Is Host Quiesced AND
... Recover Quiesced Host
... ELSE IF '${action}' == 'Reboot'
... Wait Until Keyword Succeeds 3 min 5 sec Is Host Rebooted
Post Testcase Execution
[Documentation] Do the post test teardown.
... 1. Capture FFDC on test failure.
... 2. Set default value for auto reboot.
... 3. Close all open SSH connections.
FFDC On Test Case Fail
Set Auto Reboot yes
Close All Connections