1*** Settings *** 2Documentation This suite verifies the power restore policy supported by 3... REST Interfaces. 4... Refer here for documentation on the REST interfaces 5... https://github.com/openbmc/docs/blob/master/rest-api.md 6 7Resource ../../lib/rest_client.robot 8Resource ../../lib/utils.robot 9Resource ../../lib/openbmc_ffdc.robot 10Resource ../../lib/state_manager.robot 11Resource ../../lib/boot_utils.robot 12Resource ../../lib/bmc_redfish_resource.robot 13Resource ../../lib/bmc_redfish_utils.robot 14Library ../../lib/state_map.py 15 16Test Teardown Test Teardown Execution 17Suite Teardown Suite Teardown Execution 18 19Force Tags power_restore 20 21*** Variables *** 22 23*** Test Cases *** 24 25Test Restore Policy ALWAYS_POWER_OFF With Host Off 26 [Documentation] Validate ALWAYS_POWER_OFF restore policy functionality. 27 ... Policy: 28 ... System policy set to ALWAYS_POWER_OFF. 29 ... Initial Host State: 30 ... State where system should be before running the 31 ... test case. 32 ... Expected Host State: 33 ... After BMC reset, system should reach this 34 ... specific state. 35 [Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Off 36 [Template] Verify Restore Policy 37 38 # Policy Initial Host State Expected Host State 39 ${ALWAYS_POWER_OFF} Off Off 40 41 42 43Test Restore Policy ALWAYS_POWER_OFF With Host Running 44 [Documentation] Verify that the BMC restore policy is ALWAYS_POWER_OFF while the Host is running. 45 [Tags] Test_Restore_Policy_ALWAYS_POWER_OFF_With_Host_Running 46 [Template] Verify Restore Policy 47 48 # Policy Initial Host State Expected Host State 49 ${ALWAYS_POWER_OFF} Running Running 50 51 52Test Restore Policy ALWAYS_POWER_ON With Host Off 53 [Documentation] Validate ALWAYS_POWER_ON restore policy functionality. 54 ... Policy: 55 ... System policy set to ALWAYS_POWER_OFF. 56 ... Initial Host State: 57 ... State where system should be before running the 58 ... test case. 59 ... Expected Host State: 60 ... After BMC reset, system should reach this 61 ... specific state. 62 [Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Off 63 [Template] Verify Restore Policy 64 65 # Policy Initial Host State Expected Host State 66 ${ALWAYS_POWER_ON} Off Running 67 68 69 70Test Restore Policy ALWAYS_POWER_ON With Host Running 71 [Documentation] Verify the BMC restore policy is ALWAYS_POWER_ON while the Host is running. 72 [Tags] Test_Restore_Policy_ALWAYS_POWER_ON_With_Host_Running 73 [Template] Verify Restore Policy 74 75 # Policy Initial Host State Expected Host State 76 ${ALWAYS_POWER_ON} Running Running 77 78 79 80Test Restore Policy Restore Last State With Host Running 81 [Documentation] Validate RESTORE_LAST_STATE restore policy functionality. 82 ... Policy: 83 ... System policy set to RESTORE_LAST_STATE. 84 ... Initial Host State: 85 ... State where system should be before running the 86 ... test case. 87 ... Expected Host State: 88 ... After BMC reset, system should reach this 89 ... specific state. 90 [Tags] Test_Restore_Policy_Restore_Last_State_With_Host_Running 91 [Template] Verify Restore Policy 92 93 # Policy Initial Host State Expected Host State 94 ${RESTORE_LAST_STATE} Running Running 95 96 97 98Test Restore Policy Restore Last State With Host Off 99 [Documentation] Verify the RESTORE_LAST_STATE restore policy functionality while the Host is off. 100 [Tags] Test_Restore_Policy_Restore_Last_State_With_Host_Off 101 [Template] Verify Restore Policy 102 103 # Policy Initial Host State Expected Host State 104 ${RESTORE_LAST_STATE} Off Off 105 106 107*** Keywords *** 108 109Verify Restore Policy 110 [Documentation] Set given policy, reset BMC and expect specified end 111 ... state. 112 [Arguments] ${policy} ${expectedState} ${nextState} 113 114 # Description of argument(s): 115 # policy System policy state string. 116 # expectedState Test initial host state. 117 # nextState Test end host state. 118 119 Set Initial Test State ${expectedState} 120 121 Set BMC Power Policy ${policy} 122 123 Redfish BMC Reset Operation 124 Check If BMC is Up 125 126 Wait Until Keyword Succeeds 127 ... 10 min 20 sec Valid Boot States ${nextState} 128 129 130Valid Boot States 131 [Documentation] Verify boot states for a given system state. 132 [Arguments] ${sys_state} 133 134 # Description of argument(s): 135 # sys_state system state list 136 # (e.g. "Off", "On", "Reboot", etc.). 137 138 ${current_state}= Get Boot State 139 Valid Boot State ${sys_state} ${current_state} 140 141 142Set Initial Test State 143 [Documentation] Poweron if ON expected, Poweroff if OFF expected 144 ... to initial state of the test. 145 146 [Arguments] ${expectedState} 147 # Description of argument(s): 148 # expectedState Test initial host state. 149 150 Run Keyword If '${expectedState}' == 'Running' 151 ... Redfish Power On stack_mode=skip 152 153 Run Keyword If '${expectedState}' == 'Off' 154 ... Redfish Power Off stack_mode=skip 155 156 Redfish.Login 157 158 159Test Teardown Execution 160 [Documentation] Do the post test teardown. 161 # 1. Capture FFDC on test failure. 162 # 2. Close all open SSH connections. 163 164 FFDC On Test Case Fail 165 Close All Connections 166 Redfish.Login 167 168 169Suite Teardown Execution 170 [Documentation] Do the post suite teardown. 171 # 1. Set policy to default. 172 173 Run Keyword And Ignore Error Set BMC Power Policy ${ALWAYS_POWER_OFF} 174 Redfish.Logout 175 176