blob: 00ea393d15018ead738a05f6a99aa752e5d21511 [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
George Keishing0bd59f12016-12-14 10:39:21 -060015... - Prune archived journal logs
George Keishingdc5aa58e92016-09-27 01:35:11 -050016... - Prepare for Update
George Keishingdc5aa58e92016-09-27 01:35:11 -050017... - Wait for BMC to come online clean
George Keishing1b150202016-09-29 08:51:58 -050018... - Wait for BMC_READY state
George Keishing5e870cd2016-08-24 10:05:47 -050019... - Apply preserve BMC Network setting
20... - SCP image to BMC
21... - Activate the flash image
22... - Warm Reset BMC to activate code
23... - Wait for BMC to come online time out 30 minutes
24... - Version check post update
25
26Resource code_update_utils.robot
George Keishing8db0e1b2016-10-20 13:46:54 -050027Resource ../../lib/boot/boot_resource_master.robot
George Keishing43a021f2017-01-30 11:10:13 -060028Resource ../../lib/state_manager.robot
George Keishing80dd5af2017-02-08 07:01:25 -060029Resource ../../lib/utils.robot
George Keishing5e870cd2016-08-24 10:05:47 -050030
31*** Variables ***
32
George Keishing80dd5af2017-02-08 07:01:25 -060033${FILE_PATH} ${EMPTY}
34
35# There are two reboots issued by code update.
36${MAX_BOOT_COUNT} ${2}
George Keishing5e870cd2016-08-24 10:05:47 -050037
Gunnar Mills7c8923f2016-12-12 21:19:52 -060038*** Test Cases ***
George Keishing5e870cd2016-08-24 10:05:47 -050039
Sivas SRRaca55712016-12-21 04:32:35 -060040Test Basic BMC Performance Before Code Update
41 [Documentation] Check performance of memory, CPU & file system of BMC.
42 [Tags] Test_Basic_BMC_Performance_Before_Code_Update
43 Open Connection And Log In
44 Check BMC CPU Performance
45 Check BMC Mem Performance
46 Check BMC File System Performance
47
48Initiate Code Update BMC
George Keishing43a021f2017-01-30 11:10:13 -060049 [Documentation] BMC code update process initiation
50 [Setup] Set State Interface Version
Sivas SRRaca55712016-12-21 04:32:35 -060051 [Tags] Initiate_Code_Update_BMC
George Keishing5e870cd2016-08-24 10:05:47 -050052
George Keishing43a021f2017-01-30 11:10:13 -060053 Check If File Exist ${FILE_PATH}
George Keishing5e870cd2016-08-24 10:05:47 -050054 System Readiness Test
George Keishing50787fc2016-09-21 03:44:26 -050055 ${status}= Run Keyword and Return Status
56 ... Validate BMC Version before
57
58 Run Keyword if '${status}' == '${False}'
59 ... Pass Execution Same Driver version installed
60
George Keishing80dd5af2017-02-08 07:01:25 -060061 Check Boot Count And Time
George Keishing0bd59f12016-12-14 10:39:21 -060062 Prune Journal Log
George Keishing43a021f2017-01-30 11:10:13 -060063 Power Off Request
Rahul Maheshwari4c1b99f2016-12-19 17:52:04 -060064 Run Keyword And Ignore Error
65 ... Set Policy Setting RESTORE_LAST_STATE
George Keishingdc5aa58e92016-09-27 01:35:11 -050066 Prepare For Update
Rahul Maheshwarid0fd8832016-10-14 03:15:51 -050067
Michael Walsh2b70ead2017-02-20 16:27:11 -060068 Check If BMC is Up 20 min 10 sec
George Keishing80dd5af2017-02-08 07:01:25 -060069 Check Boot Count And Time
George Keishing5e870cd2016-08-24 10:05:47 -050070
George Keishing43a021f2017-01-30 11:10:13 -060071 Wait For BMC Ready
George Keishing1b150202016-09-29 08:51:58 -050072
George Keishing2582bee2016-11-17 21:41:49 -060073 # TODO: openbmc/openbmc#815
74 Sleep 1 min
75
George Keishing5e870cd2016-08-24 10:05:47 -050076 Preserve BMC Network Setting
77 SCP Tar Image File to BMC ${FILE_PATH}
78
79 Activate BMC flash image
80
George Keishingb3700812016-08-31 03:03:30 -050081 Run Keyword And Ignore Error Trigger Warm Reset
George Keishingf68c9eb2016-12-01 08:09:58 -060082 # Warm reset adds 3 seconds delay before forcing reboot
83 # To minimize race conditions, we wait for 7 seconds
84 Sleep 7s
George Keishing5e870cd2016-08-24 10:05:47 -050085 ${session_active}= Check If warmReset is Initiated
86 Run Keyword If '${session_active}' == '${True}'
87 ... Trigger Warm Reset via Reboot
88
George Keishingc4d3dc02016-09-19 03:45:55 -050089 Check If BMC is Up 30 min 10 sec
George Keishing80dd5af2017-02-08 07:01:25 -060090 Check Boot Count And Time
George Keishing5e870cd2016-08-24 10:05:47 -050091 Sleep 1 min
92 Validate BMC Version
George Keishing43a021f2017-01-30 11:10:13 -060093
94 # Now that the code update is completed, make sure we use the correct
95 # interface while checking for BMC ready state.
96 Set State Interface Version
97 Wait For BMC Ready
George Keishing80dd5af2017-02-08 07:01:25 -060098 Check Boot Count And Time
99 Run Keyword If ${BOOT_COUNT} == ${1}
100 ... Log Boot Time not Updated by Kernel!!! level=WARN
Sivas SRRea85d1f2016-11-13 22:44:28 -0600101
Sivas SRRaca55712016-12-21 04:32:35 -0600102
103Test Basic BMC Performance At Ready State
104 [Documentation] Check performance of memory, CPU & file system of BMC.
105 [Tags] Test_Basic_BMC_Performance_At_Ready_State
George Keishing128643a2016-12-15 11:36:46 -0600106 Open Connection And Log In
Sivas SRRea85d1f2016-11-13 22:44:28 -0600107 Check BMC CPU Performance
108 Check BMC Mem Performance
Sivas SRRaca55712016-12-21 04:32:35 -0600109 Check BMC File System Performance
110
George Keishing80dd5af2017-02-08 07:01:25 -0600111*** Keywords ***
112
113Check Boot Count And Time
114 [Documentation] Check for unexpected reboots.
115 Set BMC Reset Reference Time
116 Log To Console \n Boot Count: ${BOOT_COUNT}
117 Log To Console \n Boot Time: ${BOOT_TIME}
118 Run Keyword If ${BOOT_COUNT} > ${MAX_BOOT_COUNT}
119 ... Log Phantom Reboot!!! Unexpected reboot detected level=WARN
120