blob: b732aa3c63ff7ee48a73a6af19b77ad23a65592c [file] [log] [blame]
Sushil Singhcdebdd52019-08-14 15:29:24 -05001*** Settings ***
2Documentation Update firmware on a target BMC via Redifsh.
3
4# Test Parameters:
5# IMAGE_FILE_PATH The path to the BMC image file.
6#
7# Firmware update states:
8# Enabled Image is installed and either functional or active.
9# Disabled Image installation failed or ready for activation.
10# Updating Image installation currently in progress.
11
12Resource ../../lib/resource.robot
13Resource ../../lib/bmc_redfish_resource.robot
14Resource ../../lib/openbmc_ffdc.robot
15Resource ../../lib/common_utils.robot
16Resource ../../lib/code_update_utils.robot
17Resource ../../lib/dump_utils.robot
18Resource ../../lib/logging_utils.robot
19Resource ../../lib/redfish_code_update_utils.robot
Sushil Singhb13fc362020-02-06 03:40:56 -060020Resource ../../lib/utils.robot
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060021Resource ../../lib/bmc_redfish_utils.robot
Sushil Singhcdebdd52019-08-14 15:29:24 -050022Library ../../lib/gen_robot_valid.py
23Library ../../lib/tftp_update_utils.py
Sushil Singhf7674a52019-11-19 00:36:15 -060024Library ../../lib/gen_robot_keyword.py
Sushil Singhcdebdd52019-08-14 15:29:24 -050025
26Suite Setup Suite Setup Execution
27Suite Teardown Redfish.Logout
28Test Setup Printn
29Test Teardown FFDC On Test Case Fail
30
31Force Tags BMC_Code_Update
32
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060033*** Variables ***
34
35@{ADMIN} admin_user TestPwd123
36&{USERS} Administrator=${ADMIN}
37
Sushil Singhcdebdd52019-08-14 15:29:24 -050038*** Test Cases ***
39
40Redfish Code Update With ApplyTime OnReset
George Keishing16b3c7b2021-01-28 09:23:37 -060041 [Documentation] Update the firmware image with ApplyTime of OnReset.
Sushil Singhcdebdd52019-08-14 15:29:24 -050042 [Tags] Redfish_Code_Update_With_ApplyTime_OnReset
43 [Template] Redfish Update Firmware
44
45 # policy
46 OnReset
47
48
49Redfish Code Update With ApplyTime Immediate
George Keishing16b3c7b2021-01-28 09:23:37 -060050 [Documentation] Update the firmware image with ApplyTime of Immediate.
Sushil Singhcdebdd52019-08-14 15:29:24 -050051 [Tags] Redfish_Code_Update_With_ApplyTime_Immediate
52 [Template] Redfish Update Firmware
53
54 # policy
55 Immediate
56
57
Sushil Singhffbfedf2019-10-17 15:58:25 -050058Redfish Code Update With Multiple Firmware
George Keishing16b3c7b2021-01-28 09:23:37 -060059 [Documentation] Update the firmware image with ApplyTime of Immediate.
Sushil Singhffbfedf2019-10-17 15:58:25 -050060 [Tags] Redfish_Code_Update_With_Multiple_Firmware
61 [Template] Redfish Multiple Upload Image And Check Progress State
62
63 # policy image_file_path alternate_image_file_path
64 Immediate ${IMAGE_FILE_PATH} ${ALTERNATE_IMAGE_FILE_PATH}
65
66
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060067Verify If The Modified Admin Credential Is Valid Post Image Switched To Backup
Sushil Singh5166ebd2021-05-31 01:24:16 -050068 [Documentation] Verify updated admin credential remain same post switch to back up image.
George Keishing0c8100f2022-01-13 00:24:57 -060069 [Tags] Verify_If_The_Modified_Admin_Credentials_Is_Valid_Backup_Image
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060070 [Setup] Create Users With Different Roles users=${USERS} force=${True}
71 [Teardown] Run Keywords Redfish.Login AND Delete BMC Users Via Redfish users=${USERS}
72
73 ${post_code_update_actions}= Get Post Boot Action
74 ${state}= Get Pre Reboot State
75 Expire And Update New Password Via Redfish ${ADMIN[0]} ${ADMIN[1]} 0penBmc123
76
77 Redfish.Login
78 # change to backup image and reset the BMC.
79 Switch Backup Firmware Image To Functional
80 Wait For Reboot start_boot_seconds=${state['epoch_seconds']}
81
82 # verify modified admin password on backup image.
83 Redfish.Login admin_user 0penBmc123
84 Redfish.Logout
85
Sushil Singh5166ebd2021-05-31 01:24:16 -050086
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060087Verify If The Modified Admin Credential Is Valid Post Update
Sushil Singh5166ebd2021-05-31 01:24:16 -050088 [Documentation] Verify updated admin credential remain same post code update image.
George Keishing0c8100f2022-01-13 00:24:57 -060089 [Tags] Verify_If_The_Modified_Admin_Credentials_Is_Valid_Post_Update
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060090 [Setup] Create Users With Different Roles users=${USERS} force=${True}
91 [Teardown] Run Keywords Redfish.Login AND Delete BMC Users Via Redfish users=${USERS}
92
93 Expire And Update New Password Via Redfish ${ADMIN[0]} ${ADMIN[1]} 0penBmc123
94
95 Redfish.Login
96 # Flash latest firmware using redfish.
97 Redfish Update Firmware OnReset
98
99 # verify modified admin credentails on latest image.
100 Redfish.Login admin_user 0penBmc123
101 Redfish.Logout
102
Sushil Singhcdebdd52019-08-14 15:29:24 -0500103*** Keywords ***
104
105Suite Setup Execution
106 [Documentation] Do the suite setup.
107
Sushil Singhcdebdd52019-08-14 15:29:24 -0500108 Valid File Path IMAGE_FILE_PATH
109 Redfish.Login
Tim Lee4aff2d02021-06-08 13:26:25 +0800110 Redfish Delete All BMC Dumps
Sushil Singhcdebdd52019-08-14 15:29:24 -0500111 Redfish Purge Event Log
112
113
114Redfish Update Firmware
115 [Documentation] Update the BMC firmware via redfish interface.
116 [Arguments] ${apply_time}
117
118 # Description of argument(s):
119 # policy ApplyTime allowed values (e.g. "OnReset", "Immediate").
120
Sushil Singhb13fc362020-02-06 03:40:56 -0600121 ${post_code_update_actions}= Get Post Boot Action
Sushil Singhcdebdd52019-08-14 15:29:24 -0500122 ${state}= Get Pre Reboot State
123 Rprint Vars state
Sushil Singh6f86f172019-10-30 11:36:25 -0500124 Set ApplyTime policy=${apply_Time}
125 Redfish Upload Image And Check Progress State
Sushil Singhb13fc362020-02-06 03:40:56 -0600126 Run Key ${post_code_update_actions['BMC image']['${apply_time}']}
Sushil Singhf7674a52019-11-19 00:36:15 -0600127 Redfish.Login
Sushil Singhb13fc362020-02-06 03:40:56 -0600128 Redfish Verify BMC Version ${IMAGE_FILE_PATH}
Sushil Singh811ffae2019-10-23 05:16:22 -0500129 Verify Get ApplyTime ${apply_time}
Sushil Singhcdebdd52019-08-14 15:29:24 -0500130
Sushil Singhffbfedf2019-10-17 15:58:25 -0500131
132Redfish Multiple Upload Image And Check Progress State
133 [Documentation] Update multiple BMC firmware via redfish interface and check status.
134 [Arguments] ${apply_time} ${IMAGE_FILE_PATH} ${ALTERNATE_IMAGE_FILE_PATH}
135
136 # Description of argument(s):
137 # apply_time ApplyTime allowed values (e.g. "OnReset", "Immediate").
138 # IMAGE_FILE_PATH The path to BMC image file.
139 # ALTERNATE_IMAGE_FILE_PATH The path to alternate BMC image file.
140
Sushil Singhb13fc362020-02-06 03:40:56 -0600141 ${post_code_update_actions}= Get Post Boot Action
Sushil Singhffbfedf2019-10-17 15:58:25 -0500142 Valid File Path ALTERNATE_IMAGE_FILE_PATH
143 ${state}= Get Pre Reboot State
144 Rprint Vars state
145
146 Set ApplyTime policy=${apply_time}
147 Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${IMAGE_FILE_PATH}
148
149 ${first_image_id}= Get Latest Image ID
150 Rprint Vars first_image_id
151 Sleep 5s
152 Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${ALTERNATE_IMAGE_FILE_PATH}
153
154 ${second_image_id}= Get Latest Image ID
155 Rprint Vars second_image_id
156
157 Check Image Update Progress State
158 ... match_state='Updating', 'Disabled' image_id=${second_image_id}
159
160 Check Image Update Progress State
161 ... match_state='Updating' image_id=${first_image_id}
162
163 Wait Until Keyword Succeeds 8 min 20 sec
164 ... Check Image Update Progress State
165 ... match_state='Enabled' image_id=${first_image_id}
Sushil Singhb13fc362020-02-06 03:40:56 -0600166 Run Key ${post_code_update_actions['BMC image']['${apply_time}']}
167 Redfish.Login
168 Redfish Verify BMC Version ${IMAGE_FILE_PATH}