| *** 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 |
| |
| |
| Library SSHLibrary |
| |
| Test Teardown Post Test Case Execution |
| Suite Teardown Post Test Suite Execution |
| |
| Force Tags power_restore |
| |
| *** Variables *** |
| |
| *** Test Cases *** |
| |
| Test Restore Policy ALWAYS_POWER_OFF With Host Off |
| # Policy Initial Host State Expected Host State |
| |
| ${ALWAYS_POWER_OFF} Off 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. |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Off |
| |
| |
| Test Restore Policy ALWAYS_POWER_OFF With Host Running |
| # Policy Initial Host State Expected Host State |
| |
| ${ALWAYS_POWER_OFF} Running Off |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Running |
| |
| |
| Test Restore Policy ALWAYS_POWER_ON With Host Off |
| # Policy Initial Host State Expected Host State |
| |
| ${ALWAYS_POWER_ON} Off Running |
| |
| [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. |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Off |
| |
| |
| Test Restore Policy ALWAYS_POWER_ON With Host Running |
| # Policy Initial Host State Expected Host State |
| |
| ${ALWAYS_POWER_ON} Running Running |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Running |
| |
| |
| Test Restore Policy Restore Last State With Host Running |
| # Policy Initial Host State Expected Host State |
| |
| ${RESTORE_LAST_STATE} Running 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. |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_Restore_Last_State_With_Host_Running |
| |
| |
| Test Restore Policy Restore Last State With Host Off |
| # Policy Initial Host State Expected Host State |
| |
| ${RESTORE_LAST_STATE} Off Off |
| |
| |
| [Template] Verify Restore Policy |
| [Tags] Test_Restore_Policy_Restore_Last_State_With_Host_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 BMC Power Policy ${policy} |
| |
| ${currentState}= Get Host State |
| |
| Log Current System State= ${currentState} |
| Log Initial Host State= ${expectedState} |
| Log Expected Host State= ${nextState} |
| |
| Run Keyword If |
| ... '${currentState}' != '${expectedState}' |
| ... Set Initial Test State ${expectedState} |
| |
| Initiate BMC Reboot |
| |
| Wait Until Keyword Succeeds |
| ... 10 min 10 sec Verify Host State ${nextState} |
| |
| |
| 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. |
| |
| Run Keyword If '${expectedState}' == 'Running' |
| ... Initiate Host Boot |
| |
| Run Keyword If '${expectedState}' == 'Off' |
| ... Initiate Host PowerOff |
| |
| |
| ${currentState}= Get Host State |
| |
| |
| Verify Host State |
| [Documentation] Verify expected host state. |
| [Arguments] ${expectedState} |
| |
| # Description of argument(s): |
| # expectedState Expected host state. |
| ${currentState}= Get Host State |
| Should Be Equal ${currentState} ${expectedState} |
| |
| |
| Post Test Case 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 |
| |
| |
| Post Test Suite Execution |
| [Documentation] Do the post suite teardown. |
| # 1. Set policy to default. |
| |
| Run Keyword And Ignore Error Set BMC Power Policy ${RESTORE_LAST_STATE} |
| |