blob: 9811532680ad3cfeaa669610798c3cffd00cbe53 [file] [log] [blame]
*** Settings ***
Documentation This testsuite is for testing the Boot Device Functions
Resource ../lib/rest_client.robot
Resource ../lib/ipmi_client.robot
Resource ../lib/openbmc_ffdc.robot
Resource ../lib/utils.robot
Resource ../lib/boot_utils.robot
Suite Setup Test Suite Setup
Test Teardown Post Test Case Execution
*** Variables ***
${stack_mode} skip
*** Test Cases ***
Set The Boot Source As Default Using REST API
[Documentation] Set default boot source via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Default_Using_REST_API
Set Boot Source ${BOOT_SOURCE_DEFAULT}
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_DEFAULT}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} No override
Set The Boot Source As Default Using Ipmitool
[Documentation] Set default boot source via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Default_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x00 0x00 0x00 0x00
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_DEFAULT}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} No override
Set The Boot Source As Network Using REST API
[Documentation] Set boot source as Network via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Network_Using_REST_API
Set Boot Source ${BOOT_SOURCE_NETWORK}
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_NETWORK}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force PXE
Set The Boot Source As Network Using Ipmitool
[Documentation] Set boot source as Network via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Network_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x04 0x00 0x00 0x00
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_NETWORK}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force PXE
Set The Boot Source As Disk Using REST API
[Documentation] Set boot source as Disk via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Disk_Using_REST_API
Set Boot Source ${BOOT_SOURCE_DISK}
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_DISK}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot from default Hard-Drive
Set The Boot Source As Disk Using Ipmitool
[Documentation] Set boot source as Disk via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_Disk_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x08 0x00 0x00 0x00
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_DISK}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot from default Hard-Drive
Set The Boot Mode As Safe Using REST API
[Documentation] Set boot mode as Safe via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Mode_As_Safe_Using_REST_API
Set Boot Mode ${BOOT_MODE_SAFE}
${boot_mode}= Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootMode
Should Be Equal As Strings ${boot_mode} ${BOOT_MODE_SAFE}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Safe-Mode
Set The Boot Mode As Safe Using Ipmitool
[Documentation] Set boot mode as Safe via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Mode_As_Safe_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x0C 0x00 0x00 0x00
${boot_mode}= Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootMode
Should Be Equal As Strings ${boot_mode} ${BOOT_MODE_SAFE}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Safe-Mode
Set The Boot Source As CDROM Using REST API
[Documentation] Set boot source as CDROM via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_CDROM_Using_REST_API
Set Boot Source ${BOOT_SOURCE_CDROM}
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_CDROM}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot from CD/DVD
Set The Boot Source As CDROM Using Ipmitool
[Documentation] Set boot source as CDROM via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Source_As_CDROM_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x14 0x00 0x00 0x00
${boot_source}=
... Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
Should Be Equal As Strings ${boot_source} ${BOOT_SOURCE_CDROM}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot from CD/DVD
Set The Boot Mode As Setup Using REST API
[Documentation] Set boot mode as Setup via REST and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Mode_As_Setup_Using_REST_API
Set Boot Mode ${BOOT_MODE_SETUP}
${boot_mode}= Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootMode
Should Be Equal As Strings ${boot_mode} ${BOOT_MODE_SETUP}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot into BIOS Setup
Set The Boot Mode As Setup Using Ipmitool
[Documentation] Set boot mode as Setup via IPMI and verify with both
... REST and IPMI.
[Tags] Set_The_Boot_Mode_As_Setup_Using_Ipmitool
Run IPMI command 0x0 0x8 0x05 0x80 0x18 0x00 0x00 0x00
${boot_mode}= Read Attribute ${CONTROL_HOST_URI}/boot/one_time BootMode
Should Be Equal As Strings ${boot_mode} ${BOOT_MODE_SETUP}
${output}= Run IPMI Standard Command chassis bootparam get 5
Should Contain ${output} Force Boot into BIOS Setup
*** Keywords ***
Set Boot Source
[Documentation] Set given boot source.
[Arguments] ${boot_source}
# Description of argument(s):
# boot_source Boot source which need to be set.
${valueDict}= Create Dictionary data=${boot_source}
Write Attribute ${CONTROL_HOST_URI}/boot/one_time BootSource
... data=${valueDict}
Set Boot Mode
[Documentation] Set given boot mode.
[Arguments] ${boot_mode}
# Description of argument(s):
# boot_mode Boot mode which need to be set.
${valueDict}= Create Dictionary data=${boot_mode}
Write Attribute ${CONTROL_HOST_URI}/boot/one_time BootMode
... data=${valueDict}
Response Should Be Equal
[Documentation] Verify that the output is equal to the given args.
[Arguments] ${args}
Should Be Equal ${OUTPUT} ${args}
Read the Attribute
[Documentation] Read the given attribute.
[Arguments] ${uri} ${parm}
${output}= Read Attribute ${uri} ${parm}
Set Test Variable ${OUTPUT} ${output}
Post Test Case Execution
[Documentation] Do the post test teardown.
FFDC On Test Case Fail
Set Boot Source ${BOOT_SOURCE_DEFAULT}
Set Boot Mode ${BOOT_MODE_REGULAR}
Test Suite Setup
[Documentation] Do the initial suite setup.
Smart Power Off
# Set boot policy to default i.e. one time enabled.
${valueDict}= Create Dictionary data=${1}
Write Attribute ${CONTROL_HOST_URI}/boot/one_time Enabled
... data=${valueDict}