1d806cc06SJoy Onyerikwu*** Settings *** 2d806cc06SJoy OnyerikwuDocumentation BMC server health, collect sensors. 3d806cc06SJoy Onyerikwu 4d806cc06SJoy Onyerikwu# Test Parameters: 5d806cc06SJoy Onyerikwu# OPENBMC_HOST The BMC host name or IP address. 6d806cc06SJoy Onyerikwu 7d806cc06SJoy OnyerikwuResource ../../lib/bmc_redfish_resource.robot 8d806cc06SJoy OnyerikwuResource ../../lib/openbmc_ffdc.robot 9d806cc06SJoy OnyerikwuLibrary Collections 10*91e13740SGeorge KeishingLibrary ../lib/os_utils_keywords.py 11d806cc06SJoy Onyerikwu 12d806cc06SJoy OnyerikwuSuite Setup Suite Setup Execution 13d806cc06SJoy OnyerikwuSuite Teardown Suite Teardown Execution 14d806cc06SJoy OnyerikwuTest Setup Printn 15d806cc06SJoy Onyerikwu 16d806cc06SJoy Onyerikwu*** Variables *** 17d806cc06SJoy Onyerikwu${QUIET} ${1} 18d806cc06SJoy Onyerikwu${sensors_values_rest} Rest sensors collection excluded 19d806cc06SJoy Onyerikwu${sensors_values_redfish} Redfish sensors collection excluded 20d806cc06SJoy Onyerikwu${sensors_flagged_rest} Rest sensors collection excluded 21d806cc06SJoy Onyerikwu${sensors_flagged_redfish} Redfish sensors collection excluded 22d806cc06SJoy Onyerikwu 23d806cc06SJoy Onyerikwu 24d806cc06SJoy Onyerikwu*** Test Cases *** 25d806cc06SJoy Onyerikwu 26d806cc06SJoy OnyerikwuRest Collect Sensors 27d806cc06SJoy Onyerikwu [Documentation] Collect the sensors values using the OpenBMC Rest API. 28d806cc06SJoy Onyerikwu [Tags] Rest_Collect_Sensors rest 29858d4108SGeorge Keishing [Teardown] FFDC On Test Case Fail 30d806cc06SJoy Onyerikwu 31d806cc06SJoy Onyerikwu ${sensors}= OpenBMC Get Request ${SENSORS_URI}enumerate 32d806cc06SJoy Onyerikwu ${sensors}= Evaluate $sensors.json()['data'] 33d806cc06SJoy Onyerikwu ${sensors_collected_via_rest}= gen_robot_print.Sprint Vars sensors 34d806cc06SJoy Onyerikwu Log To Console ${sensors_collected_via_rest} 35d806cc06SJoy Onyerikwu ${fans}= Filter Struct ${sensors} [('Unit', '\.RPMS$')] regex=1 36d806cc06SJoy Onyerikwu ${no_fans}= Filter Struct ${sensors} [('WarningAlarmHigh', None),('WarningAlarmLow', None)] 37d806cc06SJoy Onyerikwu ... invert=${True} 38d806cc06SJoy Onyerikwu Log sensor values raw:${\n}${sensors}${\n}sensors no fans:${\n}${no_fans}${\n}fans:${\n}${fans} 39d806cc06SJoy Onyerikwu ... level=DEBUG 40d806cc06SJoy Onyerikwu 41d806cc06SJoy Onyerikwu ${fans_flagged}= Filter Struct ${fans} 42d806cc06SJoy Onyerikwu ... [('CriticalAlarmHigh', False),('CriticalAlarmLow', False)] invert=${True} 43d806cc06SJoy Onyerikwu ${filter_str}= Catenate [('CriticalAlarmHigh', False),('CriticalAlarmLow', False), 44d806cc06SJoy Onyerikwu ... ('WarningAlarmHigh', False),('WarningAlarmLow', False)] 45d806cc06SJoy Onyerikwu ${other_sensors_flagged}= Filter Struct ${no_fans} ${filter_str} invert=${True} 46d806cc06SJoy Onyerikwu ${sensors_flagged_rest}= gen_robot_print.Sprint Vars fans_flagged other_sensors_flagged 47d806cc06SJoy Onyerikwu Set Suite Variable ${sensors_flagged_rest} 48d806cc06SJoy Onyerikwu 49d806cc06SJoy Onyerikwu 50d806cc06SJoy OnyerikwuRedfish Collect Sensors 51d806cc06SJoy Onyerikwu [Documentation] Collect the sensor values using Redfish. 52d806cc06SJoy Onyerikwu [Tags] Redfish_Collect_Sensors redfish 53d806cc06SJoy Onyerikwu [Setup] Redfish.Login 54d806cc06SJoy Onyerikwu [Teardown] Redfish Test Teardown Execution 55d806cc06SJoy Onyerikwu 56d806cc06SJoy Onyerikwu ${redfish_chassis_power}= Redfish_Utils.Enumerate Request ${REDFISH_CHASSIS_POWER_URI} ${0} 57d806cc06SJoy Onyerikwu ${redfish_chassis_thermal}= Redfish_Utils.Enumerate Request ${REDFISH_CHASSIS_THERMAL_URI} ${0} 58d806cc06SJoy Onyerikwu ${redfish_chassis_sensors}= Redfish_Utils.Enumerate Request ${REDFISH_CHASSIS_SENSORS_URI} ${0} 59d806cc06SJoy Onyerikwu ${sensors_values_redfish}= gen_robot_print.Sprint Vars 60d806cc06SJoy Onyerikwu ... redfish_chassis_power redfish_chassis_thermal redfish_chassis_sensors 61d806cc06SJoy Onyerikwu Set Suite Variable ${sensors_values_redfish} 62d806cc06SJoy Onyerikwu Log To Console ${sensors_values_redfish} 63d806cc06SJoy Onyerikwu 64d806cc06SJoy Onyerikwu ${health_check_filter_dict}= Create Dictionary Health=OK 65d806cc06SJoy Onyerikwu ${merged_dicts}= Evaluate {**$redfish_chassis_power, **$redfish_chassis_thermal} 66d806cc06SJoy Onyerikwu Log ${merged_dicts} level=DEBUG 67d806cc06SJoy Onyerikwu ${sensors_flagged_redfish}= Filter Struct ${merged_dicts} ${health_check_filter_dict} invert=${TRUE} 68d806cc06SJoy Onyerikwu ${sensors_flagged_redfish}= gen_robot_print.Sprint Vars sensors_flagged_redfish 69d806cc06SJoy Onyerikwu Set Suite Variable ${sensors_flagged_redfish} 70d806cc06SJoy Onyerikwu 71d806cc06SJoy Onyerikwu 72d806cc06SJoy Onyerikwu*** Keywords *** 73d806cc06SJoy Onyerikwu 74d806cc06SJoy OnyerikwuSuite Setup Execution 75d806cc06SJoy Onyerikwu [Documentation] Do suite setup tasks. 76d806cc06SJoy Onyerikwu 77d806cc06SJoy Onyerikwu Set Log Level DEBUG 78d806cc06SJoy Onyerikwu REST Power On stack_mode=skip 79d806cc06SJoy Onyerikwu 80d806cc06SJoy Onyerikwu 81d806cc06SJoy OnyerikwuSuite Teardown Execution 82d806cc06SJoy Onyerikwu [Documentation] Do suite teardown tasks. Log sensor values collected. 83d806cc06SJoy Onyerikwu 84d806cc06SJoy Onyerikwu Log Many ${sensors_values_rest} ${sensors_values_redfish} 85d806cc06SJoy Onyerikwu Log Sensors detected out of bounds via Rest:${\n}${sensors_flagged_rest} console=true 86d806cc06SJoy Onyerikwu Log Sensors detected out of bounds via Redfish:${\n}${sensors_flagged_redfish} console=true 87d806cc06SJoy Onyerikwu 88d806cc06SJoy Onyerikwu 89d806cc06SJoy OnyerikwuRedfish Test Teardown Execution 90d806cc06SJoy Onyerikwu [Documentation] Do the post test teardown for redfish. 91d806cc06SJoy Onyerikwu 92d806cc06SJoy Onyerikwu Redfish.Logout 93858d4108SGeorge Keishing FFDC On Test Case Fail 94