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