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