1*** Settings *** 2Documentation Utilities for eSEL testing. 3 4Resource ../lib/ipmi_client.robot 5Resource ../lib/utils.robot 6Resource ../lib/logging_utils.robot 7Variables ../data/variables.py 8 9 10*** Variables *** 11 12${RAW_PREFIX} raw 0x3a 0xf0 0x 13 14${RESERVE_ID} raw 0x0a 0x42 15 16${RAW_SUFFIX} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 17... 0xdf 0x00 0x00 0x00 0x00 0x20 0x00 0x04 0x12 0x65 0x6f 0xaa 0x00 0x00 18 19${RAW_SEL_COMMIT} raw 0x0a 0x44 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 20... 0x00 0x04 0x12 0xA6 0x6f 0x02 0x00 0x01 21 22 23*** Keywords *** 24 25Create eSEL 26 [Documentation] Create an eSEL. 27 Open Connection And Log In 28 ${Resv_id}= Run Inband IPMI Standard Command ${RESERVE_ID} 29 ${cmd}= Catenate 30 ... ${RAW_PREFIX}${Resv_id.strip().rsplit(' ', 1)[0]} ${RAW_SUFFIX} 31 Run Inband IPMI Standard Command ${cmd} 32 Run Inband IPMI Standard Command ${RAW_SEL_COMMIT} 33 34 35Count eSEL Entries 36 [Documentation] Count eSEL entries logged. 37 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY} 38 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} 39 ${count}= Get Length ${resp.json()["data"]} 40 [Return] ${count} 41 42 43Verify eSEL Entries 44 [Documentation] Verify eSEL entries logged. 45 46 # { 47 # "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 48 # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/2", 49 # "@odata.type": "#LogEntry.v1_4_0.LogEntry", 50 # "Created": "2019-06-03T14:47:31+00:00", 51 # "EntryType": "Event", 52 # "Id": "2", 53 # "Message": "org.open_power.Host.Error.Event", 54 # "Name": "System DBus Event Log Entry", 55 # "Severity": "Critical" 56 # } 57 58 ${elog_entry}= Get Event Logs 59 Should Be Equal ${elog_entry[0]["Message"]} org.open_power.Host.Error.Event 60 Should Be Equal ${elog_entry[0]["Severity"]} Critical 61 62 63Check For Error Logs 64 [Documentation] Fail if there are error logs. Ignore logs with 65 ... severity in the ignorelist. 66 67 [Arguments] ${ignorelist} 68 69 # Description of Argument(s): 70 # ignorelist A list to be used to filter out esels which are 71 # of no interest to the caller. 72 # Error Logs with Severity field matching an 73 # entry in this list will be ignored. (e.g. 74 # xyz.openbmc_project.Logging.Entry.Level.Error) 75 76 Print Timen Checking Error Logs. 77 ${error_logs}= Get Error Logs 78 79 ${num_error_logs}= Get Length ${error_logs} 80 Return From Keyword If ${num_error_logs} == ${0} 81 82 # Get a list of the severities of the error logs. 83 ${error_log_severities}= Nested Get Severity ${error_logs} 84 # Subtract the IGNORETLIST from the error_log_severities. 85 ${problem_error_logs}= Evaluate 86 ... list(set($error_log_severities) - set($ignorelist)) 87 88 Valid Length problem_error_logs max_length=0 89