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 ${jsondata}= To JSON ${resp.content} 40 ${count}= Get Length ${jsondata["data"]} 41 [Return] ${count} 42 43 44Verify eSEL Entries 45 [Documentation] Verify eSEL entries logged. 46 47 # { 48 # "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 49 # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/2", 50 # "@odata.type": "#LogEntry.v1_4_0.LogEntry", 51 # "Created": "2019-06-03T14:47:31+00:00", 52 # "EntryType": "Event", 53 # "Id": "2", 54 # "Message": "org.open_power.Host.Error.Event", 55 # "Name": "System DBus Event Log Entry", 56 # "Severity": "Critical" 57 # } 58 59 ${elog_entry}= Get Event Logs 60 Should Be Equal ${elog_entry[0]["Message"]} org.open_power.Host.Error.Event 61 Should Be Equal ${elog_entry[0]["Severity"]} Critical 62 63 64Check For Error Logs 65 [Documentation] Fail if there are error logs. Ignore logs with 66 ... severity in the whitelist. 67 68 [Arguments] ${whitelist} 69 70 # Description of Argument(s): 71 # whitelist A list to be used to filter out esels which are 72 # of no interest to the caller. 73 # Error Logs with Severity field matching an 74 # entry in this list will be ignored. (e.g. 75 # xyz.openbmc_project.Logging.Entry.Level.Error) 76 77 Print Timen Checking Error Logs. 78 ${error_logs}= Get Error Logs 79 80 ${num_error_logs}= Get Length ${error_logs} 81 Return From Keyword If ${num_error_logs} == ${0} 82 83 # Get a list of the severities of the error logs. 84 ${error_log_severities}= Nested Get Severity ${error_logs} 85 # Subtract the WHITELIST from the error_log_severities. 86 ${problem_error_logs}= Evaluate 87 ... list(set($error_log_severities) - set($whitelist)) 88 89 Valid Length problem_error_logs max_length=0 90