xref: /openbmc/openbmc-test-automation/lib/esel_utils.robot (revision 2a2dbbd17ce4a703869fbf86f873ae9342423a89)
1a3f0439fSSteven Sombar*** Settings ***
2a3f0439fSSteven SombarDocumentation  Utilities for eSEL testing.
3a3f0439fSSteven Sombar
4a3f0439fSSteven SombarResource            ../lib/ipmi_client.robot
5a3f0439fSSteven SombarResource            ../lib/utils.robot
66716d6a8SGeorge KeishingResource            ../lib/logging_utils.robot
7a3f0439fSSteven SombarVariables           ../data/variables.py
8a3f0439fSSteven Sombar
9a3f0439fSSteven Sombar
10a3f0439fSSteven Sombar*** Variables ***
11a3f0439fSSteven Sombar
12a3f0439fSSteven Sombar${RESERVE_ID}       raw 0x0a 0x42
13a3f0439fSSteven Sombar
14a3f0439fSSteven Sombar${RAW_SUFFIX}       0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00
1531b6bd0eSSteven Sombar...  0xdf 0x00 0x00 0x00 0x00 0x20 0x00 0x04 0x12 0x65 0x6f 0xaa 0x00 0x00
16a3f0439fSSteven Sombar
17a3f0439fSSteven Sombar${RAW_SEL_COMMIT}   raw 0x0a 0x44 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20
18a3f0439fSSteven Sombar...  0x00 0x04 0x12 0xA6 0x6f 0x02 0x00 0x01
19a3f0439fSSteven Sombar
20a3f0439fSSteven Sombar
21a3f0439fSSteven Sombar*** Keywords ***
22a3f0439fSSteven Sombar
23a3f0439fSSteven SombarCreate eSEL
24a3f0439fSSteven Sombar    [Documentation]  Create an eSEL.
25*2a2dbbd1SSridevi Ramesh    [Arguments]  ${IPMI_RAW_PREFIX}
26*2a2dbbd1SSridevi Ramesh
27*2a2dbbd1SSridevi Ramesh    # Description of Argument(s):
28*2a2dbbd1SSridevi Ramesh    # IPMI_RAW_PREFIX   Provide the IPMI raw prefix format
29*2a2dbbd1SSridevi Ramesh    #                   Default is '0x3a 0xf0 0x'.
30*2a2dbbd1SSridevi Ramesh
31a3f0439fSSteven Sombar    Open Connection And Log In
32a3f0439fSSteven Sombar    ${Resv_id}=  Run Inband IPMI Standard Command  ${RESERVE_ID}
33a3f0439fSSteven Sombar    ${cmd}=  Catenate
34*2a2dbbd1SSridevi Ramesh    ...  raw ${IPMI_RAW_PREFIX}${Resv_id.strip().rsplit(' ', 1)[0]}  ${RAW_SUFFIX}
35*2a2dbbd1SSridevi Ramesh
36a3f0439fSSteven Sombar    Run Inband IPMI Standard Command  ${cmd}
37a3f0439fSSteven Sombar    Run Inband IPMI Standard Command  ${RAW_SEL_COMMIT}
38a3f0439fSSteven Sombar
39a3f0439fSSteven Sombar
40a3f0439fSSteven SombarCount eSEL Entries
41a3f0439fSSteven Sombar    [Documentation]  Count eSEL entries logged.
42*2a2dbbd1SSridevi Ramesh
43a3f0439fSSteven Sombar    ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}
44a3f0439fSSteven Sombar    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
45fbd67007SGeorge Keishing    ${count}=  Get Length  ${resp.json()["data"]}
46409df05dSGeorge Keishing    RETURN  ${count}
47a3f0439fSSteven Sombar
48a3f0439fSSteven Sombar
49a3f0439fSSteven SombarVerify eSEL Entries
50a3f0439fSSteven Sombar    [Documentation]  Verify eSEL entries logged.
51a3f0439fSSteven Sombar
526716d6a8SGeorge Keishing    # {
536716d6a8SGeorge Keishing    #    "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry",
546716d6a8SGeorge Keishing    #    "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/2",
556716d6a8SGeorge Keishing    #    "@odata.type": "#LogEntry.v1_4_0.LogEntry",
566716d6a8SGeorge Keishing    #    "Created": "2019-06-03T14:47:31+00:00",
576716d6a8SGeorge Keishing    #    "EntryType": "Event",
586716d6a8SGeorge Keishing    #    "Id": "2",
596716d6a8SGeorge Keishing    #    "Message": "org.open_power.Host.Error.Event",
606716d6a8SGeorge Keishing    #    "Name": "System DBus Event Log Entry",
616716d6a8SGeorge Keishing    #    "Severity": "Critical"
626716d6a8SGeorge Keishing    # }
636716d6a8SGeorge Keishing
646716d6a8SGeorge Keishing    ${elog_entry}=  Get Event Logs
656716d6a8SGeorge Keishing    Should Be Equal  ${elog_entry[0]["Message"]}  org.open_power.Host.Error.Event
666716d6a8SGeorge Keishing    Should Be Equal  ${elog_entry[0]["Severity"]}  Critical
673839c8cfSSteven Sombar
683839c8cfSSteven Sombar
693839c8cfSSteven SombarCheck For Error Logs
703839c8cfSSteven Sombar    [Documentation]  Fail if there are error logs. Ignore logs with
71178d9bf2SGeorge Keishing    ...              severity in the ignorelist.
723839c8cfSSteven Sombar
7310ac7fe2SKonstantin Aladyshev    [Arguments]  ${ignorelist}
743839c8cfSSteven Sombar
753839c8cfSSteven Sombar    # Description of Argument(s):
76178d9bf2SGeorge Keishing    # ignorelist A list to be used to filter out esels which are
773839c8cfSSteven Sombar    #            of no interest to the caller.
783839c8cfSSteven Sombar    #            Error Logs with Severity field matching an
793839c8cfSSteven Sombar    #            entry in this list will be ignored. (e.g.
803839c8cfSSteven Sombar    #            xyz.openbmc_project.Logging.Entry.Level.Error)
813839c8cfSSteven Sombar
823839c8cfSSteven Sombar    Print Timen  Checking Error Logs.
833839c8cfSSteven Sombar    ${error_logs}=  Get Error Logs
843839c8cfSSteven Sombar
853839c8cfSSteven Sombar    ${num_error_logs}=  Get Length  ${error_logs}
863839c8cfSSteven Sombar    Return From Keyword If  ${num_error_logs} == ${0}
873839c8cfSSteven Sombar
883839c8cfSSteven Sombar    # Get a list of the severities of the error logs.
893839c8cfSSteven Sombar    ${error_log_severities}=  Nested Get  Severity  ${error_logs}
90178d9bf2SGeorge Keishing    # Subtract the IGNORETLIST from the error_log_severities.
913839c8cfSSteven Sombar    ${problem_error_logs}=  Evaluate
9210ac7fe2SKonstantin Aladyshev    ...  list(set($error_log_severities) - set($ignorelist))
933839c8cfSSteven Sombar
943839c8cfSSteven Sombar    Valid Length  problem_error_logs   max_length=0
95