1*** Settings ***
2Documentation       Getting the systems thermal records for temperature.
3
4Resource            ../../lib/bmc_redfish_resource.robot
5Resource            ../../lib/bmc_redfish_utils.robot
6Resource            ../../lib/logging_utils.robot
7Resource            ../../lib/boot_utils.robot
8Resource            ../../lib/openbmc_ffdc.robot
9Library             ../../lib/gen_robot_valid.py
10Library             ../../lib/logging_utils.py
11
12Suite Setup         Suite Setup Execution
13Suite Teardown      Suite Teardown Execution
14Test Setup          Printn
15Test Teardown       Test Teardown Execution
16
17
18*** Test Cases ***
19
20Get Ambient Temperature Records
21    [Documentation]  Get the ambient temperature records.
22    [Tags]  Get_Ambient_Temperature_Records
23    [Template]  Get Thermal Records and Verify
24
25    # record_type   reading_type
26    Temperatures    ReadingCelsius
27
28
29Reboot And Check Ambient Temperature Records Are Valid
30    [Documentation]  Check the ambient temperature records are valid after a reboot.
31    [Tags]  Reboot_And_Check_Ambient_Temperature_Records_Are_Valid
32
33    Redfish OBMC Reboot (run)
34    Redfish.Login
35
36    Get Thermal Records and Verify  Temperatures  ReadingCelsius
37
38
39*** Keywords ***
40
41Get Thermal Records and Verify
42    [Documentation]  Get the thermal records for temperatures.
43    [Arguments]  ${record_type}  ${reading_type}
44
45    # Description of Arguments(s):
46    # record_type    The thermal record type (e.g. "Temperatures")
47    # reading_type   The thermal temperature readings (e.g. "ReadingCelsius")
48
49    ${records}=  Verify Valid Records  ${record_type}  ${REDFISH_CHASSIS_THERMAL_URI}  ${reading_type}
50
51    ${num_records}=  Get Length  ${records}
52    Rprint Vars  num_records  records
53
54    ${invalid_records}=  Evaluate
55    ...  [x for x in ${records} if not x['LowerThresholdNonCritical'] <= x['${reading_type}'] <= x['UpperThresholdNonCritical']]
56
57    ${num_invalid_records}=  Get Length  ${invalid_records}
58    Run Keyword If  ${num_invalid_records} > ${0}
59    ...  Rprint Vars  num_invalid_records  invalid_records
60    Valid Value   num_invalid_records  valid_values=[0]
61
62    Error Logs Should Not Exist
63
64
65Suite Teardown Execution
66    [Documentation]  Do the post suite teardown.
67
68    Redfish.Logout
69
70
71Suite Setup Execution
72    [Documentation]  Do test case setup tasks.
73
74    Printn
75    Redfish.Login
76    Redfish Purge Event Log
77
78
79Test Teardown Execution
80    [Documentation]  Do the post test teardown.
81
82    FFDC On Test Case Fail
83