blob: d53f669e5d4c6adb5c97459312a730aee3693f87 [file] [log] [blame]
George Keishing78ea2dc2016-11-18 04:33:45 -06001*** Settings ***
2Documentation This module will take whatever action is necessary
3... to bring the BMC to a stable, standby state. For our
4... purposes, a stable state is defined as:
5... - BMC is communicating
6... (pinging, sshing and REST commands working)
7... - Power state is 0 (off)
Rahul Maheshwari2c725042017-01-29 22:55:28 -06008... - BMC state is "Ready"
9... - HOST state is "Off"
George Keishing78ea2dc2016-11-18 04:33:45 -060010... - Boot policy is "RESTORE_LAST_STATE"
George Keishing34d4b8d2016-12-07 08:35:29 -060011... Power cycle system via PDU if specified
George Keishing0bd59f12016-12-14 10:39:21 -060012... Prune archived journal logs
George Keishing78ea2dc2016-11-18 04:33:45 -060013
14Resource ../lib/boot/boot_resource_master.robot
15Resource ../lib/utils.robot
George Keishing34d4b8d2016-12-07 08:35:29 -060016Resource ../lib/pdu/pdu.robot
George Keishing78ea2dc2016-11-18 04:33:45 -060017
18*** Variables ***
19${HOST_SETTING} /org/openbmc/settings/host0
20
Gunnar Mills7c8923f2016-12-12 21:19:52 -060021*** Test Cases ***
George Keishing78ea2dc2016-11-18 04:33:45 -060022
George Keishing62f94302017-01-31 07:00:52 -060023Get To Stable State
Rahul Maheshwari2c725042017-01-29 22:55:28 -060024 [Documentation] BMC cleanup drive to stable state
25 ... 1. PDU powercycle if specified
26 ... 1. Ping Test
27 ... 2. SSH Connection session Test
28 ... 3. REST Connection session Test
29 ... 4. Reboot BMC if REST Test failed
30 ... 5. Get BMC in Ready state if its not in this state
31 ... 6. Get Host in Off state if its not in this state
32 ... 7. Update restore policy
George Keishing62f94302017-01-31 07:00:52 -060033 [Tags] Get_To_Stable_State
George Keishing78ea2dc2016-11-18 04:33:45 -060034
Rahul Maheshwari2c725042017-01-29 22:55:28 -060035 Run Keyword And Ignore Error Powercycle System Via PDU
George Keishing34d4b8d2016-12-07 08:35:29 -060036
George Keishing78ea2dc2016-11-18 04:33:45 -060037 Wait For Host To Ping ${OPENBMC_HOST} 1 mins
Rahul Maheshwari2c725042017-01-29 22:55:28 -060038 Open Connection And Log In host=${OPENBMC_HOST}
George Keishing78ea2dc2016-11-18 04:33:45 -060039
George Keishing65a198e2017-02-06 12:40:06 -060040 ${l_rest}= Run Keyword And Return Status
41 ... Initialize OpenBMC
42 Run Keyword If '${l_rest}' == '${False}'
43 ... Reboot and Wait for BMC Online
George Keishing78ea2dc2016-11-18 04:33:45 -060044
George Keishing65a198e2017-02-06 12:40:06 -060045 ${l_ready}= Run Keyword And Return Status
46 ... Get BMC State and Expect Standby
George Keishing78ea2dc2016-11-18 04:33:45 -060047
George Keishing65a198e2017-02-06 12:40:06 -060048 Run Keyword If '${l_ready}' == '${False}'
49 ... Initiate Power Off
George Keishing78ea2dc2016-11-18 04:33:45 -060050
George Keishing0bd59f12016-12-14 10:39:21 -060051 Prune Journal Log
52
Rahul Maheshwari2c725042017-01-29 22:55:28 -060053 Run Keyword And Ignore Error Update Policy Setting RESTORE_LAST_STATE
George Keishing78ea2dc2016-11-18 04:33:45 -060054
55
56*** Keywords ***
57
58Reboot and Wait for BMC Online
59 [Documentation] Reboot BMC and wait for it to come online
60 ... and boot to standby
61
62 Trigger Warm Reset via Reboot
63 Wait Until Keyword Succeeds
64 ... 5 min 10 sec BMC Online Test
65
66 Wait For BMC Standby
67
68
69BMC Online Test
70 [Documentation] BMC ping, SSH, REST connection Test
71
Gunnar Mills597ffa02016-12-06 11:26:53 -060072 ${l_status}= Run Keyword and Return Status
George Keishing78ea2dc2016-11-18 04:33:45 -060073 ... Verify Ping and REST Authentication
74 Run Keyword If '${l_status}' == '${False}'
75 ... Fail msg=System not in ideal state to continue [ERROR]
76
77
78Wait For BMC Standby
79 [Documentation] Wait Until BMC standby post BMC reboot
80
81 @{states}= Create List BMC_READY HOST_POWERED_OFF
82 Wait Until Keyword Succeeds
83 ... 10 min 10 sec Verify BMC State ${states}
84
85
George Keishing65a198e2017-02-06 12:40:06 -060086Get BMC State and Expect Standby
87 [Documentation] Get BMC state and should be at standby
88
89 @{states}= Create List BMC_READY HOST_POWERED_OFF
90 ${bmc_state}= Get BMC State Deprecated
91 Should Contain ${states} ${bmc_state}
92
93
George Keishing78ea2dc2016-11-18 04:33:45 -060094Update Policy Setting
95 [Documentation] Update the given restore policy
Gunnar Mills38032802016-12-12 13:43:40 -060096 [Arguments] ${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -060097
Gunnar Mills597ffa02016-12-06 11:26:53 -060098 ${valueDict}= create dictionary data=${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -060099 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
100 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
101 Should Be Equal ${currentPolicy} ${policy}
102
George Keishingd5123f72016-12-07 09:54:51 -0600103
104Trigger Warm Reset via Reboot
105 [Documentation] Execute reboot command on the remote BMC and
106 ... returns immediately. This keyword "Start Command"
107 ... returns nothing and does not wait for the command
108 ... execution to be finished.
109 Open Connection And Log In
110
111 Start Command /sbin/reboot
George Keishing34d4b8d2016-12-07 08:35:29 -0600112
113
114Powercycle System Via PDU
115 [Documentation] AC cycle the system via PDU
116
117 Validate Parameters
118 PDU Power Cycle
119 Check If BMC is Up 5 min 10 sec
120
121
122Validate Parameters
123 Should Not Be Empty ${PDU_IP}
124 Should Not Be Empty ${PDU_TYPE}
125 Should Not Be Empty ${PDU_SLOT_NO}
126 Should Not Be Empty ${PDU_USERNAME}
127 Should Not Be Empty ${PDU_PASSWORD}