xref: /openbmc/openbmc-test-automation/systest/collection/bmc_collect_sensors.robot (revision 91e137406159787acb8ae6e9f2651660fc8a0141)
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