blob: 7dd0f732ebc0c3976f913e9b2e019ca4679fd29e [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 Singhc8526a22022-12-21 10:26:19 -060022Resource ../../lib/external_intf/management_console_utils.robot
Sushil Singh44bfc202023-02-08 09:53:36 -060023Resource ../../lib/bmc_network_utils.robot
Sushil Singh1ee3c932023-02-24 01:58:09 -060024Resource ../../lib/certificate_utils.robot
Sushil Singhcdebdd52019-08-14 15:29:24 -050025Library ../../lib/gen_robot_valid.py
26Library ../../lib/tftp_update_utils.py
Sushil Singhf7674a52019-11-19 00:36:15 -060027Library ../../lib/gen_robot_keyword.py
Sushil Singhcdebdd52019-08-14 15:29:24 -050028
29Suite Setup Suite Setup Execution
30Suite Teardown Redfish.Logout
31Test Setup Printn
32Test Teardown FFDC On Test Case Fail
33
George Keishing9899a902023-09-07 20:57:53 +053034Force Tags Redfish_Bmc_Code_Update
Sushil Singhcdebdd52019-08-14 15:29:24 -050035
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060036*** Variables ***
37
Sushil Singh759f1482023-02-28 01:29:52 -060038@{ADMIN} admin_user TestPwd123
39&{USERS} Administrator=${ADMIN}
40${LOOP_COUNT} ${2}
41@{HOSTNAME} bmc_system01 bmc_system02 bmc_system03 bmc_system04 bmc_system05
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -060042
Sushil Singhcdebdd52019-08-14 15:29:24 -050043*** Test Cases ***
44
45Redfish Code Update With ApplyTime OnReset
George Keishing16b3c7b2021-01-28 09:23:37 -060046 [Documentation] Update the firmware image with ApplyTime of OnReset.
Sushil Singhcdebdd52019-08-14 15:29:24 -050047 [Tags] Redfish_Code_Update_With_ApplyTime_OnReset
48 [Template] Redfish Update Firmware
49
50 # policy
51 OnReset
52
53
54Redfish Code Update With ApplyTime Immediate
George Keishing16b3c7b2021-01-28 09:23:37 -060055 [Documentation] Update the firmware image with ApplyTime of Immediate.
Sushil Singhcdebdd52019-08-14 15:29:24 -050056 [Tags] Redfish_Code_Update_With_ApplyTime_Immediate
57 [Template] Redfish Update Firmware
58
59 # policy
60 Immediate
61
62
Sushil Singhc915f5e2022-12-21 08:18:31 -060063Redfish Code Update Same Firmware Multiple Times
64 [Documentation] Multiple times update the firmware image for update service.
65 [Tags] Redfish_Code_Update_Same_Firmware_Multiple_Times
66
67 ${temp_update_loop_count}= Evaluate ${LOOP_COUNT} + 1
68
69 FOR ${count} IN RANGE 1 ${temp_update_loop_count}
Sushil Singha83bba02023-01-18 08:43:45 -060070 Print Timen ***************************************
Sushil Singhc915f5e2022-12-21 08:18:31 -060071 Print Timen * The Current Loop Count is ${count} of ${LOOP_COUNT} *
Sushil Singha83bba02023-01-18 08:43:45 -060072 Print Timen ***************************************
Sushil Singhc915f5e2022-12-21 08:18:31 -060073
74 Redfish Update Firmware apply_time=OnReset
75 END
76
77
78
Sushil Singhffbfedf2019-10-17 15:58:25 -050079Redfish Code Update With Multiple Firmware
George Keishing16b3c7b2021-01-28 09:23:37 -060080 [Documentation] Update the firmware image with ApplyTime of Immediate.
Sushil Singhffbfedf2019-10-17 15:58:25 -050081 [Tags] Redfish_Code_Update_With_Multiple_Firmware
82 [Template] Redfish Multiple Upload Image And Check Progress State
83
84 # policy image_file_path alternate_image_file_path
Sushil Singh62098652023-08-31 09:14:50 -050085 OnReset ${IMAGE_FILE_PATH} ${ALTERNATE_IMAGE_FILE_PATH}
Sushil Singhffbfedf2019-10-17 15:58:25 -050086
87
Sushil Singhc8526a22022-12-21 10:26:19 -060088Post BMC Reset Perform Redfish Code Update
89 [Documentation] Test to reset BMC at standby and then perform BMC firmware update and
90 ... ensure there is not error or dump logs post update.
91 [Tags] Post_BMC_Reset_Perform_Redfish_Code_Update
92
93 Redfish Delete All BMC Dumps
94 Redfish Purge Event Log
95
96 Redfish OBMC Reboot (off)
97
98 Redfish Update Firmware apply_time=OnReset
99
100 Event Log Should Not Exist
101 Redfish BMC Dump Should Not Exist
102
103 Redfish Power Off
104
105
106Post BMC Reset Perform Image Switched To Backup Multiple Times
George Keishing0d930e92023-01-25 13:19:37 -0600107 [Documentation] Test to reset BMC at standby and then perform switch
108 ... to backup image multiple times.
Sushil Singhc8526a22022-12-21 10:26:19 -0600109 ... Then ensure no event and dump logs exist.
110 [Tags] Post_BMC_Reset_Perform_Image_Switched_To_Backup_Multiple_Times
111
112 Redfish Delete All BMC Dumps
113 Redfish Purge Event Log
114
115 Redfish OBMC Reboot (off)
116
117 ${temp_update_loop_count}= Evaluate ${LOOP_COUNT} + 1
118
119 FOR ${count} IN RANGE 1 ${temp_update_loop_count}
120 ${state}= Get Pre Reboot State
121
122 # change to backup image and reset the BMC.
123 Switch Backup Firmware Image To Functional
124
125 Wait For Reboot start_boot_seconds=${state['epoch_seconds']}
126 END
127
128 Event Log Should Not Exist
129 Redfish BMC Dump Should Not Exist
130
131
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -0600132Verify If The Modified Admin Credential Is Valid Post Image Switched To Backup
Sushil Singh5166ebd2021-05-31 01:24:16 -0500133 [Documentation] Verify updated admin credential remain same post switch to back up image.
George Keishing5236ec52022-01-31 12:07:58 -0600134 [Tags] Verify_If_The_Modified_Admin_Credential_Is_Valid_Post_Image_Switched_To_Backup
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -0600135 [Setup] Create Users With Different Roles users=${USERS} force=${True}
136 [Teardown] Run Keywords Redfish.Login AND Delete BMC Users Via Redfish users=${USERS}
137
138 ${post_code_update_actions}= Get Post Boot Action
139 ${state}= Get Pre Reboot State
140 Expire And Update New Password Via Redfish ${ADMIN[0]} ${ADMIN[1]} 0penBmc123
141
142 Redfish.Login
143 # change to backup image and reset the BMC.
144 Switch Backup Firmware Image To Functional
145 Wait For Reboot start_boot_seconds=${state['epoch_seconds']}
146
147 # verify modified admin password on backup image.
148 Redfish.Login admin_user 0penBmc123
149 Redfish.Logout
150
Sushil Singh5166ebd2021-05-31 01:24:16 -0500151
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -0600152Verify If The Modified Admin Credential Is Valid Post Update
Sushil Singh5166ebd2021-05-31 01:24:16 -0500153 [Documentation] Verify updated admin credential remain same post code update image.
George Keishing5236ec52022-01-31 12:07:58 -0600154 [Tags] Verify_If_The_Modified_Admin_Credential_Is_Valid_Post_Update
Anves Kumar rayankula7ed1ae82021-02-03 04:19:46 -0600155 [Setup] Create Users With Different Roles users=${USERS} force=${True}
156 [Teardown] Run Keywords Redfish.Login AND Delete BMC Users Via Redfish users=${USERS}
157
158 Expire And Update New Password Via Redfish ${ADMIN[0]} ${ADMIN[1]} 0penBmc123
159
160 Redfish.Login
161 # Flash latest firmware using redfish.
162 Redfish Update Firmware OnReset
163
164 # verify modified admin credentails on latest image.
165 Redfish.Login admin_user 0penBmc123
166 Redfish.Logout
167
Sushil Singh44bfc202023-02-08 09:53:36 -0600168
Sushil Singh10385712024-01-30 06:47:03 -0600169Verify Redfish Code Update Completion In Spite Of Changing Hostname
170 [Documentation] Ensure firmware update is successful when interrupted operation performed like
171 ... change the hostname.
172 [Tags] Verify_Redfish_Code_Update_Completion_In_Spite_Of_Changing_Hostname
Sushil Singh44bfc202023-02-08 09:53:36 -0600173 [Template] Verify Redfish Code Update With Different Interrupted Operation
Sushil Singh86895062024-01-16 06:29:07 -0600174 [Teardown] Code Update Interrupted Operation Teardown
Sushil Singh44bfc202023-02-08 09:53:36 -0600175
Sushil Singh1ee3c932023-02-24 01:58:09 -0600176 # operation count
177 host_name 1
Sushil Singh10385712024-01-30 06:47:03 -0600178
179
180Verify Redfish Code Update Completion In Spite Of Performing Kernel Panic
181 [Documentation] Ensure firmware update is successful when interrupted operation performed like
182 ... firmware update fail when kernel panic.
183 [Tags] Verify_Redfish_Code_Update_Completion_In_Spite_Of_Performing_Kernel_Panic
184 [Template] Verify Redfish Code Update With Different Interrupted Operation
185 [Teardown] Code Update Interrupted Operation Teardown
186
187 # operation count
Sushil Singh1ee3c932023-02-24 01:58:09 -0600188 kernel_panic 1
Sushil Singh10385712024-01-30 06:47:03 -0600189
190
191Verify Redfish Code Update Completion In Spite Of Updating HTTPS Certificate
192 [Documentation] Ensure firmware update is successful when interrupted operation performed like
193 ... updating https certificate.
194 [Tags] Verify_Redfish_Code_Update_Completion_In_Spite_Of_Updating_HTTPS_Certificate
195 [Template] Verify Redfish Code Update With Different Interrupted Operation
196 [Teardown] Code Update Interrupted Operation Teardown
197
198 # operation count
Sushil Singh1ee3c932023-02-24 01:58:09 -0600199 https_certificate 1
Sushil Singh44bfc202023-02-08 09:53:36 -0600200
Sushil Singhcdebdd52019-08-14 15:29:24 -0500201*** Keywords ***
202
203Suite Setup Execution
204 [Documentation] Do the suite setup.
205
Sushil Singhcdebdd52019-08-14 15:29:24 -0500206 Valid File Path IMAGE_FILE_PATH
207 Redfish.Login
Sushil Singhc8526a22022-12-21 10:26:19 -0600208
Tim Lee4aff2d02021-06-08 13:26:25 +0800209 Redfish Delete All BMC Dumps
Sushil Singhcdebdd52019-08-14 15:29:24 -0500210 Redfish Purge Event Log
211
Sushil Singhc8526a22022-12-21 10:26:19 -0600212 Redfish Power Off stack_mode=skip
213
Sushil Singh759f1482023-02-28 01:29:52 -0600214
Sushil Singh86895062024-01-16 06:29:07 -0600215Code Update Interrupted Operation Teardown
216 [Documentation] Code update interrupted operation teardown.
217
218 ${task_inv_dict}= Get Task State from File
219
220 ${redfish_update_uri}= Get Redfish Update Service URI
221
222 IF '${TEST STATUS}' == 'FAIL'
223
224 ${task_inv}= Check Task With Match TargetUri ${redfish_update_uri}
225 Rprint Vars task_inv
226
227 Wait Until Keyword Succeeds 2 min 10 sec
228 ... Verify Task Progress State ${task_inv} ${task_inv_dict['TaskStarting']}
229
230 Wait Until Keyword Succeeds 5 min 10 sec
231 ... Verify Task Progress State ${task_inv} ${task_inv_dict['TaskCompleted']}
232
233 Redfish BMC Reset Operation
234 Is BMC Standby
235
236 END
237
238
Sushil Singh514a8402023-08-30 06:20:41 -0500239Get Redfish Update Service URI
240 [Documentation] Get Redfish firmware update URI.
Sushil Singh759f1482023-02-28 01:29:52 -0600241
Sushil Singh514a8402023-08-30 06:20:41 -0500242 ${update_url}= Redfish.Get Attribute ${REDFISH_BASE_URI}UpdateService HttpPushUri
Sushil Singh759f1482023-02-28 01:29:52 -0600243
Sushil Singh514a8402023-08-30 06:20:41 -0500244 Log To Console Firmware update URI: ${update_url}
245
246 [Return] ${update_url}
Sushil Singh759f1482023-02-28 01:29:52 -0600247
Sushil Singhcdebdd52019-08-14 15:29:24 -0500248
Sushil Singhffbfedf2019-10-17 15:58:25 -0500249Redfish Multiple Upload Image And Check Progress State
250 [Documentation] Update multiple BMC firmware via redfish interface and check status.
251 [Arguments] ${apply_time} ${IMAGE_FILE_PATH} ${ALTERNATE_IMAGE_FILE_PATH}
252
253 # Description of argument(s):
254 # apply_time ApplyTime allowed values (e.g. "OnReset", "Immediate").
255 # IMAGE_FILE_PATH The path to BMC image file.
256 # ALTERNATE_IMAGE_FILE_PATH The path to alternate BMC image file.
257
Sushil Singh62098652023-08-31 09:14:50 -0500258
259 ${task_inv_dict}= Get Task State from File
260
Sushil Singhb13fc362020-02-06 03:40:56 -0600261 ${post_code_update_actions}= Get Post Boot Action
Sushil Singh62098652023-08-31 09:14:50 -0500262
Sushil Singhffbfedf2019-10-17 15:58:25 -0500263 Valid File Path ALTERNATE_IMAGE_FILE_PATH
Sushil Singh62098652023-08-31 09:14:50 -0500264
Sushil Singhffbfedf2019-10-17 15:58:25 -0500265 ${state}= Get Pre Reboot State
266 Rprint Vars state
267
268 Set ApplyTime policy=${apply_time}
Sushil Singh514a8402023-08-30 06:20:41 -0500269
270 # URI : /redfish/v1/UpdateService
271 # "HttpPushUri": "/redfish/v1/UpdateService/update",
272
273 ${redfish_update_uri}= Get Redfish Update Service URI
Sushil Singhffbfedf2019-10-17 15:58:25 -0500274
Sushil Singh62098652023-08-31 09:14:50 -0500275 ${file_bin_data1}= OperatingSystem.Get Binary File ${IMAGE_FILE_PATH}
276 ${file_bin_data2}= OperatingSystem.Get Binary File ${ALTERNATE_IMAGE_FILE_PATH}
Sushil Singhffbfedf2019-10-17 15:58:25 -0500277
Sushil Singh62098652023-08-31 09:14:50 -0500278 Log To Console Uploading first image.
279 ${resp1}= Upload Image To BMC ${redfish_update_uri} timeout=${600} data=${file_bin_data1}
Sushil Singhffbfedf2019-10-17 15:58:25 -0500280
Sushil Singh62098652023-08-31 09:14:50 -0500281 Log To Console Uploading second image.
282 ${resp2}= Upload Image To BMC ${redfish_update_uri} timeout=${600} data=${file_bin_data2}
Sushil Singhffbfedf2019-10-17 15:58:25 -0500283
Sushil Singh62098652023-08-31 09:14:50 -0500284 ${task_info2}= evaluate json.loads('''${resp2.content}''') json
Sushil Singhffbfedf2019-10-17 15:58:25 -0500285
Sushil Singh62098652023-08-31 09:14:50 -0500286 Sleep 3s
287
288 ${task_inv2}= Get Task Inventory ${task_info2}
George Keishing365dd462023-10-12 18:56:00 +0530289 Log ${task_inv2}
Sushil Singh62098652023-08-31 09:14:50 -0500290
291 Wait Until Keyword Succeeds 5 min 10 sec
292 ... Verify Task Progress State ${task_inv2} ${task_inv_dict['TaskException']}
293
294 ${task_info1}= evaluate json.loads('''${resp1.content}''') json
295 Log ${task_info1}
296
297 ${task_inv1}= Get Task Inventory ${task_info1}
298 Log ${task_inv1}
299
300 Wait Until Keyword Succeeds 5 min 10 sec
301 ... Verify Task Progress State ${task_inv1} ${task_inv_dict['TaskCompleted']}
302
Sushil Singhb13fc362020-02-06 03:40:56 -0600303 Run Key ${post_code_update_actions['BMC image']['${apply_time}']}
304 Redfish.Login
305 Redfish Verify BMC Version ${IMAGE_FILE_PATH}
Sushil Singha83bba02023-01-18 08:43:45 -0600306
307
Sushil Singh44bfc202023-02-08 09:53:36 -0600308Run Configure BMC Hostname In Loop
309 [Documentation] Update hostname in loop.
310 [Arguments] ${count}
311
312 # Description of argument(s):
313 # count Loop count.
314
315 FOR ${index} IN RANGE ${count}
Sushil Singh514a8402023-08-30 06:20:41 -0500316 Configure Hostname  hostname=${HOSTNAME}[${index}] status_code=[${HTTP_OK}]
Sushil Singh44bfc202023-02-08 09:53:36 -0600317 END
318
319
Sushil Singh1ee3c932023-02-24 01:58:09 -0600320Redfish Update Certificate Upload In Loop
321 [Documentation] Upload HTTPS server certificate via Redfish and verify using OpenSSL.
322 [Arguments] ${count}
323
324 # Description of argument(s):
325 # count Loop count.
326
327 FOR ${index} IN RANGE ${count}
328 ${resp}= Run Keyword And Return Status Redfish.Get ${REDFISH_HTTPS_CERTIFICATE_URI}/1 valid_status_codes=[${HTTP_OK}]
329 Should Be Equal As Strings ${resp} ${True}
330
331 ${cert_file_path}= Generate Certificate File Via Openssl Valid Certificate Valid Privatekey
332 ${bytes}= OperatingSystem.Get Binary File ${cert_file_path}
333 ${file_data}= Decode Bytes To String ${bytes} UTF-8
334
335 ${certificate_dict}= Create Dictionary
336 ... @odata.id=${REDFISH_HTTPS_CERTIFICATE_URI}/1
337 ${payload}= Create Dictionary CertificateString=${file_data}
338 ... CertificateType=PEM CertificateUri=${certificate_dict}
339
340 ${resp}= Redfish.Post /redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate
341 ... body=${payload}
342
343 Verify Certificate Visible Via OpenSSL ${cert_file_path}
344 END
345
346
Sushil Singh44bfc202023-02-08 09:53:36 -0600347Run Operation On BMC
348 [Documentation] Run operation on BMC.
349 [Arguments] ${operation} ${count}
350
351 # Description of argument(s):
George Keishingee0103d2024-01-30 12:35:37 +0530352 # operation Supports different variables.
Sushil Singh86895062024-01-16 06:29:07 -0600353 # If host_name then change hostname,
354 # If kernel_panic then perform kernel panic,
355 # If https_certificate then change the https certificate.
Sushil Singh44bfc202023-02-08 09:53:36 -0600356 # count Loop count.
357
Sushil Singh86895062024-01-16 06:29:07 -0600358 # Below directory is required by keyword.
359 # Redfish Update Certificate Upload In Loop
360
361 IF '${operation}' == 'https_certificate'
362 Run rm -r certificate_dir
363 Run mkdir certificate_dir
364 END
365
Sushil Singh1ee3c932023-02-24 01:58:09 -0600366 Run Keyword If '${operation}' == 'host_name'
367 ... Run Configure BMC Hostname In Loop count=${count}
368 ... ELSE IF '${operation}' == 'kernel_panic'
369 ... Run Keywords Kernel Panic BMC Reset Operation AND
370 ... Is BMC Unpingable
371 ... ELSE IF '${operation}' == 'https_certificate'
372 ... Redfish Update Certificate Upload In Loop count=${count}
373 ... ELSE
374 ... Fail msg=Operation not handled.
Sushil Singh44bfc202023-02-08 09:53:36 -0600375
376
377Get Active Firmware Image
378 [Documentation] Return get active firmware image.
379
ganesanb4d430282023-04-27 14:33:23 +0000380 ${active_image}= Redfish.Get Attribute /redfish/v1/Managers/${MANAGER_ID} Links
Sushil Singh44bfc202023-02-08 09:53:36 -0600381 Rprint Vars active_image
382
383 [Return] ${active_image}
384
385
Sushil Singh1ee3c932023-02-24 01:58:09 -0600386Get New Image ID
387 [Documentation] Return the ID of the most recently extracted image.
388
389 ${image_id}= Get Image Id Updating
390
391 [Return] ${image_id}
392
393
Sushil Singh44bfc202023-02-08 09:53:36 -0600394Verify Redfish Code Update With Different Interrupted Operation
George Keishing4611b812023-02-16 09:44:33 -0600395 [Documentation] Verify code update is successful when other operation
Sushil Singh1ee3c932023-02-24 01:58:09 -0600396 ... getting executed i.e. change the hostname, updating http certificate
397 ... and code update will fail for kernel panic.
Sushil Singh44bfc202023-02-08 09:53:36 -0600398 [Arguments] ${operation} ${count}
399
400 # Description of argument(s):
401 # operation host_name to change Hostname, kernel_panic to perform kernel panic.
402 # count Number of times loop will get executed.
403
404 ${before_update_activeswimage}= Get Active Firmware Image
405
406 ${post_code_update_actions}= Get Post Boot Action
407
408 Set ApplyTime policy=OnReset
409
410 ${task_inv_dict}= Get Task State from File
411
412 ${file_bin_data}= OperatingSystem.Get Binary File ${image_file_path}
413
414 Log To Console Start uploading image to BMC.
Sushil Singh514a8402023-08-30 06:20:41 -0500415
416 # URI : /redfish/v1/UpdateService
417 # "HttpPushUri": "/redfish/v1/UpdateService/update",
418
419 ${redfish_update_uri}= Get Redfish Update Service URI
420 Upload Image To BMC ${redfish_update_uri} timeout=${600} data=${file_bin_data}
Sushil Singh44bfc202023-02-08 09:53:36 -0600421 Log To Console Completed image upload to BMC.
422
Sushil Singh86895062024-01-16 06:29:07 -0600423 Sleep 8
Sushil Singh1ee3c932023-02-24 01:58:09 -0600424
425 ${image_id}= Get New Image ID
426 Rprint Vars image_id
427
Sushil Singh514a8402023-08-30 06:20:41 -0500428 ${task_inv}= Check Task With Match TargetUri ${redfish_update_uri}
Sushil Singh44bfc202023-02-08 09:53:36 -0600429 Rprint Vars task_inv
430
Sushil Singh514a8402023-08-30 06:20:41 -0500431 Wait Until Keyword Succeeds 2 min 10 sec
Sushil Singh44bfc202023-02-08 09:53:36 -0600432 ... Verify Task Progress State ${task_inv} ${task_inv_dict['TaskStarting']}
433
434 Run Operation On BMC ${operation} ${count}
435
Sushil Singh1ee3c932023-02-24 01:58:09 -0600436 IF '${operation}' == 'kernel_panic'
437 Wait Until Keyword Succeeds 10 min 10 sec Is BMC Standby
438 ELSE IF '${operation}' == 'host_name'
439 Wait Until Keyword Succeeds 5 min 10 sec
440 ... Verify Task Progress State ${task_inv} ${task_inv_dict['TaskCompleted']}
441 Run Key ${post_code_update_actions['BMC image']['OnReset']}
442 Redfish Verify BMC Version ${IMAGE_FILE_PATH}
443 ELSE IF '${operation}' == 'https_certificate'
444 Check Image Update Progress State
445 ... match_state='Updating' image_id=${image_id}
446 Wait Until Keyword Succeeds 8 min 20 sec
447 ... Check Image Update Progress State
448 ... match_state='Enabled' image_id=${image_id}
449 Run Key ${post_code_update_actions['BMC image']['OnReset']}
450 Redfish Verify BMC Version ${IMAGE_FILE_PATH}
451 ELSE
452 Fail msg=Operation not handled.
453 END
Sushil Singh44bfc202023-02-08 09:53:36 -0600454
455 ${after_update_activeswimage}= Get Active Firmware Image
456
457 ${status}= Run Keyword And Return Status Should Be Equal As Strings
458 ... ${before_update_activeswimage['ActiveSoftwareImage']['@odata.id']}
459 ... ${after_update_activeswimage['ActiveSoftwareImage']['@odata.id']}
460
461 Run Keyword If '${operation}' == 'kernel_panic'
462 ... Should Be True ${status}
463 ... ELSE
464 ... Should Not Be True ${status}
465
466 Verify Get ApplyTime OnReset
467