blob: 8107cdb4534a068a38ce1c0b90d1bee4d609a6b2 [file] [log] [blame]
*** Settings ***
Documentation This suite verifies the power restore policy supported by
... REST Interfaces.
... Refer here for documentation on the REST interfaces
... https://github.com/openbmc/docs/blob/master/rest-api.md
Resource ../../lib/rest_client.robot
Resource ../../lib/utils.robot
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/state_manager.robot
Resource ../../lib/boot_utils.robot
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/bmc_redfish_utils.robot
Library ../../lib/state_map.py
Test Teardown Test Teardown Execution
Suite Teardown Suite Teardown Execution
Force Tags power_restore
*** Variables ***
*** Test Cases ***
Test Restore Policy ALWAYS_POWER_OFF With Host Off
[Documentation] Validate ALWAYS_POWER_OFF restore policy functionality.
... Policy:
... System policy set to ALWAYS_POWER_OFF.
... Initial Host State:
... State where system should be before running the
... test case.
... Expected Host State:
... After BMC reset, system should reach this
... specific state.
[Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Off
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
AlwaysOff Off Off
Test Restore Policy ALWAYS_POWER_OFF With Host Running
[Documentation] Verify that the BMC restore policy is ALWAYS_POWER_OFF while the Host is running.
[Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Running
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
AlwaysOff Running Running
Test Restore Policy ALWAYS_POWER_ON With Host Off
[Documentation] Validate ALWAYS_POWER_ON restore policy functionality.
... Policy:
... System policy set to ALWAYS_POWER_OFF.
... Initial Host State:
... State where system should be before running the
... test case.
... Expected Host State:
... After BMC reset, system should reach this
... specific state.
[Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Off
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
AlwaysOn Off Running
Test Restore Policy ALWAYS_POWER_ON With Host Running
[Documentation] Verify the BMC restore policy is ALWAYS_POWER_ON while the Host is running.
[Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Running
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
AlwaysOn Running Running
Test Restore Policy Restore Last State With Host Running
[Documentation] Validate RESTORE_LAST_STATE restore policy functionality.
... Policy:
... System policy set to RESTORE_LAST_STATE.
... Initial Host State:
... State where system should be before running the
... test case.
... Expected Host State:
... After BMC reset, system should reach this
... specific state.
[Tags] Test_Restore_Policy_Restore_Last_State_With_Host_Running
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
LastState Running Running
Test Restore Policy Restore Last State With Host Off
[Documentation] Verify the RESTORE_LAST_STATE restore policy functionality while the Host is off.
[Tags] Test_Restore_Policy_Restore_Last_State_With_Host_Off
[Template] Verify Restore Policy
# Policy Initial Host State Expected Host State
LastState Off Off
*** Keywords ***
Verify Restore Policy
[Documentation] Set given policy, reset BMC and expect specified end
... state.
[Arguments] ${policy} ${expectedState} ${nextState}
# Description of argument(s):
# policy System policy state string.
# expectedState Test initial host state.
# nextState Test end host state.
Set Initial Test State ${expectedState}
Redfish Set Power Restore Policy ${policy}
Redfish BMC Reset Operation
Sleep 20s
Wait For BMC Online
Wait Until Keyword Succeeds
... 10 min 20 sec Valid Boot States ${nextState}
Valid Boot States
[Documentation] Verify boot states for a given system state.
[Arguments] ${sys_state}
# Description of argument(s):
# sys_state system state list
# (e.g. "Off", "On", "Reboot", etc.).
${current_state}= Redfish Get States
Redfish Valid Boot State ${sys_state} ${current_state}
Set Initial Test State
[Documentation] Poweron if ON expected, Poweroff if OFF expected
... to initial state of the test.
[Arguments] ${expectedState}
# Description of argument(s):
# expectedState Test initial host state.
Redfish.Login
Run Keyword If '${expectedState}' == 'Running'
... Redfish Power On stack_mode=skip
Run Keyword If '${expectedState}' == 'Off'
... Redfish Power Off stack_mode=skip
Test Teardown Execution
[Documentation] Do the post test teardown.
# 1. Capture FFDC on test failure.
# 2. Close all open SSH connections.
FFDC On Test Case Fail
Close All Connections
Suite Teardown Execution
[Documentation] Do the post suite teardown.
# 1. Set policy to default.
Run Keyword And Ignore Error Redfish Set Power Restore Policy AlwaysOff
Redfish.Logout
Wait For BMC Online
[Documentation] Wait for Host to be online. Checks every X seconds
... interval for Y minutes and fails if timed out.
... Default MAX timedout is 10 min, interval 10 seconds.
[Arguments] ${max_timeout}=${OPENBMC_REBOOT_TIMEOUT} min
... ${interval}=10 sec
# Description of argument(s):
# max_timeout Maximum time to wait.
# This should be expressed in Robot Framework's time format
# (e.g. "10 minutes").
# interval Interval to wait between status checks.
# This should be expressed in Robot Framework's time format
# (e.g. "5 seconds").
Wait Until Keyword Succeeds
... ${max_timeout} ${interval} Verify Ping SSH And Redfish Authentication