blob: df1f4da8868f0c69a03b6ac974f6438d9c58faa5 [file] [log] [blame]
*** Settings ***
Documentation Check the indicator LEDs on the system can set the assert
... property to the correct state.
Resource ../../lib/rest_client.robot
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/bmc_redfish_utils.robot
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/resource.robot
Resource ../../lib/boot_utils.robot
Library ../../lib/gen_robot_valid.py
Library ../../lib/gen_robot_keyword.py
Suite Setup Suite Setup Execution
Suite Teardown Suite Teardown Execution
Test Setup Printn
Test Teardown Test Teardown Execution
*** Test Cases ***
Verify LED Lamp Test Asserted At Standby
[Documentation] Verify the LED asserted at standby is set to off or blinking.
[Tags] Verify_LED_Lamp_Test_Asserted_At_Standby
[Template] Set and Verify Lamp LED Indicator
# pre_req_state asserted expected_indicator_led
Off 1 Blinking
Off 0 Off
Verify LED Lamp Test Asserted At Runtime
[Documentation] Verify the LED asserted at runtime is set to off or blinking.
[Tags] Verify_LED_Lamp_Test_Asserted_At_Runtime
[Template] Set and Verify Lamp LED Indicator
# pre_req_state asserted expected_indicator_led
On 1 Blinking
On 0 Off
Verify LED Power Supply Units Asserted At Standby
[Documentation] Verify the power supply units are asserted at standby to lit or off.
[Tags] Verify_LED_Power_Supply_Units_Asserted_At_Standby
[Template] Set and Verify LED Indicator
# pre_req_state asserted expected_indicator_led
Off "xyz.openbmc_project.Led.Physical.Action.On" Lit
Off "xyz.openbmc_project.Led.Physical.Action.Off" Off
Verify LED Power Supply Units Asserted At Runtime
[Documentation] Verify the power supply units are asserted at runtime to lit or off.
[Tags] Verify_LED_Power_Supply_Units_Asserted_At_Runtime
[Template] Set and Verify LED Indicator
# pre_req_state asserted expected_indicator_led
On "xyz.openbmc_project.Led.Physical.Action.On" Lit
On "xyz.openbmc_project.Led.Physical.Action.Off" Off
Verify LED Fans Asserted At Standby
[Documentation] Verify the fans are asserted at standby to lit or off.
[Tags] Verify_LED_Fans_Asserted_At_Standby
[Template] Set and Verify Fan LED Indicators
# pre_req_state asserted expected_indicator_led
Off "xyz.openbmc_project.Led.Physical.Action.On" Lit
Off "xyz.openbmc_project.Led.Physical.Action.Off" Off
Verify LED Fans Asserted At Runtime
[Documentation] Verify the fans are asserted at runtime to lit or off.
[Tags] Verify_LED_Fans_Asserted_At_Runtime
[Template] Set and Verify Fan LED Indicators
# pre_req_state asserted expected_indicator_led
On "xyz.openbmc_project.Led.Physical.Action.On" Lit
On "xyz.openbmc_project.Led.Physical.Action.Off" Off
Verify Location Indicator Active status
[Documentation] Verify the Location Indicator Active status to true or false.
[Tags] Verify_Location_Indicator_Active_status
[setup] Set Suite LED Indicator Initial Value
[Teardown] Set Initial Value ${value}
Set And Verify LED Location Indicator Active ${set_value}
*** Keywords ***
Set and Verify Lamp LED Indicator
[Documentation] Verify the indicator LED for the group lamp test is asserted.
[Arguments] ${pre_req_state} ${asserted} ${expected_indicator_led}
# Description of Arguments(s):
# pre_req_state The pre-requisite state of the host to perform the test (e.g. "On")
# asserted The assert property that sets the value to 0 - Off or 1 - Blinking (e.g. "1")
# expected_indicator_led The expected value of the IndicatorLED attribute for all the
# LEDs after the lamp test is initiated (e.g. "Blinking")
Run Key U Redfish Power ${pre_req_state} \ stack_mode=skip \ quiet=1
Redfish.Login
Redfish.Put ${LED_LAMP_TEST_ASSERTED_URI}attr/Asserted body={"data":${asserted}}
# Example result:
# power_supplies:
# [0]:
# [MemberId]: powersupply0
# [PartNumber]: 02CL396
# [IndicatorLED]: Blinking
# [EfficiencyPercent]: 90
# [Status]:
# [Health]: OK
# [State]: Enabled
Verify Indicator LEDs ${expected_indicator_led}
Set and Verify LED Indicator
[Documentation] Verify the indicator LED for the power supply units are asserted.
[Arguments] ${pre_req_state} ${asserted} ${expected_indicator_led}
# Description of Arguments(s):
# pre_req_state The pre-requisite state of the host to perform the test (e.g. "On")
# asserted The assert property that sets the value
# (e.g. "xyz.openbmc_project.Led.Physical.Action.On")
# expected_indicator_led The expected value of the IndicatorLED attribute for all the
# power supplies units are initiated (e.g. "Lit")
Run Key U Redfish Power ${pre_req_state} \ stack_mode=skip \ quiet=1
Redfish.Login
# Put both power supply LEDs On/Off to check all units are asserted
Redfish.Put ${LED_PHYSICAL_PS0_URI}attr/State body={"data":${asserted}}
Redfish.Put ${LED_PHYSICAL_PS1_URI}attr/State body={"data":${asserted}}
# Example output:
# power_supplies:
# [0]:
# [MemberId]: powersupply0
# [IndicatorLED]: Lit
# [Status]:
# [Health]: OK
# [State]: Enabled
# [1]:
# [MemberId]: powersupply1
# [IndicatorLED]: Lit
# [Status]:
# [Health]: OK
# [State]: Enabled
Verify Indicator LEDs ${expected_indicator_led}
Verify Indicator LEDs
[Documentation] Verify the LEDs on the power supply units are set according to caller's expectation.
[Arguments] ${expected_indicator_led}
# Description of Arguments(s):
# expected_indicator_led The expected value of the IndicatorLED attribute for all the
# LEDs after the lamp test is initiated (e.g. "Blinking")
${power_supplies}= Redfish.Get Attribute ${REDFISH_CHASSIS_POWER_URI} PowerSupplies
Rprint Vars power_supplies
FOR ${power_supply_leds} IN @{power_supplies}
Valid Value power_supply_leds['IndicatorLED'] ['${expected_indicator_led}']
END
Set and Verify Fan LED Indicators
[Documentation] Verify the indicator LED for the fans are asserted.
[Arguments] ${pre_req_state} ${asserted} ${expected_indicator_led}
# Description of Arguments(s):
# pre_req_state The pre-requisite state of the host to perform the test (e.g. "On")
# asserted The assert property that sets the value
# (e.g. "xyz.openbmc_project.Led.Physical.Action.On")
# expected_indicator_led The expected value of the IndicatorLED attribute for all the fans
# are initiated (e.g. "Lit")
Run Key U Redfish Power ${pre_req_state} \ stack_mode=skip \ quiet=1
Redfish.Login
# Put all the fan LEDs On/Off to check all are asserted
Redfish.Put ${LED_PHYSICAL_FAN0_URI}attr/State body={"data":${asserted}}
Redfish.Put ${LED_PHYSICAL_FAN2_URI}attr/State body={"data":${asserted}}
Redfish.Put ${LED_PHYSICAL_FAN3_URI}attr/State body={"data":${asserted}}
# Example output:
# fans:
# [0]:
# [@odata.id]: /redfish/v1/Chassis/chassis/Thermal#/Fans/0
# [@odata.type]: #Thermal.v1_3_0.Fan
# [IndicatorLED]: Lit
# [MemberId]: fan0_0
# [Name]: fan0 0
# [Status]:
# [Health]: OK
# [State]: Enabled
${fans}= Redfish.Get Attribute ${REDFISH_CHASSIS_THERMAL_URI} Fans
Rprint Vars fans
FOR ${fan_leds} IN @{fans}
Valid Value fan_leds['IndicatorLED'] ['${expected_indicator_led}']
END
Suite Teardown Execution
[Documentation] Do the post suite teardown.
Redfish.Logout
Suite Setup Execution
[Documentation] Do test case setup tasks.
Printn
Redfish.Login
Test Teardown Execution
[Documentation] Do the post test teardown.
FFDC On Test Case Fail
Set Suite LED Indicator Initial Value
[Documentation] set suite For LED Initial value.
${value}= Redfish.Get Attribute /redfish/v1/Systems/${SYSTEM_ID} LocationIndicatorActive
Set Suite Variable ${value}
IF ${value} == False
Set Suite Variable ${set_value} ${True}
ELSE
Set Suite Variable ${set_value} ${False}
END
Set And Verify LED Location Indicator Active
[Documentation] Set And Verify LED Location Indicator State.
[Arguments] ${set_value}
${payload}= Create Dictionary LocationIndicatorActive=${set_value}
Redfish.Patch /redfish/v1/Systems/${SYSTEM_ID} body=&{payload}
... valid_status_codes=[${HTTP_NO_CONTENT}]
${value}= Redfish.Get Attribute /redfish/v1/Systems/${SYSTEM_ID} LocationIndicatorActive
Should Be Equal As Strings ${value} ${set_value}
Set Initial Value
[Documentation] setting back Initial value.
[Arguments] ${value}
${payload}= Create Dictionary LocationIndicatorActive=${value}
Redfish.Patch /redfish/v1/Systems/${SYSTEM_ID} body=&{payload}
... valid_status_codes=[${HTTP_NO_CONTENT}]
${intial_value}= Redfish.Get Attribute /redfish/v1/Systems/${SYSTEM_ID} LocationIndicatorActive
Should Be Equal As Strings ${intial_value} ${value}