blob: 997c2abfe5e7dd7b2824a27ba26f48ba37fda924 [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
George Keishing78ea2dc2016-11-18 04:33:45 -060014Resource ../lib/utils.robot
George Keishing34d4b8d2016-12-07 08:35:29 -060015Resource ../lib/pdu/pdu.robot
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -060016Resource ../lib/state_manager.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
Sunil M89fb0f52017-05-26 05:25:33 -050033 ... 8. Verify and Update MAC address.
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 Keishing59fa0482017-03-02 10:01:09 -060038 Wait For Host To Ping ${OPENBMC_HOST} 2 mins
39 Run Keyword And Ignore Error
40 ... Open Connection And Log In host=${OPENBMC_HOST}
George Keishing78ea2dc2016-11-18 04:33:45 -060041
George Keishing59fa0482017-03-02 10:01:09 -060042 Wait Until Keyword Succeeds
43 ... 1 min 30 sec Initialize OpenBMC
George Keishing78ea2dc2016-11-18 04:33:45 -060044
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -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 Maheshwari9bd3abc2017-02-07 00:51:30 -060048 ${host_off_status}= Run Keyword And Return Status Is Host Off
49 Run Keyword If '${host_off_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
Sunil M89fb0f52017-05-26 05:25:33 -050055 Run Keyword If '${MAC_ADDRESS}' != '${EMPTY}'
56 ... Check And Reset MAC
57
George Keishing78ea2dc2016-11-18 04:33:45 -060058
59*** Keywords ***
60
61Reboot and Wait for BMC Online
62 [Documentation] Reboot BMC and wait for it to come online
63 ... and boot to standby
64
65 Trigger Warm Reset via Reboot
66 Wait Until Keyword Succeeds
67 ... 5 min 10 sec BMC Online Test
68
69 Wait For BMC Standby
70
71
72BMC Online Test
73 [Documentation] BMC ping, SSH, REST connection Test
74
Gunnar Mills597ffa02016-12-06 11:26:53 -060075 ${l_status}= Run Keyword and Return Status
George Keishing78ea2dc2016-11-18 04:33:45 -060076 ... Verify Ping and REST Authentication
77 Run Keyword If '${l_status}' == '${False}'
78 ... Fail msg=System not in ideal state to continue [ERROR]
79
80
81Wait For BMC Standby
82 [Documentation] Wait Until BMC standby post BMC reboot
83
84 @{states}= Create List BMC_READY HOST_POWERED_OFF
85 Wait Until Keyword Succeeds
86 ... 10 min 10 sec Verify BMC State ${states}
87
88
George Keishing65a198e2017-02-06 12:40:06 -060089Get BMC State and Expect Standby
90 [Documentation] Get BMC state and should be at standby
91
92 @{states}= Create List BMC_READY HOST_POWERED_OFF
93 ${bmc_state}= Get BMC State Deprecated
94 Should Contain ${states} ${bmc_state}
95
96
George Keishing78ea2dc2016-11-18 04:33:45 -060097Update Policy Setting
98 [Documentation] Update the given restore policy
Gunnar Mills38032802016-12-12 13:43:40 -060099 [Arguments] ${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600100
Gunnar Mills597ffa02016-12-06 11:26:53 -0600101 ${valueDict}= create dictionary data=${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600102 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
103 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
104 Should Be Equal ${currentPolicy} ${policy}
105
George Keishingd5123f72016-12-07 09:54:51 -0600106
107Trigger Warm Reset via Reboot
108 [Documentation] Execute reboot command on the remote BMC and
109 ... returns immediately. This keyword "Start Command"
110 ... returns nothing and does not wait for the command
111 ... execution to be finished.
112 Open Connection And Log In
113
114 Start Command /sbin/reboot
George Keishing34d4b8d2016-12-07 08:35:29 -0600115
116
117Powercycle System Via PDU
118 [Documentation] AC cycle the system via PDU
119
120 Validate Parameters
121 PDU Power Cycle
122 Check If BMC is Up 5 min 10 sec
123
124
125Validate Parameters
126 Should Not Be Empty ${PDU_IP}
127 Should Not Be Empty ${PDU_TYPE}
128 Should Not Be Empty ${PDU_SLOT_NO}
129 Should Not Be Empty ${PDU_USERNAME}
130 Should Not Be Empty ${PDU_PASSWORD}