blob: bc1f0fb85cb883fe1cb9811f4c50bb39c794dc7f [file] [log] [blame]
*** Settings ***
Documentation This suite test various boot types with boot source.
Resource ../../lib/resource.robot
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/common_utils.robot
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/ipmi_client.robot
Test Setup Test Setup Execution
Test Teardown Test Teardown Execution
Suite Teardown Suite Teardown Execution
*** Variables ***
# Maps for correlating redfish data values to IPMI data values.
# The redfish values are obtained with Redfish.Get or Redfish.Get Properties.
# The corresponding IPMI values are obtained with the "chassis bootparam get
# 5" IPMI command.
# This dictionary maps the redfish 'BootSourceOverrideEnabled' value to the
# corresponding IPMI output value.
&{redfish_ipmi_enabled_map} Once=Options apply to only next boot
... Continuous=Options apply to all future boots
... Disabled=Options apply to all future boots
# This dictionary maps the redfish 'BootSourceOverrideTarget' value to the
# corresponding IPMI output value.
&{redfish_ipmi_target_map} Hdd=Force Boot from default Hard-Drive
... Pxe=Force PXE
... Diags=Force Boot from default Hard-Drive, request Safe-Mode
... Cd=Force Boot from CD/DVD
... BiosSetup=Force Boot into BIOS Setup
... None=No override
*** Test Cases ***
Verify BMC Redfish Boot Types With BootSource As Once
[Documentation] Verify BMC Redfish Boot Types With BootSource As Once.
[Tags] Verify_BMC_Redfish_Boot_Types_With_BootSource_As_Once
[Template] Set And Verify BootSource And BootType
#BootSourceEnableType BootTargetType
Once Hdd
Once Pxe
Once Diags
Once Cd
Once BiosSetup
Verify BMC Redfish Boot Types With BootSource As Continuous
[Documentation] Verify BMC Redfish Boot Types With BootSource As Continuous.
[Tags] Verify_BMC_Redfish_Boot_Types_With_BootSource_As_Continuous
[Template] Set And Verify BootSource And BootType
#BootSourceEnable BootTargetType
Continuous Hdd
Continuous Pxe
Continuous Diags
Continuous Cd
Continuous BiosSetup
*** Keywords ***
Set And Verify BootSource And BootType
[Documentation] Set And Verify BootSource And BootType.
[Arguments] ${override_enabled} ${override_target}
# Description of argument(s):
# override_enabled Boot source enable type.
# ('Once', 'Continuous', 'Disabled').
# override_target Boot target type.
# ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None').
# Example:
# "Boot": {
# "BootSourceOverrideEnabled": "Disabled",
# "BootSourceOverrideMode": "Legacy",
# "BootSourceOverrideTarget": "None",
# "BootSourceOverrideTarget@Redfish.AllowableValues": [
# "None",
# "Pxe",
# "Hdd",
# "Cd",
# "Diags",
# "BiosSetup"]}
# The values set using Redfish are verified via IPMI using the command:
# chassis bootparam get 5
# Option 5 returns the boot parameters.
#
# Sample output:
# Boot parameter version: 1
# Boot parameter 5 is valid/unlocked
# Boot parameter data: c000000000
# Boot Flags :
# - Boot Flag Valid
# - Options apply to all future boots
# - BIOS PC Compatible (legacy) boot
# - Boot Device Selector : No override
# - Console Redirection control : System Default
# - BIOS verbosity : Console redirection occurs per BIOS configuration
# setting (default)
# - BIOS Mux Control Override : BIOS uses recommended setting of the mux at
# the end of POST
${data}= Create Dictionary BootSourceOverrideEnabled=${override_enabled}
... BootSourceOverrideTarget=${override_target}
${payload}= Create Dictionary Boot=${data}
Redfish.Patch /redfish/v1/Systems/system body=&{payload}
${resp}= Redfish.Get /redfish/v1/Systems/system
Should Be Equal As Strings ${resp.dict["Boot"]["BootSourceOverrideEnabled"]}
... ${override_enabled}
Should Be Equal As Strings ${resp.dict["Boot"]["BootSourceOverrideTarget"]}
... ${override_target}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} ${redfish_ipmi_enabled_map['${override_enabled}']}
Should Contain ${output} ${redfish_ipmi_target_map['${override_target}']}
Suite Teardown Execution
[Documentation] Do the post suite teardown.
Redfish.Login
Set And Verify BootSource And BootType Disabled None
Redfish.Logout
Test Setup Execution
[Documentation] Do test case setup tasks.
Redfish.Login
Test Teardown Execution
[Documentation] Do the post test teardown.
FFDC On Test Case Fail
Redfish.Logout