blob: e9c9fbadb89963c049a432a125caac97731df7ca [file] [log] [blame]
*** Settings ***
Documentation Get the systems' power supply voltage readings.
Resource ../../lib/bmc_redfish_resource.robot
Resource ../../lib/bmc_redfish_utils.robot
Resource ../../lib/openbmc_ffdc.robot
Library ../../lib/gen_robot_valid.py
Suite Setup Suite Setup Execution
Suite Teardown Suite Teardown Execution
Test Setup Printn
Test Teardown Test Teardown Execution
*** Test Cases ***
Verify Power Supplies Input Watts
[Documentation] Verify there are no invalid power supply input watt records.
[Tags] Verify_Power_Supplies_Input_Watts
[Template] Verify Watts Record
# record_type redfish_uri reading_type
PowerSupplies ${REDFISH_CHASSIS_POWER_URI} PowerInputWatts
Verify Power Supplies Input Output Voltages
[Documentation] Verify there are no invalid power supply voltage records.
[Tags] Verify_Power_Supplies_Input_Output_Voltages
[Template] Verify Voltage Records
# record_type redfish_uri reading_type
Voltages ${REDFISH_CHASSIS_POWER_URI} ReadingVolts
*** Keywords ***
Verify Watts Record
[Documentation] Verify the power watt records.
[Arguments] ${record_type} ${redfish_uri} ${reading_type}
# Description of Arguments(s):
# record_type The sensor record type (e.g. "PowerSupplies")
# redfish_uri The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power)
# reading_type The power watt readings (e.g. "PowerInputWatts")
Verify Valid Records ${record_type} ${redfish_uri} ${reading_type}
Verify Voltage Records
[Documentation] Verify the power voltage records.
[Arguments] ${record_type} ${redfish_uri} ${reading_type}
# Description of Arguments(s):
# record_type The sensor record type (e.g. "Voltages")
# redfish_uri The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power)
# reading_type The power voltage readings (e.g. "ReadingVolts")
Verify Valid Records ${record_type} ${redfish_uri} ${reading_type}
${records}= Redfish.Get Attribute
... ${redfish_uri} ${record_type}
${invalid_records}= Evaluate
... [x for x in ${records} if not x['LowerThresholdNonCritical'] <= x['${reading_type}'] <= x['UpperThresholdNonCritical']]
${num_invalid_records}= Get Length ${invalid_records}
Run Keyword If ${num_invalid_records} > ${0}
... Rprint Vars num_invalid_records invalid_records
Rvalid Value num_invalid_records valid_values=[0]
Verify Valid Records
[Documentation] Verify all the valid records.
[Arguments] ${record_type} ${redfish_uri} ${reading_type}
# Description of Arguments(s):
# record_type The sensor record type (e.g. "PowerSupplies")
# redfish_uri The power supply URI (e.g. /redfish/v1/Chassis/chassis/Power)
# reading_type The power watt readings (e.g. "PowerInputWatts")
# A valid record will have "State" key "Enabled" and "Health" key "OK".
${records}= Redfish.Get Attribute
... ${redfish_uri} ${record_type}
${num_records}= Get Length ${records}
Rprint Vars num_records records
${invalid_records}= Filter Struct ${records}
... [('Health', '^OK$'), ('State', '^Enabled$'), ('${reading_type}', '')] regex=1 invert=1
${num_invalid_records}= Get Length ${invalid_records}
Run Keyword If ${num_invalid_records} > ${0}
... Rprint Vars num_invalid_records invalid_records
Rvalid Value num_invalid_records valid_values=[0]
Suite Teardown Execution
[Documentation] Do the post suite teardown.
Redfish.Logout
Suite Setup Execution
[Documentation] Do test case setup tasks.
Printn
Redfish Power On stack_mode=skip
Redfish.Login
Test Teardown Execution
[Documentation] Do the post test teardown.
FFDC On Test Case Fail