blob: 04ec18996db3f5cef9f5d5711506eaeb02fd8086 [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
Michael Walsh1b0ceb22017-05-31 16:03:01 -050017Resource ../lib/bmc_network_utils.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
Sunil M89fb0f52017-05-26 05:25:33 -050034 ... 8. Verify and Update MAC address.
George Keishing62f94302017-01-31 07:00:52 -060035 [Tags] Get_To_Stable_State
George Keishing78ea2dc2016-11-18 04:33:45 -060036
Rahul Maheshwari2c725042017-01-29 22:55:28 -060037 Run Keyword And Ignore Error Powercycle System Via PDU
George Keishing34d4b8d2016-12-07 08:35:29 -060038
George Keishing59fa0482017-03-02 10:01:09 -060039 Wait For Host To Ping ${OPENBMC_HOST} 2 mins
40 Run Keyword And Ignore Error
41 ... Open Connection And Log In host=${OPENBMC_HOST}
George Keishing78ea2dc2016-11-18 04:33:45 -060042
George Keishing59fa0482017-03-02 10:01:09 -060043 Wait Until Keyword Succeeds
44 ... 1 min 30 sec Initialize OpenBMC
George Keishing78ea2dc2016-11-18 04:33:45 -060045
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -060046 ${ready_status}= Run Keyword And Return Status Is BMC Ready
47 Run Keyword If '${ready_status}' == '${False}' Put BMC State Ready
George Keishing78ea2dc2016-11-18 04:33:45 -060048
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -060049 ${host_off_status}= Run Keyword And Return Status Is Host Off
50 Run Keyword If '${host_off_status}' == '${False}' Initiate Host PowerOff
George Keishing78ea2dc2016-11-18 04:33:45 -060051
George Keishing0bd59f12016-12-14 10:39:21 -060052 Prune Journal Log
53
Rahul Maheshwari2c725042017-01-29 22:55:28 -060054 Run Keyword And Ignore Error Update Policy Setting RESTORE_LAST_STATE
George Keishing78ea2dc2016-11-18 04:33:45 -060055
Sunil M89fb0f52017-05-26 05:25:33 -050056 Run Keyword If '${MAC_ADDRESS}' != '${EMPTY}'
57 ... Check And Reset MAC
58
George Keishing78ea2dc2016-11-18 04:33:45 -060059
60*** Keywords ***
61
62Reboot and Wait for BMC Online
63 [Documentation] Reboot BMC and wait for it to come online
64 ... and boot to standby
65
66 Trigger Warm Reset via Reboot
67 Wait Until Keyword Succeeds
68 ... 5 min 10 sec BMC Online Test
69
70 Wait For BMC Standby
71
72
73BMC Online Test
74 [Documentation] BMC ping, SSH, REST connection Test
75
Gunnar Mills597ffa02016-12-06 11:26:53 -060076 ${l_status}= Run Keyword and Return Status
George Keishing78ea2dc2016-11-18 04:33:45 -060077 ... Verify Ping and REST Authentication
78 Run Keyword If '${l_status}' == '${False}'
79 ... Fail msg=System not in ideal state to continue [ERROR]
80
81
82Wait For BMC Standby
83 [Documentation] Wait Until BMC standby post BMC reboot
84
85 @{states}= Create List BMC_READY HOST_POWERED_OFF
86 Wait Until Keyword Succeeds
87 ... 10 min 10 sec Verify BMC State ${states}
88
89
George Keishing65a198e2017-02-06 12:40:06 -060090Get BMC State and Expect Standby
91 [Documentation] Get BMC state and should be at standby
92
93 @{states}= Create List BMC_READY HOST_POWERED_OFF
94 ${bmc_state}= Get BMC State Deprecated
95 Should Contain ${states} ${bmc_state}
96
97
George Keishing78ea2dc2016-11-18 04:33:45 -060098Update Policy Setting
99 [Documentation] Update the given restore policy
Gunnar Mills38032802016-12-12 13:43:40 -0600100 [Arguments] ${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600101
Gunnar Mills597ffa02016-12-06 11:26:53 -0600102 ${valueDict}= create dictionary data=${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600103 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
104 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
105 Should Be Equal ${currentPolicy} ${policy}
106
George Keishingd5123f72016-12-07 09:54:51 -0600107
108Trigger Warm Reset via Reboot
109 [Documentation] Execute reboot command on the remote BMC and
110 ... returns immediately. This keyword "Start Command"
111 ... returns nothing and does not wait for the command
112 ... execution to be finished.
113 Open Connection And Log In
114
115 Start Command /sbin/reboot
George Keishing34d4b8d2016-12-07 08:35:29 -0600116
117
118Powercycle System Via PDU
119 [Documentation] AC cycle the system via PDU
120
121 Validate Parameters
122 PDU Power Cycle
123 Check If BMC is Up 5 min 10 sec
124
125
126Validate Parameters
127 Should Not Be Empty ${PDU_IP}
128 Should Not Be Empty ${PDU_TYPE}
129 Should Not Be Empty ${PDU_SLOT_NO}
130 Should Not Be Empty ${PDU_USERNAME}
131 Should Not Be Empty ${PDU_PASSWORD}