1*** Settings *** 2Documentation Redfish BMC/Host signed and unsigned code update 3... over BMC functional signed image. 4 5# Test Parameters: 6# IMAGE_FILE_PATH The path to the BMC/Host image file. 7# 8# Firmware update states: 9# Enabled Image is installed and either functional or active. 10# Disabled Image installation failed or ready for activation. 11# Updating Image installation currently in progress. 12 13Resource ../../lib/resource.robot 14Resource ../../lib/bmc_redfish_resource.robot 15Resource ../../lib/openbmc_ffdc.robot 16Resource ../../lib/common_utils.robot 17Resource ../../lib/code_update_utils.robot 18Resource ../../lib/redfish_code_update_utils.robot 19Resource ../../extended/code_update/update_bmc.robot 20Library ../../lib/gen_robot_valid.py 21Library ../../lib/var_funcs.py 22 23Suite Setup Suite Setup Execution 24Suite Teardown Redfish.Logout 25Test Setup Printn 26Test Teardown FFDC On Test Case Fail 27 28*** Test Cases *** 29 30Redfish Signed Code Update 31 [Documentation] BMC/Host signed code update over functional signed 32 ... image, when FieldMode is set to true value. 33 [Tags] Redfish_Signed_Code_Update 34 [Template] Redfish Signed Firmware Update 35 36 # image_file_path 37 ${IMAGE_FILE_PATH} 38 39 40Redfish Fail Unsigned Code Update 41 [Documentation] BMC/Host unsigned code update over functional signed 42 ... image, when Field Mode is set to true to value. 43 [Tags] Redfish_Fail_Unsigned_Code_Update 44 [Template] Redfish Unsigned Firmware Update 45 46 # image_file_path 47 ${IMAGE_FILE_PATH} 48 49 50REST Failure When Field Mode Set To Disable 51 [Documentation] Verify error while disabling field mode from enabled mode. 52 [Tags] REST_Failure_When_Field_Mode_Set_To_Disable 53 54 ${args}= Create Dictionary data=${0} 55 ${resp}= OpenBMC Post Request ${SOFTWARE_VERSION_URI}attr/FieldModeEnabled data=${args} 56 Should Be Equal As Strings ${resp.status_code} ${HTTP_METHOD_NOT_ALLOWED} 57 58 59*** Keywords *** 60 61Suite Setup Execution 62 [Documentation] Do the suite setup. 63 64 Valid File Path IMAGE_FILE_PATH 65 Enable Field Mode And Verify Unmount 66 Redfish.Login 67 Delete All BMC Dump 68 Redfish Purge Event Log 69 70 71Redfish Signed Firmware Update 72 [Documentation] Update the BMC/Host firmware via redfish interface. 73 [Arguments] ${image_file_path} 74 75 # Description of argument(s): 76 # IMAGE_FILE_PATH The path to the image file. 77 78 Field Mode Should Be Enabled 79 ${image_version}= Get Version Tar ${image_file_path} 80 ${state}= Get Pre Reboot State 81 Rprint Vars state 82 Redfish Upload Image And Check Progress State Immediate 83 ${image_info}= Get Software Inventory State By Version ${image_version} 84 Run Keyword If 'BMC update' == '${image_info["image_type"]}' 85 ... Reboot BMC And Verify BMC Image Immediate start_boot_seconds=${state['epoch_seconds']} 86 ... ELSE 87 ... Poweron Host And Verify Host Image 88 89 90Redfish Unsigned Firmware Update 91 [Documentation] Update the BMC/Host firmware via redfish interface. 92 [Arguments] ${image_file_path} 93 94 # Description of argument(s): 95 # IMAGE_FILE_PATH The path to the image file. 96 97 Field Mode Should Be Enabled 98 Set ApplyTime policy=Immediate 99 Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${image_file_path} 100 ${image_id}= Get Latest Image ID 101 Rprint Vars image_id 102 Sleep 5s 103 Wait Until Keyword Succeeds 8 min 20 sec 104 ... Check Image Update Progress State 105 ... match_state='Disabled', 'Updating', 'Disabled' image_id=${image_id} 106 Delete Software Object 107 ... /xyz/openbmc_project/software/${image_id} 108 109