*** 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