1*** Settings *** 2Documentation Update firmware on a target Host via Redifsh. 3 4# Test Parameters: 5# IMAGE_FILE_PATH The path to the Host 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/boot_utils.robot 15Resource ../../lib/openbmc_ffdc.robot 16Resource ../../lib/common_utils.robot 17Resource ../../lib/code_update_utils.robot 18Resource ../../lib/dump_utils.robot 19Resource ../../lib/logging_utils.robot 20Resource ../../lib/redfish_code_update_utils.robot 21Library ../../lib/gen_robot_valid.py 22Library ../../lib/tftp_update_utils.py 23 24Suite Setup Suite Setup Execution 25Suite Teardown Redfish.Logout 26Test Setup Printn 27Test Teardown FFDC On Test Case Fail 28 29Force Tags Host_Code_Update 30 31*** Test Cases *** 32 33Redfish Code Update With ApplyTime OnReset 34 [Documentation] Update the firmaware image with ApplyTime of OnReset. 35 [Tags] Redfish_Code_Update_With_ApplyTime_OnReset 36 [Template] Redfish Update Firmware 37 38 # policy 39 OnReset 40 41 42Redfish Code Update With ApplyTime Immediate 43 [Documentation] Update the firmaware image with ApplyTime of Immediate. 44 [Tags] Redfish_Code_Update_With_ApplyTime_Immediate 45 [Template] Redfish Update Firmware 46 47 # policy 48 Immediate 49 50 51BMC Reboot When PNOR Update Goes On 52 [Documentation] Trigger PNOR update and do BMC reboot. 53 [Tags] BMC_Reboot_When_PNOR_Update_Goes_On 54 55 ${bios_version_before}= Redfish.Get Attribute /redfish/v1/Systems/system/ BiosVersion 56 Redfish Firmware Update And Do BMC Reboot 57 ${bios_version_after}= Redfish.Get Attribute /redfish/v1/Systems/system/ BiosVersion 58 Valid Value bios_version_after ['${bios_version_before}'] 59 60 61*** Keywords *** 62 63Suite Setup Execution 64 [Documentation] Do the suite setup. 65 66 Valid File Path IMAGE_FILE_PATH 67 Redfish.Login 68 Delete All BMC Dump 69 Redfish Purge Event Log 70 Redfish Power On stack_mode=skip 71 72 73Redfish Update Firmware 74 [Documentation] Update the BMC firmware via redfish interface. 75 [Arguments] ${apply_time} 76 77 # Description of argument(s): 78 # policy ApplyTime allowed values (e.g. "OnReset", "Immediate"). 79 80 Redfish.Login 81 Set ApplyTime policy=${apply_Time} 82 Redfish Upload Image And Check Progress State 83 Poweron Host And Verify Host Image ${apply_time} 84 Verify Get ApplyTime ${apply_time} 85 86 87Redfish Firmware Update And Do BMC Reboot 88 [Documentation] Update the firmware via redfish interface and do BMC reboot. 89 90 Set ApplyTime policy="Immediate" 91 Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${IMAGE_FILE_PATH} 92 ${image_id}= Get Latest Image ID 93 Wait Until Keyword Succeeds 1 min 10 sec 94 ... Check Image Update Progress State match_state='Updating' image_id=${image_id} 95 96 # BMC reboot while PNOR update is in progress. 97 Redfish OBMC Reboot (off) 98