| Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 1 | *** Settings *** | 
 | 2 | Documentation                This suite will verifiy the power restore policy rest Interfaces | 
 | 3 | ...                          Details of valid interfaces can be found here... | 
 | 4 | ...                          https://github.com/openbmc/docs/blob/master/rest-api.md | 
 | 5 |  | 
 | 6 | Resource        ../lib/rest_client.robot | 
 | 7 | Resource        ../lib/pdu/pdu.robot | 
 | 8 | Resource        ../lib/utils.robot | 
| George Keishing | d55a4be | 2016-08-26 03:28:17 -0500 | [diff] [blame] | 9 | Resource        ../lib/openbmc_ffdc.robot | 
| Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 10 |  | 
 | 11 |  | 
 | 12 | Library         SSHLibrary | 
 | 13 |  | 
| George Keishing | d55a4be | 2016-08-26 03:28:17 -0500 | [diff] [blame] | 14 | Test Teardown   Log FFDC | 
| causten | 147f575 | 2016-08-11 16:24:45 -0500 | [diff] [blame] | 15 | Force Tags      chassisboot  bmcreboot | 
| Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 16 |  | 
 | 17 | ***test cases*** | 
 | 18 |  | 
 | 19 | Set the power restore policy       Policy                 ExpectedSystemState       NextSystemState | 
 | 20 |                    | 
 | 21 |                                    LEAVE_OFF              HOST_POWERED_OFF          HOST_POWERED_OFF | 
 | 22 |                                    LEAVE_OFF              HOST_POWERED_ON           HOST_POWERED_OFF | 
 | 23 |                                    ALWAYS_POWER_ON        HOST_POWERED_OFF          HOST_POWERED_ON | 
 | 24 |                                    ALWAYS_POWER_ON        HOST_POWERED_ON           HOST_POWERED_ON | 
 | 25 |                                    RESTORE_LAST_STATE     HOST_POWERED_ON           HOST_POWERED_ON | 
 | 26 |                                    RESTORE_LAST_STATE     HOST_POWERED_OFF          HOST_POWERED_OFF  | 
 | 27 |                                       | 
 | 28 |     [Documentation]   This test case sets the pilicy as given under the policy attribute. | 
 | 29 |     ...               ExpectedSystemState:-is the state where system should be before running the test case | 
 | 30 |     ...               NextSystemState:-is After Power cycle system should reach to this state  | 
 | 31 |     ...               if the system is not at the Expected System State,This test case brings the system  | 
 | 32 |     ...               in the Expected state then do the power cycle. | 
 | 33 |  | 
 | 34 |     [Template]    setRestorePolicy | 
| Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 35 |  | 
 | 36 | ***keywords*** | 
 | 37 | setRestorePolicy | 
 | 38 |     [arguments]        ${policy}     ${expectedSystemState}   ${nextSystemState} | 
 | 39 |     ${valueDict} =   create dictionary   data=${policy} | 
 | 40 |     Write Attribute  /org/openbmc/settings/host0    power_policy      data=${valueDict} | 
 | 41 |     ${currentPolicy}=      Read Attribute    /org/openbmc/settings/host0    power_policy | 
 | 42 |     Should Be Equal     ${currentPolicy}      ${policy} | 
 | 43 |     ${currentSystemState}=      Read Attribute    /org/openbmc/settings/host0    system_state | 
 | 44 |     log Many   "CurrentSystemState="   ${currentSystemState}    | 
 | 45 |     log Many   "ExpectedSystemState="  ${expectedSystemState}    | 
 | 46 |     log Many   "NextSystemState="      ${nextSystemState} | 
 | 47 |     Run Keyword If   '${currentSystemState}' != '${expectedSystemState}' and '${expectedSystemState}' == 'HOST_POWERED_ON'      powerOnHost | 
 | 48 |     Run Keyword If   '${currentSystemState}' != '${expectedSystemState}' and '${expectedSystemState}' == 'HOST_POWERED_OFF'     powerOffHost | 
 | 49 |     log to console   "Doing power cycle" | 
 | 50 |     PDU Power Cycle | 
 | 51 |     Wait For Host To Ping   ${OPENBMC_HOST} | 
 | 52 |     log to console   "Host is pingable now" | 
 | 53 |     Sleep   100sec | 
 | 54 |     ${afterPduSystemState}=      Read Attribute    /org/openbmc/settings/host0    system_state | 
 | 55 |     Should be equal   ${afterPduSystemState}    ${nextSystemState} | 
 | 56 |  | 
 | 57 | powerOffHost | 
 | 58 |     log to console    "Powering off the host" | 
 | 59 |     @{arglist}=   Create List     | 
 | 60 |     ${args}=     Create Dictionary   data=@{arglist} | 
 | 61 |     ${resp}=   Call Method    /org/openbmc/control/chassis0/    powerOff    data=${args} | 
 | 62 |     should be equal as strings      ${resp.status_code}     ${HTTP_OK} | 
 | 63 |     ${json} =   to json         ${resp.content} | 
 | 64 |     should be equal as strings      ${json['status']}      ok | 
 | 65 |     sleep  30sec | 
 | 66 |     ${currentSystemState}=      Read Attribute    /org/openbmc/settings/host0    system_state | 
 | 67 |     Should be equal   ${currentSystemState}     HOST_POWERED_OFF | 
 | 68 |  | 
 | 69 | powerOnHost | 
 | 70 |     log to console    "Powering on the host" | 
 | 71 |     @{arglist}=   Create List    | 
 | 72 |     ${args}=     Create Dictionary    data=@{arglist} | 
 | 73 |     ${resp}=   Call Method    /org/openbmc/control/chassis0/    powerOn    data=${args} | 
 | 74 |     should be equal as strings      ${resp.status_code}     ${HTTP_OK} | 
 | 75 |     ${json} =   to json         ${resp.content} | 
 | 76 |     should be equal as strings      ${json['status']}      ok | 
 | 77 |     sleep   30sec | 
 | 78 |     ${currentSystemState}=      Read Attribute    /org/openbmc/settings/host0    system_state | 
 | 79 |     Should be equal   ${currentSystemState}     HOST_POWERED_ON | 
 | 80 |  | 
 | 81 |  | 
 | 82 |  |