blob: 92ceeb72169bd7059a2156ba8e5f4dc02f817349 [file] [log] [blame]
George Keishing5e870cd2016-08-24 10:05:47 -05001*** Settings ***
2Documentation Trigger code update to a target BMC.
3... Execution Method :
4... python -m robot -v OPENBMC_HOST:<hostname>
5... -v FILE_PATH:<path/*all.tar> update_bmc.robot
6...
7... Code update method BMC using REST
8... Update work flow sequence:
9... - User input BMC File existence check
10... - Ping Test and REST authentication
George Keishing8db0e1b2016-10-20 13:46:54 -050011... - Set Host Power host setting Policy to RESTORE_LAST_STATE
12... On reboot this policy would ensure the BMC comes
13... online and stays at HOST_POWERED_OFF state.
George Keishingdc5aa58e92016-09-27 01:35:11 -050014... - Issue poweroff
15... - Prepare for Update
George Keishingdc5aa58e92016-09-27 01:35:11 -050016... - Wait for BMC to come online clean
George Keishing1b150202016-09-29 08:51:58 -050017... - Wait for BMC_READY state
George Keishing5e870cd2016-08-24 10:05:47 -050018... - Apply preserve BMC Network setting
19... - SCP image to BMC
20... - Activate the flash image
21... - Warm Reset BMC to activate code
22... - Wait for BMC to come online time out 30 minutes
23... - Version check post update
24
25Resource code_update_utils.robot
George Keishing8db0e1b2016-10-20 13:46:54 -050026Resource ../../lib/boot/boot_resource_master.robot
George Keishing5e870cd2016-08-24 10:05:47 -050027
28*** Variables ***
29
30${FILE_PATH} ${EMPTY}
31
32*** Test cases ***
33
34Initiate Code update BMC
35 [Documentation] BMC code update process initiation
36
37 Check If File Exist ${FILE_PATH}
38 System Readiness Test
George Keishing50787fc2016-09-21 03:44:26 -050039 ${status}= Run Keyword and Return Status
40 ... Validate BMC Version before
41
42 Run Keyword if '${status}' == '${False}'
43 ... Pass Execution Same Driver version installed
44
George Keishingdc5aa58e92016-09-27 01:35:11 -050045 Initiate Power Off
George Keishing8db0e1b2016-10-20 13:46:54 -050046 Set Policy Setting RESTORE_LAST_STATE
George Keishingdc5aa58e92016-09-27 01:35:11 -050047 Prepare For Update
Rahul Maheshwarid0fd8832016-10-14 03:15:51 -050048
49 # Wait time is increased temporary to 10 mins due
50 # to openbmc/openbmc#673
51 Check If BMC is Up 10 min 10 sec
George Keishing5e870cd2016-08-24 10:05:47 -050052
George Keishing8db0e1b2016-10-20 13:46:54 -050053 @{states}= Create List BMC_READY HOST_POWERED_OFF
George Keishing1b150202016-09-29 08:51:58 -050054 Wait Until Keyword Succeeds
George Keishing8db0e1b2016-10-20 13:46:54 -050055 ... 10 min 10 sec Verify BMC State ${states}
George Keishing1b150202016-09-29 08:51:58 -050056
George Keishing5e870cd2016-08-24 10:05:47 -050057 Preserve BMC Network Setting
58 SCP Tar Image File to BMC ${FILE_PATH}
59
60 Activate BMC flash image
61
George Keishingb3700812016-08-31 03:03:30 -050062 Run Keyword And Ignore Error Trigger Warm Reset
George Keishingf68c9eb2016-12-01 08:09:58 -060063 # Warm reset adds 3 seconds delay before forcing reboot
64 # To minimize race conditions, we wait for 7 seconds
65 Sleep 7s
George Keishing5e870cd2016-08-24 10:05:47 -050066 ${session_active}= Check If warmReset is Initiated
67 Run Keyword If '${session_active}' == '${True}'
68 ... Trigger Warm Reset via Reboot
69
George Keishingc4d3dc02016-09-19 03:45:55 -050070 Check If BMC is Up 30 min 10 sec
George Keishing5e870cd2016-08-24 10:05:47 -050071 Sleep 1 min
72 Validate BMC Version