blob: e6d90c48436aa287c9b16e60f38965430fd4d463 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
George Keishing6b59f1d2016-10-12 04:14:53 -05002Documentation 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
Chris Austenb29d2e82016-06-07 12:25:35 -05006
7Resource ../lib/rest_client.robot
8Resource ../lib/pdu/pdu.robot
9Resource ../lib/utils.robot
George Keishingd55a4be2016-08-26 03:28:17 -050010Resource ../lib/openbmc_ffdc.robot
George Keishing6b59f1d2016-10-12 04:14:53 -050011Resource ../lib/boot/boot_resource_master.robot
Chris Austenb29d2e82016-06-07 12:25:35 -050012
13
14Library SSHLibrary
15
Gunnar Millseac1af22016-11-14 15:30:09 -060016Test Teardown FFDC On Test Case Fail
causten147f5752016-08-11 16:24:45 -050017Force Tags chassisboot bmcreboot
Chris Austenb29d2e82016-06-07 12:25:35 -050018
George Keishing6b59f1d2016-10-12 04:14:53 -050019*** Variables ***
20${HOST_SETTING} /org/openbmc/settings/host0
Chris Austenb29d2e82016-06-07 12:25:35 -050021
George Keishing6b59f1d2016-10-12 04:14:53 -050022*** Test Cases ***
George Keishingd277f832016-10-07 12:04:50 -050023
George Keishing6b59f1d2016-10-12 04:14:53 -050024Set the power restore policy
25 #Policy Expected System State Next System State
George Keishingd277f832016-10-07 12:04:50 -050026
George Keishing6b59f1d2016-10-12 04:14:53 -050027 LEAVE_OFF HOST_POWERED_OFF HOST_POWERED_OFF
28 LEAVE_OFF HOST_BOOTED HOST_POWERED_OFF
29 ALWAYS_POWER_ON HOST_POWERED_OFF HOST_BOOTED
30 ALWAYS_POWER_ON HOST_BOOTED HOST_BOOTED
31 RESTORE_LAST_STATE HOST_BOOTED HOST_BOOTED
32 RESTORE_LAST_STATE HOST_POWERED_OFF HOST_POWERED_OFF
Chris Austenb29d2e82016-06-07 12:25:35 -050033
George Keishing6b59f1d2016-10-12 04:14:53 -050034 [Documentation] Test to validate restore policy attribute functionality.
35 ... Policy:
36 ... System policy to restore on power cycle
37 ... Expected System State:
38 ... State where system should be before running the
39 ... test case
40 ... Next System State:
41 ... After power cycle, system should reach this
42 ... specific state
43
44 [Template] Set Restore Policy
Chris Austenb29d2e82016-06-07 12:25:35 -050045
46***keywords***
George Keishing6b59f1d2016-10-12 04:14:53 -050047
48Set Restore Policy
49 [arguments] ${policy} ${expectedState} ${nextState}
50
51 Set Policy Setting ${policy}
52
53 ${currentState}=
54 ... Read Attribute ${HOST_SETTING} system_state
55
56 Log Current System State= ${currentState}
57 Log Expected System State= ${expectedState}
58 Log Next System State= ${nextState}
59
60 Run Keyword If
61 ... '${currentState}' != '${expectedState}'
62 ... Set Initial Test State ${expectedState}
63
64 Log "Doing power cycle"
Chris Austenb29d2e82016-06-07 12:25:35 -050065 PDU Power Cycle
George Keishingd277f832016-10-07 12:04:50 -050066 Check If BMC is Up 5 min 10 sec
George Keishing6b59f1d2016-10-12 04:14:53 -050067 Log "BMC is Online now"
Chris Austenb29d2e82016-06-07 12:25:35 -050068
George Keishing6b59f1d2016-10-12 04:14:53 -050069 Wait Until Keyword Succeeds
70 ... 5 min 10 sec System State ${nextState}
Chris Austenb29d2e82016-06-07 12:25:35 -050071
72
George Keishing6b59f1d2016-10-12 04:14:53 -050073Set Policy Setting
74 [Documentation] Set the given test policy
75 [arguments] ${policy}
76
77 ${valueDict} = create dictionary data=${policy}
78 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
79 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
80 Should Be Equal ${currentPolicy} ${policy}
81
82
83Set Initial Test State
84 [Documentation] Poweron if ON expected, Poweroff if OFF expected
85 ... to initial state of the test.
86 [arguments] ${expectedState}
87
88 Run Keyword If
89 ... '${expectedState}' == 'HOST_BOOTED'
90 ... BMC Power On
91
92 Run Keyword If
93 ... '${expectedState}' == 'HOST_POWERED_OFF'
94 ... BMC Power Off
95
96
97System State
98 [arguments] ${nextState}
99 ${afterPduSystemState}=
100 ... Read Attribute ${HOST_SETTING} system_state
101 Should be equal ${afterPduSystemState} ${nextState}
Chris Austenb29d2e82016-06-07 12:25:35 -0500102