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          Redfish Purge Event Log
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}
50    ...  ${REDFISH_CHASSIS_URI}/${CHASSIS_ID}/Thermal  ${reading_type}
51
52    ${num_records}=  Get Length  ${records}
53    Rprint Vars  num_records  records
54
55    ${cmd}  Catenate  [x for x in ${records}
56    ...  if not x['LowerThresholdNonCritical'] <= x['${reading_type}'] <= x['UpperThresholdNonCritical']]
57    ${invalid_records}=  Evaluate  ${cmd}
58
59    ${num_invalid_records}=  Get Length  ${invalid_records}
60    Run Keyword If  ${num_invalid_records} > ${0}
61    ...  Rprint Vars  num_invalid_records  invalid_records
62    Valid Value   num_invalid_records  valid_values=[0]
63
64    Error Logs Should Not Exist
65
66
67Suite Teardown Execution
68    [Documentation]  Do the post suite teardown.
69
70    Redfish.Logout
71
72
73Suite Setup Execution
74    [Documentation]  Do test case setup tasks.
75
76    Printn
77    Redfish.Login
78    Redfish Purge Event Log
79
80
81Test Teardown Execution
82    [Documentation]  Do the post test teardown.
83
84    FFDC On Test Case Fail
85