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