18cca7fb8SGeorge Keishing*** Settings *** 28cca7fb8SGeorge KeishingDocumentation Inventory of hardware resources under systems. 38cca7fb8SGeorge Keishing 48cca7fb8SGeorge KeishingResource ../../../lib/bmc_redfish_resource.robot 58cca7fb8SGeorge KeishingResource ../../../lib/bmc_redfish_utils.robot 68cca7fb8SGeorge KeishingResource ../../../lib/logging_utils.robot 78cca7fb8SGeorge KeishingResource ../../../lib/openbmc_ffdc.robot 88fe6024eSGeorge KeishingResource ../../../lib/ipmi_client.robot 9759c6f97SGeorge KeishingLibrary ../../../lib/logging_utils.py 108cca7fb8SGeorge Keishing 11*2f36947bSGeorge KeishingSuite Setup Suite Setup Execution 12*2f36947bSGeorge KeishingSuite Teardown Suite Teardown Execution 13b0a491f2SGeorge KeishingTest Setup Test Setup Execution 148cca7fb8SGeorge KeishingTest Teardown Test Teardown Execution 158cca7fb8SGeorge Keishing 16759c6f97SGeorge Keishing** Variables *** 17759c6f97SGeorge Keishing 18759c6f97SGeorge Keishing${max_num_event_logs} ${200} 19759c6f97SGeorge Keishing 208cca7fb8SGeorge Keishing*** Test Cases *** 218cca7fb8SGeorge Keishing 228cca7fb8SGeorge KeishingEvent Log Check After BMC Reboot 238cca7fb8SGeorge Keishing [Documentation] Check event log after BMC rebooted. 248cca7fb8SGeorge Keishing [Tags] Event_Log_Check_After_BMC_Reboot 258cca7fb8SGeorge Keishing 268cca7fb8SGeorge Keishing Redfish Purge Event Log 278cca7fb8SGeorge Keishing Event Log Should Not Exist 288cca7fb8SGeorge Keishing 298cca7fb8SGeorge Keishing Redfish OBMC Reboot (off) 308cca7fb8SGeorge Keishing 318cca7fb8SGeorge Keishing Redfish.Login 328cca7fb8SGeorge Keishing Wait Until Keyword Succeeds 1 mins 15 secs Redfish.Get ${EVENT_LOG_URI}Entries 338cca7fb8SGeorge Keishing 348cca7fb8SGeorge Keishing Event Log Should Not Exist 358cca7fb8SGeorge Keishing 368cca7fb8SGeorge Keishing 37b0a491f2SGeorge KeishingEvent Log Check After Host Poweron 38b0a491f2SGeorge Keishing [Documentation] Check event log after host has booted. 39b0a491f2SGeorge Keishing [Tags] Event_Log_Check_After_Host_Poweron 40b0a491f2SGeorge Keishing 41b0a491f2SGeorge Keishing Redfish Purge Event Log 42b0a491f2SGeorge Keishing Event Log Should Not Exist 43b0a491f2SGeorge Keishing 44b0a491f2SGeorge Keishing Redfish Power On 45b0a491f2SGeorge Keishing 46b0a491f2SGeorge Keishing Redfish.Login 47b0a491f2SGeorge Keishing Event Log Should Not Exist 48b0a491f2SGeorge Keishing 49b0a491f2SGeorge Keishing 50b0a491f2SGeorge KeishingCreate Test Event Log And Verify 51b0a491f2SGeorge Keishing [Documentation] Create event logs and verify via redfish. 52b0a491f2SGeorge Keishing [Tags] Create_Test_Event_Log_And_Verify 53b0a491f2SGeorge Keishing 54b0a491f2SGeorge Keishing Create Test Error Log 55b0a491f2SGeorge Keishing Event Log Should Exist 56b0a491f2SGeorge Keishing 57b0a491f2SGeorge Keishing 58b0a491f2SGeorge KeishingTest Event Log Persistency On Restart 59b0a491f2SGeorge Keishing [Documentation] Restart logging service and verify event logs. 60b0a491f2SGeorge Keishing [Tags] Test_Event_Log_Persistency_On_Restart 61b0a491f2SGeorge Keishing 62b0a491f2SGeorge Keishing Create Test Error Log 63b0a491f2SGeorge Keishing Event Log Should Exist 64b0a491f2SGeorge Keishing 65b0a491f2SGeorge Keishing BMC Execute Command 66b0a491f2SGeorge Keishing ... systemctl restart xyz.openbmc_project.Logging.service 67b0a491f2SGeorge Keishing Sleep 10s reason=Wait for logging service to restart properly. 68b0a491f2SGeorge Keishing 69b0a491f2SGeorge Keishing Event Log Should Exist 70b0a491f2SGeorge Keishing 71b0a491f2SGeorge Keishing 72b0a491f2SGeorge KeishingTest Event Entry Numbering Reset On Restart 73b0a491f2SGeorge Keishing [Documentation] Restart logging service and verify event logs entry starts 74b0a491f2SGeorge Keishing ... from entry "Id" 1. 75b0a491f2SGeorge Keishing [Tags] Test_Event_Entry_Numbering_Reset_On_Restart 76b0a491f2SGeorge Keishing 77b0a491f2SGeorge Keishing #{ 78b0a491f2SGeorge Keishing # "@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection", 79b0a491f2SGeorge Keishing # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries", 80b0a491f2SGeorge Keishing # "@odata.type": "#LogEntryCollection.LogEntryCollection", 81b0a491f2SGeorge Keishing # "Description": "Collection of System Event Log Entries", 82b0a491f2SGeorge Keishing # "Members": [ 83b0a491f2SGeorge Keishing # { 84b0a491f2SGeorge Keishing # "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 85b0a491f2SGeorge Keishing # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/1", 86b0a491f2SGeorge Keishing # "@odata.type": "#LogEntry.v1_4_0.LogEntry", 87b0a491f2SGeorge Keishing # "Created": "2019-05-29T13:19:27+00:00", 88b0a491f2SGeorge Keishing # "EntryType": "Event", 89b0a491f2SGeorge Keishing # "Id": "1", <----- Event log ID 90b0a491f2SGeorge Keishing # "Message": "org.open_power.Host.Error.Event", 91b0a491f2SGeorge Keishing # "Name": "System DBus Event Log Entry", 92b0a491f2SGeorge Keishing # "Severity": "Critical" 93b0a491f2SGeorge Keishing # } 94b0a491f2SGeorge Keishing # ], 95b0a491f2SGeorge Keishing # "Members@odata.count": 1, 96b0a491f2SGeorge Keishing # "Name": "System Event Log Entries" 97b0a491f2SGeorge Keishing #} 98b0a491f2SGeorge Keishing 99b0a491f2SGeorge Keishing Create Test Error Log 100b0a491f2SGeorge Keishing Create Test Error Log 101b0a491f2SGeorge Keishing Event Log Should Exist 102b0a491f2SGeorge Keishing 103b0a491f2SGeorge Keishing Redfish Purge Event Log 104b0a491f2SGeorge Keishing Event Log Should Not Exist 105b0a491f2SGeorge Keishing 106b0a491f2SGeorge Keishing BMC Execute Command 107b0a491f2SGeorge Keishing ... systemctl restart xyz.openbmc_project.Logging.service 108b0a491f2SGeorge Keishing Sleep 10s reason=Wait for logging service to restart properly. 109b0a491f2SGeorge Keishing 110b0a491f2SGeorge Keishing Create Test Error Log 111b0a491f2SGeorge Keishing ${elogs}= Get Event Logs 112b0a491f2SGeorge Keishing Should Be Equal ${elogs[0]["Id"]} 1 msg=Event log entry is not 1. 113b0a491f2SGeorge Keishing 114b0a491f2SGeorge Keishing 115b0a491f2SGeorge KeishingTest Event Log Persistency On Reboot 116b0a491f2SGeorge Keishing [Documentation] Reboot BMC and verify event log. 117b0a491f2SGeorge Keishing [Tags] Test_Event_Log_Persistency_On_Reboot 118b0a491f2SGeorge Keishing 119b0a491f2SGeorge Keishing Redfish Purge Event Log 120b0a491f2SGeorge Keishing Create Test Error Log 121b0a491f2SGeorge Keishing Event Log Should Exist 122b0a491f2SGeorge Keishing 123b0a491f2SGeorge Keishing Redfish OBMC Reboot (off) 124b0a491f2SGeorge Keishing 125b0a491f2SGeorge Keishing Redfish.Login 126b0a491f2SGeorge Keishing Wait Until Keyword Succeeds 1 mins 15 secs Redfish.Get ${EVENT_LOG_URI}Entries 127b0a491f2SGeorge Keishing 128b0a491f2SGeorge Keishing Event Log Should Exist 129b0a491f2SGeorge Keishing 130b0a491f2SGeorge Keishing 131ddbc88c7SGeorge Keishing# TODO: openbmc/openbmc-test-automation#1789 132ddbc88c7SGeorge KeishingCreate Test Event Log And Verify Resolved Field 133ddbc88c7SGeorge Keishing [Documentation] Create event log and verify "Resolved" field is 0. 134ddbc88c7SGeorge Keishing [Tags] Create_Test_Event_Log_And_Verify_Resolved_Field 135ddbc88c7SGeorge Keishing 136ddbc88c7SGeorge Keishing # Example Error log: 137ddbc88c7SGeorge Keishing # "/xyz/openbmc_project/logging/entry/1": { 138ddbc88c7SGeorge Keishing # "AdditionalData": [ 139ddbc88c7SGeorge Keishing # "STRING=FOO" 140ddbc88c7SGeorge Keishing # ], 141ddbc88c7SGeorge Keishing # "Id": 1, 142ddbc88c7SGeorge Keishing # "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", 143ddbc88c7SGeorge Keishing # "Resolved": 0, 144ddbc88c7SGeorge Keishing # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error", 145ddbc88c7SGeorge Keishing # "Timestamp": 1490817164983, 146ddbc88c7SGeorge Keishing # "associations": [] 147ddbc88c7SGeorge Keishing # }, 148ddbc88c7SGeorge Keishing 149ddbc88c7SGeorge Keishing # To mark an error as resolved, without deleting the error, user would 150ddbc88c7SGeorge Keishing # set this bool property. 151ddbc88c7SGeorge Keishing # In this test context we are making sure "Resolved" field is "0" 152ddbc88c7SGeorge Keishing # by default. 153ddbc88c7SGeorge Keishing 154ddbc88c7SGeorge Keishing Redfish Purge Event Log 155ddbc88c7SGeorge Keishing Create Test Error Log 156ddbc88c7SGeorge Keishing ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY} 157ddbc88c7SGeorge Keishing ${resolved}= Read Attribute ${elog_entry[0]} Resolved 158ddbc88c7SGeorge Keishing Should Be True ${resolved} == 0 159ddbc88c7SGeorge Keishing 160ddbc88c7SGeorge Keishing 161148d08c2SGeorge KeishingCreate Test Event Log And Verify Time Stamp 162148d08c2SGeorge Keishing [Documentation] Create event logs and verify time stamp. 163148d08c2SGeorge Keishing [Tags] Create_Test_Event_Log_And_Verify_Time_Stamp 164148d08c2SGeorge Keishing 165148d08c2SGeorge Keishing #{ 166148d08c2SGeorge Keishing # "@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection", 167148d08c2SGeorge Keishing # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries", 168148d08c2SGeorge Keishing # "@odata.type": "#LogEntryCollection.LogEntryCollection", 169148d08c2SGeorge Keishing # "Description": "Collection of System Event Log Entries", 170148d08c2SGeorge Keishing # "Members": [ 171148d08c2SGeorge Keishing # { 172148d08c2SGeorge Keishing # "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 173148d08c2SGeorge Keishing # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/1", 174148d08c2SGeorge Keishing # "@odata.type": "#LogEntry.v1_4_0.LogEntry", 175148d08c2SGeorge Keishing # "Created": "2019-05-29T13:19:27+00:00", <--- Time stamp 176148d08c2SGeorge Keishing # "EntryType": "Event", 177148d08c2SGeorge Keishing # "Id": "1", 178148d08c2SGeorge Keishing # "Message": "org.open_power.Host.Error.Event", 179148d08c2SGeorge Keishing # "Name": "System DBus Event Log Entry", 180148d08c2SGeorge Keishing # "Severity": "Critical" 181148d08c2SGeorge Keishing # } 182148d08c2SGeorge Keishing # ], 183148d08c2SGeorge Keishing # "Members@odata.count": 1, 184148d08c2SGeorge Keishing # "Name": "System Event Log Entries" 185148d08c2SGeorge Keishing #} 186148d08c2SGeorge Keishing 187148d08c2SGeorge Keishing Redfish Purge Event Log 188148d08c2SGeorge Keishing 189148d08c2SGeorge Keishing Create Test Error Log 190148d08c2SGeorge Keishing Sleep 2s 191148d08c2SGeorge Keishing Create Test Error Log 192148d08c2SGeorge Keishing 193148d08c2SGeorge Keishing ${elog_entry}= Get Event Logs 194148d08c2SGeorge Keishing 195148d08c2SGeorge Keishing # The event log generated is associated with the epoc time and unique 196148d08c2SGeorge Keishing # for every error and in increasing time stamp. 197148d08c2SGeorge Keishing ${time_stamp1}= Convert Date ${elog_entry[0]["Created"]} epoch 198148d08c2SGeorge Keishing ${time_stamp2}= Convert Date ${elog_entry[1]["Created"]} epoch 199148d08c2SGeorge Keishing 200148d08c2SGeorge Keishing Should Be True ${time_stamp2} > ${time_stamp1} 201148d08c2SGeorge Keishing 202148d08c2SGeorge Keishing 203ddbc88c7SGeorge KeishingVerify IPMI SEL Delete 204ddbc88c7SGeorge Keishing [Documentation] Verify IPMI SEL delete operation. 205ddbc88c7SGeorge Keishing [Tags] Verify_IPMI_SEL_Delete 206ddbc88c7SGeorge Keishing 207ddbc88c7SGeorge Keishing Redfish Purge Event Log 208ddbc88c7SGeorge Keishing Create Test Error Log 209ddbc88c7SGeorge Keishing 210ddbc88c7SGeorge Keishing ${sel_list}= Run IPMI Standard Command sel list 211ddbc88c7SGeorge Keishing Should Not Be Equal As Strings ${sel_list} SEL has no entries 212ddbc88c7SGeorge Keishing 213ddbc88c7SGeorge Keishing # Example of SEL List: 214ddbc88c7SGeorge Keishing # 4 | 04/21/2017 | 10:51:16 | System Event #0x01 | Undetermined system hardware failure | Asserted 215ddbc88c7SGeorge Keishing 216ddbc88c7SGeorge Keishing ${sel_entry}= Fetch from Left ${sel_list} | 217ddbc88c7SGeorge Keishing ${sel_entry}= Evaluate $sel_entry.replace(' ','') 218ddbc88c7SGeorge Keishing ${sel_entry}= Convert To Integer 0x${sel_entry} 219ddbc88c7SGeorge Keishing 220ddbc88c7SGeorge Keishing ${sel_delete}= Run IPMI Standard Command sel delete ${sel_entry} 221ddbc88c7SGeorge Keishing Should Be Equal As Strings ${sel_delete} Deleted entry ${sel_entry} 222ddbc88c7SGeorge Keishing ... case_insensitive=True 223ddbc88c7SGeorge Keishing 224ddbc88c7SGeorge Keishing ${sel_list}= Run IPMI Standard Command sel list 225ddbc88c7SGeorge Keishing Should Be Equal As Strings ${sel_list} SEL has no entries 226ddbc88c7SGeorge Keishing ... case_insensitive=True 227ddbc88c7SGeorge Keishing 228ddbc88c7SGeorge Keishing 2290b76e421SGeorge KeishingDelete Non Existing SEL Event Entry 2300b76e421SGeorge Keishing [Documentation] Delete non existing SEL event entry. 2310b76e421SGeorge Keishing [Tags] Delete_Non_Existing_SEL_Event_Entry 2320b76e421SGeorge Keishing 2330b76e421SGeorge Keishing ${sel_delete}= Run Keyword And Expect Error * 2340b76e421SGeorge Keishing ... Run IPMI Standard Command sel delete 100 2350b76e421SGeorge Keishing Should Contain ${sel_delete} Unable to delete entry 2360b76e421SGeorge Keishing ... case_insensitive=True 2370b76e421SGeorge Keishing 2380b76e421SGeorge Keishing 2390b76e421SGeorge KeishingDelete Invalid SEL Event Entry 2400b76e421SGeorge Keishing [Documentation] Delete invalid SEL event entry. 2410b76e421SGeorge Keishing [Tags] Delete_Invalid_SEL_Event_Entry 2420b76e421SGeorge Keishing 2430b76e421SGeorge Keishing ${sel_delete}= Run Keyword And Expect Error * 2440b76e421SGeorge Keishing ... Run IPMI Standard Command sel delete abc 2450b76e421SGeorge Keishing Should Contain ${sel_delete} Given SEL ID 'abc' is invalid 2460b76e421SGeorge Keishing ... case_insensitive=True 2470b76e421SGeorge Keishing 2480b76e421SGeorge Keishing 2490b76e421SGeorge KeishingVerify IPMI SEL Event Entries 2500b76e421SGeorge Keishing [Documentation] Verify IPMI SEL's entries info. 2510b76e421SGeorge Keishing [Tags] Verify_IPMI_SEL_Event_Entries 2520b76e421SGeorge Keishing 2530b76e421SGeorge Keishing # Generate error logs of random count. 2540b76e421SGeorge Keishing ${count}= Evaluate random.randint(1, 5) modules=random 2550b76e421SGeorge Keishing Repeat Keyword ${count} Create Test Error Log 2560b76e421SGeorge Keishing 2570b76e421SGeorge Keishing ${sel_entries_count}= Get IPMI SEL Setting Entries 2580b76e421SGeorge Keishing Should Be Equal As Strings ${sel_entries_count} ${count} 2590b76e421SGeorge Keishing 2600b76e421SGeorge Keishing 2610b76e421SGeorge KeishingVerify IPMI SEL Event Last Add Time 2620b76e421SGeorge Keishing [Documentation] Verify IPMI SEL's last added timestamp. 2630b76e421SGeorge Keishing [Tags] Verify_IPMI_SEL_Event_Last_Add_Time 2640b76e421SGeorge Keishing 2650b76e421SGeorge Keishing Create Test Error Log 2660b76e421SGeorge Keishing ${sel_time}= Run IPMI Standard Command sel time get 2670b76e421SGeorge Keishing ${sel_time}= Convert Date ${sel_time} 2680b76e421SGeorge Keishing ... date_format=%m/%d/%Y %H:%M:%S exclude_millis=True 2690b76e421SGeorge Keishing 2700b76e421SGeorge Keishing ${sel_last_add_time}= Get IPMI SEL Setting Last Add Time 2710b76e421SGeorge Keishing ${sel_last_add_time}= Convert Date ${sel_last_add_time} 2720b76e421SGeorge Keishing ... date_format=%m/%d/%Y %H:%M:%S exclude_millis=True 2730b76e421SGeorge Keishing 2740b76e421SGeorge Keishing ${time_diff}= 2750b76e421SGeorge Keishing ... Subtract Date From Date ${sel_last_add_time} ${sel_time} 2760b76e421SGeorge Keishing 2770b76e421SGeorge Keishing # Verify if the delay in current time check and last add SEL time 2780b76e421SGeorge Keishing # is less or equals to 2 seconds. 2790b76e421SGeorge Keishing Should Be True ${time_diff} <= 2 2800b76e421SGeorge Keishing 2810b76e421SGeorge Keishing 282d35b5319SGeorge KeishingCreate Test Event Log And Delete 283d35b5319SGeorge Keishing [Documentation] Create an event log and delete it. 284d35b5319SGeorge Keishing [Tags] Create_Test_Event_Log_And_Delete 285d35b5319SGeorge Keishing 286d35b5319SGeorge Keishing Create Test Error Log 287d35b5319SGeorge Keishing Redfish Purge Event Log 288d35b5319SGeorge Keishing Event Log Should Not Exist 289d35b5319SGeorge Keishing 290d35b5319SGeorge Keishing 291d35b5319SGeorge KeishingCreate Multiple Test Event Logs And Delete All 292d35b5319SGeorge Keishing [Documentation] Create multiple event logs and delete all. 293d35b5319SGeorge Keishing [Tags] Create_Multiple_Test_Event_Logs_And_Delete_All 294d35b5319SGeorge Keishing 295d35b5319SGeorge Keishing Create Test Error Log 296d35b5319SGeorge Keishing Create Test Error Log 297d35b5319SGeorge Keishing Create Test Error Log 298d35b5319SGeorge Keishing Redfish Purge Event Log 299d35b5319SGeorge Keishing Event Log Should Not Exist 300d35b5319SGeorge Keishing 301d35b5319SGeorge Keishing 302ddbc88c7SGeorge Keishing# TODO: openbmc/openbmc-test-automation#1789 303ddbc88c7SGeorge KeishingCreate Two Test Event Logs And Delete One 304ddbc88c7SGeorge Keishing [Documentation] Create two event logs and delete the first entry. 305ddbc88c7SGeorge Keishing [Tags] Create_Two_Test_Eevent_Logs_And_Delete_One 306ddbc88c7SGeorge Keishing 307ddbc88c7SGeorge Keishing Redfish Purge Event Log 308ddbc88c7SGeorge Keishing Create Test Error Log 309ddbc88c7SGeorge Keishing ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY} 310ddbc88c7SGeorge Keishing Create Test Error Log 311ddbc88c7SGeorge Keishing Delete Error log Entry ${elog_entry[0]} 312ddbc88c7SGeorge Keishing ${resp}= OpenBMC Get Request ${elog_entry[0]} 313ddbc88c7SGeorge Keishing Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND} 314ddbc88c7SGeorge Keishing 315ddbc88c7SGeorge Keishing 316d35b5319SGeorge KeishingVerify Watchdog Timedout Event 317d35b5319SGeorge Keishing [Documentation] Trigger watchdog timed out and verify event log generated. 318d35b5319SGeorge Keishing [Tags] Verify_Watchdog_Timedout_Event 319d35b5319SGeorge Keishing 320d35b5319SGeorge Keishing Redfish Power On 321d35b5319SGeorge Keishing 322d35b5319SGeorge Keishing # Clear errors if there are any. 323d35b5319SGeorge Keishing Redfish.Login 324d35b5319SGeorge Keishing Redfish Purge Event Log 325d35b5319SGeorge Keishing 326d35b5319SGeorge Keishing Trigger Host Watchdog Error 327d35b5319SGeorge Keishing 328d35b5319SGeorge Keishing # Logging takes time to generate the timeout error. 329d35b5319SGeorge Keishing Wait Until Keyword Succeeds 2 min 30 sec 330d35b5319SGeorge Keishing ... Verify Watchdog EventLog Content 331d35b5319SGeorge Keishing 332d35b5319SGeorge Keishing Redfish Power Off 333d35b5319SGeorge Keishing 334d35b5319SGeorge Keishing 335d35b5319SGeorge KeishingVerify Event Logs Capping 336d35b5319SGeorge Keishing [Documentation] Verify event logs capping. 337d35b5319SGeorge Keishing [Tags] Verify_Event_Logs_Capping 338d35b5319SGeorge Keishing 339d35b5319SGeorge Keishing Redfish Purge Event Log 340d35b5319SGeorge Keishing 341d35b5319SGeorge Keishing ${cmd}= Catenate for i in {1..201}; do /tmp/tarball/bin/logging-test -c 342d2d2bd2bSGeorge Keishing ... AutoTestSimple;sleep 1;done 343d35b5319SGeorge Keishing BMC Execute Command ${cmd} 344d35b5319SGeorge Keishing 345d35b5319SGeorge Keishing ${elogs}= Get Event Logs 346d35b5319SGeorge Keishing ${count}= Get Length ${elogs} 347d35b5319SGeorge Keishing Run Keyword If ${count} > 200 348d35b5319SGeorge Keishing ... Fail Error logs created exceeded max capacity 200. 349d35b5319SGeorge Keishing 350d35b5319SGeorge Keishing 351759c6f97SGeorge KeishingTest Event Log Wrapping 352759c6f97SGeorge Keishing [Documentation] Verify event log entries wraps when 200 max cap is reached. 353759c6f97SGeorge Keishing [Tags] Test_Event_Log_Wrapping 354759c6f97SGeorge Keishing 355759c6f97SGeorge Keishing # Restarting logging service in order to clear logs and get the next log 356759c6f97SGeorge Keishing # ID set to 1. 357759c6f97SGeorge Keishing BMC Execute Command 358759c6f97SGeorge Keishing ... systemctl restart xyz.openbmc_project.Logging.service 359759c6f97SGeorge Keishing Sleep 10s reason=Wait for logging service to restart properly. 360759c6f97SGeorge Keishing 361759c6f97SGeorge Keishing # Create ${max_num_event_logs} event logs. 362759c6f97SGeorge Keishing ${cmd}= Catenate for i in {1..${max_num_event_logs}}; do /tmp/tarball/bin/logging-test -c 363d2d2bd2bSGeorge Keishing ... AutoTestSimple;sleep 1;done 364759c6f97SGeorge Keishing BMC Execute Command ${cmd} 365759c6f97SGeorge Keishing 366759c6f97SGeorge Keishing # Verify that event logs with IDs 1 and ${max_num_event_logs} exist. 367759c6f97SGeorge Keishing ${event_log}= Get Event Logs 368759c6f97SGeorge Keishing 369759c6f97SGeorge Keishing ${log_entries}= Filter Struct ${event_log} [('Id', '1')] 37039c00518SMichael Walsh Rprint Vars log_entries 371759c6f97SGeorge Keishing Should Be Equal As Strings ${log_entries[0]["Id"]} 1 372759c6f97SGeorge Keishing 373759c6f97SGeorge Keishing ${log_entries}= Filter Struct ${event_log} [('Id', '${max_num_event_logs}')] 37439c00518SMichael Walsh Rprint Vars log_entries 375759c6f97SGeorge Keishing Should Be Equal As Strings ${log_entries[0]["Id"]} ${max_num_event_logs} 376759c6f97SGeorge Keishing 377759c6f97SGeorge Keishing # Create event log and verify the entry ID, ${max_num_event_logs + 1}. 378759c6f97SGeorge Keishing ${next_event_log_id}= Set Variable ${max_num_event_logs + 1} 379759c6f97SGeorge Keishing 380759c6f97SGeorge Keishing Create Test Error Log 381759c6f97SGeorge Keishing 382759c6f97SGeorge Keishing ${event_log}= Get Event Logs 383759c6f97SGeorge Keishing 384759c6f97SGeorge Keishing ${log_entries}= Filter Struct ${event_log} [('Id', '${next_event_log_id}')] 38539c00518SMichael Walsh Rprint Vars log_entries 386759c6f97SGeorge Keishing Should Be Equal As Strings ${log_entries[0]["Id"]} ${next_event_log_id} 387759c6f97SGeorge Keishing 388759c6f97SGeorge Keishing # Event log 1 should be wrapped. 389759c6f97SGeorge Keishing ${log_entries}= Filter Struct ${event_log} [('Id', '1')] 39039c00518SMichael Walsh Rprint Vars log_entries 391759c6f97SGeorge Keishing 392759c6f97SGeorge Keishing ${length_log_entries} Get Length ${log_entries} 393759c6f97SGeorge Keishing Should Be Equal As Integers ${length_log_entries} 0 394759c6f97SGeorge Keishing ... msg=The event log should have wrapped such that entry ID 1 is now purged. 395759c6f97SGeorge Keishing 396759c6f97SGeorge Keishing 3978cca7fb8SGeorge Keishing*** Keywords *** 3988cca7fb8SGeorge Keishing 399*2f36947bSGeorge KeishingSuite Setup Execution 400*2f36947bSGeorge Keishing [Documentation] Do test case setup tasks. 401*2f36947bSGeorge Keishing 402*2f36947bSGeorge Keishing Redfish.Login 403*2f36947bSGeorge Keishing 404*2f36947bSGeorge Keishing Redfish Purge Event Log 405*2f36947bSGeorge Keishing 406*2f36947bSGeorge Keishing ${status}= Run Keyword And Return Status Logging Test Binary Exist 407*2f36947bSGeorge Keishing Run Keyword If ${status} == ${False} Install Tarball 408*2f36947bSGeorge Keishing 409*2f36947bSGeorge Keishing 4108cca7fb8SGeorge KeishingSuite Teardown Execution 4118cca7fb8SGeorge Keishing [Documentation] Do the post suite teardown. 4128cca7fb8SGeorge Keishing 4138cca7fb8SGeorge Keishing Redfish.Logout 4148cca7fb8SGeorge Keishing 4158cca7fb8SGeorge Keishing 416b0a491f2SGeorge KeishingTest Setup Execution 4178cca7fb8SGeorge Keishing [Documentation] Do test case setup tasks. 4188cca7fb8SGeorge Keishing 4190b76e421SGeorge Keishing Redfish Purge Event Log 4200b76e421SGeorge Keishing 4218cca7fb8SGeorge Keishing ${status}= Run Keyword And Return Status Logging Test Binary Exist 4228cca7fb8SGeorge Keishing Run Keyword If ${status} == ${False} Install Tarball 4238cca7fb8SGeorge Keishing 4248cca7fb8SGeorge Keishing 4258cca7fb8SGeorge KeishingTest Teardown Execution 4268cca7fb8SGeorge Keishing [Documentation] Do the post test teardown. 4278cca7fb8SGeorge Keishing 4288cca7fb8SGeorge Keishing FFDC On Test Case Fail 429e5c5ebdfSGeorge Keishing Redfish.Login 430b0a491f2SGeorge Keishing Redfish Purge Event Log 4318cca7fb8SGeorge Keishing 4328cca7fb8SGeorge Keishing 4338cca7fb8SGeorge KeishingEvent Log Should Not Exist 4348cca7fb8SGeorge Keishing [Documentation] Event log entries should not exist. 4358cca7fb8SGeorge Keishing 4368cca7fb8SGeorge Keishing ${elogs}= Get Event Logs 4378cca7fb8SGeorge Keishing Should Be Empty ${elogs} msg=System event log entry is not empty. 438b0a491f2SGeorge Keishing 439b0a491f2SGeorge Keishing 440b0a491f2SGeorge KeishingEvent Log Should Exist 441b0a491f2SGeorge Keishing [Documentation] Event log entries should exist. 442b0a491f2SGeorge Keishing 443b0a491f2SGeorge Keishing ${elogs}= Get Event Logs 444b0a491f2SGeorge Keishing Should Not Be Empty ${elogs} msg=System event log entry is not empty. 445d35b5319SGeorge Keishing 446d35b5319SGeorge Keishing 447d35b5319SGeorge KeishingVerify Watchdog EventLog Content 448d35b5319SGeorge Keishing [Documentation] Verify watchdog event log content. 449d35b5319SGeorge Keishing 450d35b5319SGeorge Keishing # Example: 451d35b5319SGeorge Keishing # { 452d35b5319SGeorge Keishing # "@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry", 453d35b5319SGeorge Keishing # "@odata.id": "/redfish/v1/Systems/system/LogServices/EventLog/Entries/31", 454d35b5319SGeorge Keishing # "@odata.type": "#LogEntry.v1_4_0.LogEntry", 455d35b5319SGeorge Keishing # "Created": "2019-05-31T18:41:33+00:00", 456d35b5319SGeorge Keishing # "EntryType": "Event", 457d35b5319SGeorge Keishing # "Id": "31", 458d35b5319SGeorge Keishing # "Message": "org.open_power.Host.Boot.Error.WatchdogTimedOut", 459d35b5319SGeorge Keishing # "Name": "System DBus Event Log Entry", 460d35b5319SGeorge Keishing # "Severity": "Critical" 461d35b5319SGeorge Keishing # } 462d35b5319SGeorge Keishing 463d35b5319SGeorge Keishing ${elog}= Get Event Logs 464d35b5319SGeorge Keishing Should Be Equal As Strings 465d35b5319SGeorge Keishing ... ${elog[0]["Message"]} org.open_power.Host.Boot.Error.WatchdogTimedOut 466d35b5319SGeorge Keishing ... msg=Watchdog timeout event log was not found. 467d35b5319SGeorge Keishing Should Be Equal As Strings 468d35b5319SGeorge Keishing ... ${elog[0]["Severity"]} Critical 469d35b5319SGeorge Keishing ... msg=Watchdog timeout severity unexpected value. 470