blob: 3a4e278019c6e199fe57a8de47a0c1b3dea99c13 [file] [log] [blame]
George Keishingcba6d422019-07-09 15:01:59 -05001*** Settings ***
2Documentation Firmware image (BMC and Host) upload test using TFTP protocol.
3
4# Test Parameters:
5# TFTP_SERVER The TFTP server host name or IP address.
6# IMAGE_FILE_NAME The BMC or Host image file name.
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/boot_utils.robot
15Resource ../../lib/bmc_redfish_resource.robot
16Resource ../../lib/openbmc_ffdc.robot
17Resource ../../lib/code_update_utils.robot
18Library ../../lib/code_update_utils.py
19Library ../../lib/gen_robot_valid.py
20
21Suite Setup Suite Setup Execution
22Suite Teardown Redfish.Logout
23Test Setup Printn
24Test Teardown FFDC On Test Case Fail
25
26Force Tags tftp_update
27
28*** Test Cases ***
29
30TFTP Download Install With ApplyTime OnReset Policy
31 [Documentation] Download image to BMC using TFTP with OnReset policy and verify installation.
32 [Tags] TFTP_Download_Install_With_ApplyTime_OnReset_Policy
33
34 # Set and verify the firmware OnReset policy.
35 Redfish.Patch ${REDFISH_BASE_URI}UpdateService body={'ApplyTime' : 'OnReset'}
36 ${apply_time}= Read Attribute ${SOFTWARE_VERSION_URI}apply_time RequestedApplyTime
37 Rvalid Value apply_time valid_values=['xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes.OnReset']
38 Rprint Vars apply_time
39
40 # Download image from TFTP server to BMC.
41 Redfish.Post /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
42 ... body={"TransferProtocol" : "TFTP", "ImageURI" : "${TFTP_SERVER}/${IMAGE_FILE_NAME}"}
43
44 # Wait for image tar file to download complete.
45 ${image_id}= Wait Until Keyword Succeeds 60 sec 10 sec Get Latest Image ID
46 Rprint Vars image_id
47
48 # Let the image get extracted and it should not fail.
49 Sleep 5s
50 Check Image Update Progress State match_state='Disabled', 'Updating' image_id=${image_id}
51
52 # Get image version currently installation in progress.
53 ${install_version}= Get Firmware Image Version image_id=${image_id}
54 Rprint Vars install_version
55
56 Check Image Update Progress State match_state='Updating' image_id=${image_id}
57
58 # Wait for the image to install complete.
59 Wait Until Keyword Succeeds 5 min 15 sec
60 ... Check Image Update Progress State match_state='Enabled' image_id=${image_id}
61
62 Redfish OBMC Reboot (off)
63
64 # Verify the image is installed and functional.
65 ${cmd}= Set Variable grep ^VERSION_ID= /etc/os-release | cut -f 2 -d '=' | sed 's/"//g'
66 ${functional_version} ${stderr} ${rc}= BMC Execute Command ${cmd}
67 Rvalid Value functional_version valid_values=['${install_version}']
68 Rprint Vars functional_version
69
70
71*** Keywords ***
72
73Suite Setup Execution
74 [Documentation] Do the suite setup.
75
76 Redfish.Login
77 Rvalid Value TFTP_SERVER
78 Rvalid Value IMAGE_FILE_NAME