blob: d87ba60588567e13638574683013dfd1efa0311e [file] [log] [blame]
*** Settings ***
Documentation Update firmware on a target BMC via Redifsh.
# Test Parameters:
# IMAGE_FILE_PATH The path to the BMC image file.
#
# Firmware update states:
# Enabled Image is installed and either functional or active.
# Disabled Image installation failed or ready for activation.
# Updating Image installation currently in progress.
Resource ../../lib/resource.robot
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/common_utils.robot
Resource ../../lib/code_update_utils.robot
Resource ../../lib/dump_utils.robot
Resource ../../lib/logging_utils.robot
Resource ../../lib/redfish_code_update_utils.robot
Library ../../lib/gen_robot_valid.py
Library ../../lib/tftp_update_utils.py
Suite Setup Suite Setup Execution
Suite Teardown Redfish.Logout
Test Setup Printn
Test Teardown FFDC On Test Case Fail
Force Tags BMC_Code_Update
*** Variables ***
${immediate} Immediate
${onreset} OnReset
*** Test Cases ***
Redfish Code Update With ApplyTime OnReset
[Documentation] Update the firmaware image with ApplyTime of OnReset.
[Tags] Redfish_Code_Update_With_ApplyTime_OnReset
[Template] Redfish Update Firmware
# policy
${onreset}
Redfish Code Update With ApplyTime Immediate
[Documentation] Update the firmaware image with ApplyTime of Immediate.
[Tags] Redfish_Code_Update_With_ApplyTime_Immediate
[Template] Redfish Update Firmware
# policy
${immediate}
*** Keywords ***
Suite Setup Execution
[Documentation] Do the suite setup.
Redfish.Login
# Delete BMC dump and Error logs
Delete All BMC Dump
Redfish Purge Event Log
# Checking for file existence.
OperatingSystem.File Should Exist ${IMAGE_FILE_PATH}
Redfish Update Firmware
[Documentation] Code update with ApplyTime and verify installation.
[Arguments] ${apply_time}
# Description of argument(s):
# policy ApplyTime allowed values (e.g. "OnReset", "Immediate").
${state}= Get Pre Reboot State
Rprint Vars state
Set ApplyTime policy=${apply_time}
Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${IMAGE_FILE_PATH}
${image_id}= Get Latest Image ID
Rprint Vars image_id
Check Image Update Progress State
... match_state='Disabled', 'Updating' image_id=${image_id}
# Wait a few seconds to check if the update progress started.
Sleep 5s
Check Image Update Progress State
... match_state='Updating' image_id=${image_id}
Wait Until Keyword Succeeds 8 min 20 sec
... Check Image Update Progress State
... match_state='Enabled' image_id=${image_id}
Reboot BMC And Verify BMC Image
... ${apply_time} start_boot_seconds=${state['epoch_seconds']}
Reboot BMC And Verify BMC Image
[Documentation] Reboot or wait for BMC standby post reboot and
... verify installed image is functional.
[Arguments] ${apply_time} ${start_boot_seconds}
# Description of argument(s):
# policy ApplyTime allowed values (e.g. "OnReset", "Immediate").
# start_boot_seconds See 'Wait For Reboot' for details.
Run Keyword if 'OnReset' == '${apply_time}'
... Run Keywords
... Redfish OBMC Reboot (off) AND
... Redfish.Login AND
... Redfish Verify BMC Version ${IMAGE_FILE_PATH}
... ELSE
... Run Keywords
... Wait For Reboot start_boot_seconds=${start_boot_seconds} AND
... Redfish.Login AND
... Redfish Verify BMC Version ${IMAGE_FILE_PATH}