| *** Settings *** |
| Documentation This suite will verifiy the power restore policy rest Interfaces |
| ... Details of valid interfaces can be found here... |
| ... https://github.com/openbmc/docs/blob/master/rest-api.md |
| |
| Resource ../lib/rest_client.robot |
| Resource ../lib/pdu/pdu.robot |
| Resource ../lib/utils.robot |
| Resource ../lib/openbmc_ffdc.robot |
| |
| |
| Library SSHLibrary |
| |
| Test Teardown Log FFDC |
| Force Tags chassisboot bmcreboot |
| |
| ***test cases*** |
| |
| Set the power restore policy Policy ExpectedSystemState NextSystemState |
| |
| LEAVE_OFF HOST_POWERED_OFF HOST_POWERED_OFF |
| LEAVE_OFF HOST_POWERED_ON HOST_POWERED_OFF |
| ALWAYS_POWER_ON HOST_POWERED_OFF HOST_POWERED_ON |
| ALWAYS_POWER_ON HOST_POWERED_ON HOST_POWERED_ON |
| RESTORE_LAST_STATE HOST_POWERED_ON HOST_POWERED_ON |
| RESTORE_LAST_STATE HOST_POWERED_OFF HOST_POWERED_OFF |
| |
| [Documentation] This test case sets the pilicy as given under the policy attribute. |
| ... ExpectedSystemState:-is the state where system should be before running the test case |
| ... NextSystemState:-is After Power cycle system should reach to this state |
| ... if the system is not at the Expected System State,This test case brings the system |
| ... in the Expected state then do the power cycle. |
| |
| [Template] setRestorePolicy |
| |
| ***keywords*** |
| setRestorePolicy |
| [arguments] ${policy} ${expectedSystemState} ${nextSystemState} |
| ${valueDict} = create dictionary data=${policy} |
| Write Attribute /org/openbmc/settings/host0 power_policy data=${valueDict} |
| ${currentPolicy}= Read Attribute /org/openbmc/settings/host0 power_policy |
| Should Be Equal ${currentPolicy} ${policy} |
| ${currentSystemState}= Read Attribute /org/openbmc/settings/host0 system_state |
| log Many "CurrentSystemState=" ${currentSystemState} |
| log Many "ExpectedSystemState=" ${expectedSystemState} |
| log Many "NextSystemState=" ${nextSystemState} |
| Run Keyword If '${currentSystemState}' != '${expectedSystemState}' and '${expectedSystemState}' == 'HOST_POWERED_ON' powerOnHost |
| Run Keyword If '${currentSystemState}' != '${expectedSystemState}' and '${expectedSystemState}' == 'HOST_POWERED_OFF' powerOffHost |
| log to console "Doing power cycle" |
| PDU Power Cycle |
| Wait For Host To Ping ${OPENBMC_HOST} |
| log to console "Host is pingable now" |
| Sleep 100sec |
| ${afterPduSystemState}= Read Attribute /org/openbmc/settings/host0 system_state |
| Should be equal ${afterPduSystemState} ${nextSystemState} |
| |
| powerOffHost |
| log to console "Powering off the host" |
| @{arglist}= Create List |
| ${args}= Create Dictionary data=@{arglist} |
| ${resp}= Call Method /org/openbmc/control/chassis0/ powerOff data=${args} |
| should be equal as strings ${resp.status_code} ${HTTP_OK} |
| ${json} = to json ${resp.content} |
| should be equal as strings ${json['status']} ok |
| sleep 30sec |
| ${currentSystemState}= Read Attribute /org/openbmc/settings/host0 system_state |
| Should be equal ${currentSystemState} HOST_POWERED_OFF |
| |
| powerOnHost |
| log to console "Powering on the host" |
| @{arglist}= Create List |
| ${args}= Create Dictionary data=@{arglist} |
| ${resp}= Call Method /org/openbmc/control/chassis0/ powerOn data=${args} |
| should be equal as strings ${resp.status_code} ${HTTP_OK} |
| ${json} = to json ${resp.content} |
| should be equal as strings ${json['status']} ok |
| sleep 30sec |
| ${currentSystemState}= Read Attribute /org/openbmc/settings/host0 system_state |
| Should be equal ${currentSystemState} HOST_POWERED_ON |
| |
| |
| |