blob: 995ed01dffe8340a4b35a6aa981b825846d809ea [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
Rahul Maheshwari2c725042017-01-29 22:55:28 -060017Resource ../lib/state_manager.robot
George Keishing78ea2dc2016-11-18 04:33:45 -060018
19*** Variables ***
20${HOST_SETTING} /org/openbmc/settings/host0
21
Gunnar Mills7c8923f2016-12-12 21:19:52 -060022*** Test Cases ***
George Keishing78ea2dc2016-11-18 04:33:45 -060023
George Keishing62f94302017-01-31 07:00:52 -060024Get To Stable State
Rahul Maheshwari2c725042017-01-29 22:55:28 -060025 [Documentation] BMC cleanup drive to stable state
26 ... 1. PDU powercycle if specified
27 ... 1. Ping Test
28 ... 2. SSH Connection session Test
29 ... 3. REST Connection session Test
30 ... 4. Reboot BMC if REST Test failed
31 ... 5. Get BMC in Ready state if its not in this state
32 ... 6. Get Host in Off state if its not in this state
33 ... 7. Update restore policy
George Keishing62f94302017-01-31 07:00:52 -060034 [Tags] Get_To_Stable_State
George Keishing78ea2dc2016-11-18 04:33:45 -060035
Rahul Maheshwari2c725042017-01-29 22:55:28 -060036 Run Keyword And Ignore Error Powercycle System Via PDU
George Keishing34d4b8d2016-12-07 08:35:29 -060037
George Keishing78ea2dc2016-11-18 04:33:45 -060038 Wait For Host To Ping ${OPENBMC_HOST} 1 mins
Rahul Maheshwari2c725042017-01-29 22:55:28 -060039 Open Connection And Log In host=${OPENBMC_HOST}
George Keishing78ea2dc2016-11-18 04:33:45 -060040
Rahul Maheshwari2c725042017-01-29 22:55:28 -060041 ${rest_status}= Run Keyword And Return Status Initialize OpenBMC
42 Run Keyword If '${rest_status}' == '${False}'
43 ... Reboot and Wait for BMC Online
George Keishing78ea2dc2016-11-18 04:33:45 -060044
Rahul Maheshwari2c725042017-01-29 22:55:28 -060045 ${ready_status}= Run Keyword And Return Status Is BMC Ready
46 Run Keyword If '${ready_status}' == '${False}' Put BMC State Ready
George Keishing78ea2dc2016-11-18 04:33:45 -060047
Rahul Maheshwari2c725042017-01-29 22:55:28 -060048 ${hostoff_status}= Run Keyword And Return Status Is Host Off
49 Run Keyword If '${hostoff_status}' == '${False}' Initiate Host PowerOff
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 Keishing78ea2dc2016-11-18 04:33:45 -060086Update Policy Setting
87 [Documentation] Update the given restore policy
Gunnar Mills38032802016-12-12 13:43:40 -060088 [Arguments] ${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -060089
Gunnar Mills597ffa02016-12-06 11:26:53 -060090 ${valueDict}= create dictionary data=${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -060091 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
92 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
93 Should Be Equal ${currentPolicy} ${policy}
94
George Keishingd5123f72016-12-07 09:54:51 -060095
96Trigger Warm Reset via Reboot
97 [Documentation] Execute reboot command on the remote BMC and
98 ... returns immediately. This keyword "Start Command"
99 ... returns nothing and does not wait for the command
100 ... execution to be finished.
101 Open Connection And Log In
102
103 Start Command /sbin/reboot
George Keishing34d4b8d2016-12-07 08:35:29 -0600104
105
106Powercycle System Via PDU
107 [Documentation] AC cycle the system via PDU
108
109 Validate Parameters
110 PDU Power Cycle
111 Check If BMC is Up 5 min 10 sec
112
113
114Validate Parameters
115 Should Not Be Empty ${PDU_IP}
116 Should Not Be Empty ${PDU_TYPE}
117 Should Not Be Empty ${PDU_SLOT_NO}
118 Should Not Be Empty ${PDU_USERNAME}
119 Should Not Be Empty ${PDU_PASSWORD}