blob: 08842514e73a54fca446f9df361177b906bad70d [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
Sunil Mec6fe312017-06-19 04:21:25 -050018Resource ../lib/bmc_cleanup.robot
George Keishing27a1f202017-08-30 22:40:26 -050019Resource ../lib/dump_utils.robot
George Keishing78ea2dc2016-11-18 04:33:45 -060020
21*** Variables ***
22${HOST_SETTING} /org/openbmc/settings/host0
23
Gunnar Mills7c8923f2016-12-12 21:19:52 -060024*** Test Cases ***
George Keishing78ea2dc2016-11-18 04:33:45 -060025
George Keishing62f94302017-01-31 07:00:52 -060026Get To Stable State
Rahul Maheshwari2c725042017-01-29 22:55:28 -060027 [Documentation] BMC cleanup drive to stable state
28 ... 1. PDU powercycle if specified
29 ... 1. Ping Test
30 ... 2. SSH Connection session Test
31 ... 3. REST Connection session Test
32 ... 4. Reboot BMC if REST Test failed
33 ... 5. Get BMC in Ready state if its not in this state
34 ... 6. Get Host in Off state if its not in this state
35 ... 7. Update restore policy
Sunil M89fb0f52017-05-26 05:25:33 -050036 ... 8. Verify and Update MAC address.
George Keishing62f94302017-01-31 07:00:52 -060037 [Tags] Get_To_Stable_State
George Keishing78ea2dc2016-11-18 04:33:45 -060038
Rahul Maheshwari2c725042017-01-29 22:55:28 -060039 Run Keyword And Ignore Error Powercycle System Via PDU
George Keishing34d4b8d2016-12-07 08:35:29 -060040
George Keishing59fa0482017-03-02 10:01:09 -060041 Wait For Host To Ping ${OPENBMC_HOST} 2 mins
42 Run Keyword And Ignore Error
43 ... Open Connection And Log In host=${OPENBMC_HOST}
George Keishing78ea2dc2016-11-18 04:33:45 -060044
George Keishing59fa0482017-03-02 10:01:09 -060045 Wait Until Keyword Succeeds
46 ... 1 min 30 sec Initialize OpenBMC
George Keishing78ea2dc2016-11-18 04:33:45 -060047
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -060048 ${ready_status}= Run Keyword And Return Status Is BMC Ready
49 Run Keyword If '${ready_status}' == '${False}' Put BMC State Ready
George Keishing78ea2dc2016-11-18 04:33:45 -060050
Rahul Maheshwari9bd3abc2017-02-07 00:51:30 -060051 ${host_off_status}= Run Keyword And Return Status Is Host Off
52 Run Keyword If '${host_off_status}' == '${False}' Initiate Host PowerOff
George Keishing78ea2dc2016-11-18 04:33:45 -060053
George Keishing0bd59f12016-12-14 10:39:21 -060054 Prune Journal Log
55
George Keishing2e541792017-08-17 04:32:46 -050056 Run Keyword And Ignore Error Set BMC Power Policy ${RESTORE_LAST_STATE}
George Keishing78ea2dc2016-11-18 04:33:45 -060057
George Keishing6bbce532017-09-21 13:03:55 -050058 # TODO: Enable MAC AES check latter.
59 # Reference : openbmc/openbmc-test-automation#998
60 #Run Keyword If '${MAC_ADDRESS}' != '${EMPTY}'
61 #... Check And Reset MAC
62
63 # TODO: Add new UBI File system cleanup.
64 # Reference : openbmc/openbmc-test-automation#998
65 #${rc}= Execute Command find ${CLEANUP_DIR_PATH}
66 #... return_stdout=False return_rc=True
67 #Run Keyword If '${CLEANUP_DIR_PATH}' != '${EMPTY}' and ${rc} == 0
68 #... Cleanup Dir
Sunil Mec6fe312017-06-19 04:21:25 -050069
George Keishingf1ada732017-08-18 15:10:46 -050070 Delete Error Logs
George Keishing27a1f202017-08-30 22:40:26 -050071 Delete All Dumps
George Keishing78ea2dc2016-11-18 04:33:45 -060072
73*** Keywords ***
74
75Reboot and Wait for BMC Online
76 [Documentation] Reboot BMC and wait for it to come online
77 ... and boot to standby
78
79 Trigger Warm Reset via Reboot
80 Wait Until Keyword Succeeds
81 ... 5 min 10 sec BMC Online Test
82
83 Wait For BMC Standby
84
85
86BMC Online Test
87 [Documentation] BMC ping, SSH, REST connection Test
88
Gunnar Mills597ffa02016-12-06 11:26:53 -060089 ${l_status}= Run Keyword and Return Status
George Keishing78ea2dc2016-11-18 04:33:45 -060090 ... Verify Ping and REST Authentication
91 Run Keyword If '${l_status}' == '${False}'
92 ... Fail msg=System not in ideal state to continue [ERROR]
93
94
95Wait For BMC Standby
96 [Documentation] Wait Until BMC standby post BMC reboot
97
98 @{states}= Create List BMC_READY HOST_POWERED_OFF
99 Wait Until Keyword Succeeds
100 ... 10 min 10 sec Verify BMC State ${states}
101
102
George Keishing65a198e2017-02-06 12:40:06 -0600103Get BMC State and Expect Standby
104 [Documentation] Get BMC state and should be at standby
105
106 @{states}= Create List BMC_READY HOST_POWERED_OFF
107 ${bmc_state}= Get BMC State Deprecated
108 Should Contain ${states} ${bmc_state}
109
110
George Keishing78ea2dc2016-11-18 04:33:45 -0600111Update Policy Setting
112 [Documentation] Update the given restore policy
Gunnar Mills38032802016-12-12 13:43:40 -0600113 [Arguments] ${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600114
Gunnar Mills597ffa02016-12-06 11:26:53 -0600115 ${valueDict}= create dictionary data=${policy}
George Keishing78ea2dc2016-11-18 04:33:45 -0600116 Write Attribute ${HOST_SETTING} power_policy data=${valueDict}
117 ${currentPolicy}= Read Attribute ${HOST_SETTING} power_policy
118 Should Be Equal ${currentPolicy} ${policy}
119
George Keishingd5123f72016-12-07 09:54:51 -0600120
121Trigger Warm Reset via Reboot
122 [Documentation] Execute reboot command on the remote BMC and
123 ... returns immediately. This keyword "Start Command"
124 ... returns nothing and does not wait for the command
125 ... execution to be finished.
126 Open Connection And Log In
127
128 Start Command /sbin/reboot
George Keishing34d4b8d2016-12-07 08:35:29 -0600129
130
131Powercycle System Via PDU
132 [Documentation] AC cycle the system via PDU
133
134 Validate Parameters
135 PDU Power Cycle
136 Check If BMC is Up 5 min 10 sec
137
138
139Validate Parameters
140 Should Not Be Empty ${PDU_IP}
141 Should Not Be Empty ${PDU_TYPE}
142 Should Not Be Empty ${PDU_SLOT_NO}
143 Should Not Be Empty ${PDU_USERNAME}
144 Should Not Be Empty ${PDU_PASSWORD}