blob: 49b5f30291172c219e7fc17c7dfa544229b9b160 [file] [log] [blame]
Rahul Maheshwari712baaf2019-07-29 23:52:36 -05001*** Settings ***
2
3Documentation Module to test IPMI SEL functionality.
4Resource ../lib/ipmi_client.robot
5Resource ../lib/openbmc_ffdc.robot
George Keishing43909f32024-08-20 22:08:02 +05306Resource ../lib/logging_utils.robot
Vidya-Kalasappanavard7690752024-04-30 04:00:15 -05007
chithragd7e009b2022-03-01 12:20:57 +00008Library ../lib/ipmi_utils.py
George Keishing43909f32024-08-20 22:08:02 +05309Library ../lib/logging_utils.py
Vidya-Kalasappanavard7690752024-04-30 04:00:15 -050010
Tony Lee160aa872020-02-12 16:11:39 +080011Variables ../data/ipmi_raw_cmd_table.py
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050012
chithragd7e009b2022-03-01 12:20:57 +000013Test Setup Test Setup Execution
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050014Test Teardown FFDC On Test Case Fail
15
Matt Fischer6fb70d92023-10-24 19:06:33 -060016Test Tags IPMI_SEL
George Keishing87dc4422023-10-20 12:56:30 +053017
ganesanb11fe27f2022-08-24 10:00:17 +000018*** Variables ***
19
20# Based on 13th byte of add SEL entry command as per IPMI spec
21# event_dir and event_type variable value needs to be given.
22${sel_no_entry_msg} SEL has no entries
23${event_type} Lower Non-critical going low
24${event_dir} Asserted
25
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050026*** Test Cases ***
27
28Verify IPMI SEL Version
29 [Documentation] Verify IPMI SEL's version info.
30 [Tags] Verify_IPMI_SEL_Version
31 ${version_info}= Get IPMI SEL Setting Version
32 ${setting_status}= Fetch From Left ${version_info} (
33 ${setting_status}= Evaluate $setting_status.replace(' ','')
34
35 Should Be True ${setting_status} >= 1.5
36 Should Contain ${version_info} v2 compliant case_insensitive=True
37
38
39Verify Empty SEL
George Keishingd3498672022-04-08 09:00:42 -050040 [Documentation] Verify IPMI sel clear command clears the SEL entry.
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050041 [Tags] Verify_Empty_SEL
George Keishingdc656672020-02-25 07:45:16 -060042
Nandish-Matti5df06fa2023-03-21 07:26:44 -050043 Redfish Power Off stack_mode=skip
44
George Keishing3c230882022-04-29 03:20:24 -050045 # Generate an error log and verify there is one at least.
George Keishingd3498672022-04-08 09:00:42 -050046 Create Test PEL Log
47 ${resp}= Run IPMI Standard Command sel elist last 1
48 Log To Console ${resp}
49
50 Should Contain Any ${resp} system hardware failure Asserted
51 ... msg=Add SEL Entry failed.
52
53 # Send SEL clear command and verify if it really clears up the SEL entry.
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050054 Run IPMI Standard Command sel clear
Vidya-Kalasappanavar03d4f0a2024-05-15 05:24:30 -050055
56 # Added a delay for IPMI SEL to clear completely.
George Keishingdc656672020-02-25 07:45:16 -060057 Sleep 5s
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050058
59 ${resp}= Run IPMI Standard Command sel list
Vidya-Kalasappanavar03d4f0a2024-05-15 05:24:30 -050060
61 # After executing the IPMI SEL clear command, there will be an informational
62 # SEL entry in the IPMI SEL. Therefore, checking if the IPMI SEL count is 1
63 # after clearing SEL.
64
65 ${sel_count}= Get Line Count ${resp}
66 Should Be Equal As Strings ${sel_count} 1
Rahul Maheshwari712baaf2019-07-29 23:52:36 -050067
Tony Lee160aa872020-02-12 16:11:39 +080068
69Verify Add SEL Entry
70 [Documentation] Verify add SEL entry.
71 [Tags] Verify_Add_SEL_Entry
72 [Teardown] Run Keywords FFDC On Test Case Fail AND Run IPMI Standard Command sel clear
73
George Keishingbd8d6ba2021-11-17 01:53:51 -060074 # The IPMI raw command to generate Temp sensor error is no longer working.
75 # Our aim is to check if the SEL command is listed in IPMI or not.
chithragd7e009b2022-03-01 12:20:57 +000076 # Original keyword "Create User Defined SEL" for reference
George Keishingbd8d6ba2021-11-17 01:53:51 -060077 Create Test PEL Log
78
Tony Lee160aa872020-02-12 16:11:39 +080079 # Get last SEL entry.
80 ${resp}= Run IPMI Standard Command sel elist last 1
George Keishingbd8d6ba2021-11-17 01:53:51 -060081 # output:
82 # 1 | 11/17/2021 | 07:49:20 | System Event #0x01 | Undetermined system hardware failure | Asserted
83 Run Keywords Should Contain ${resp} system hardware failure AND
84 ... Should Contain ${resp} Asserted msg=Add SEL Entry failed.
Tony Lee160aa872020-02-12 16:11:39 +080085
86
chithragd7e009b2022-03-01 12:20:57 +000087Verify Add SEL Entry For Any Random Sensor
88 [Documentation] Create SEL entry and verify for any given random sensor.
89 [Tags] Verify_Add_SEL_Entry_For_Any_Random_Sensor
90 [Teardown] Run Keywords FFDC On Test Case Fail AND Run IPMI Standard Command sel clear
91
92 # Get any sensor available from sensor list.
ganesanbd282b562022-05-11 20:30:52 +053093 ${sensor_name}= Fetch One Threshold Sensor From Sensor List
chithragd7e009b2022-03-01 12:20:57 +000094
95 # Get Sensor ID from SDR get "sensor".
96 ${sensor_data1}= Fetch Sensor Details From SDR ${sensor_name} Sensor ID
ganesanb11fe27f2022-08-24 10:00:17 +000097 ${sensor_number}= Get Bytes From SDR Sensor ${sensor_data1}
chithragd7e009b2022-03-01 12:20:57 +000098
99 # Get Sensor Type from SDR get "sensor".
100 ${sensor_data2}= Fetch Sensor Details From SDR ${sensor_name} Sensor Type (Threshold)
ganesanb11fe27f2022-08-24 10:00:17 +0000101 ${sensor_type_id}= Get Bytes From SDR Sensor ${sensor_data2}
chithragd7e009b2022-03-01 12:20:57 +0000102
103 # Add SEL Entry.
104 # ${sel_entry_id} is the Record ID for added record (LSB First).
105 ${sel_create_resp}= Create SEL ${sensor_type_id} ${sensor_number}
106 ${sel_entry_id}= Split String ${sel_create_resp}
107
108 # Get last SEL entry.
ganesanb11fe27f2022-08-24 10:00:17 +0000109 ${resp}= Run IPMI Standard Command sel elist
110 Should Not Contain ${resp} ${sel_no_entry_msg}
chithragd7e009b2022-03-01 12:20:57 +0000111
ganesanb11fe27f2022-08-24 10:00:17 +0000112 # Output of the Sel elist.
chithragd7e009b2022-03-01 12:20:57 +0000113 # Below example is a continuous line statement.
114 # N | MM/DD/YYYY | HH:MM:SS | Sensor_Type Sensor_Name |
115 # Lower Non-critical going low | Asserted | Reading 0.
116
ganesanb11fe27f2022-08-24 10:00:17 +0000117 ${get_sel_entry}= Get Lines Containing String ${resp} ${sensor_name}
118 ${sel_entry}= Get Lines Containing String ${get_sel_entry} ${event_type}
119 Should Contain ${sel_entry} ${event_dir} msg=Add SEL Entry failed.
chithragd7e009b2022-03-01 12:20:57 +0000120
121 # Get SEL Entry IPMI Raw Command.
122 ${entry}= Get SEL Entry Via IPMI ${sel_entry_id[0]} ${sel_entry_id[1]}
123
124 # Compare SEL Record ID.
125 ${sel_record_id}= Set Variable ${entry[2:4]}
126 Should Be Equal ${sel_record_id} ${sel_entry_id}
127
128 # Sensor type compare.
129 Should Be Equal ${sensor_type_id} ${entry[12]}
130
131 # Sensor number compare.
132 Should Be Equal ${sensor_number} ${entry[13]}
133
134
Tony Lee160aa872020-02-12 16:11:39 +0800135Verify Reserve SEL
136 [Documentation] Verify reserve SEL.
137 [Tags] Verify_Reserve_SEL
138
ishwaryamathim372cd862023-11-14 18:12:23 +0000139 ${resp}= Run IPMI Command
140 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
Tony Lee160aa872020-02-12 16:11:39 +0800141 ${reserve_id}= Split String ${resp}
142
143 # Execute clear SEL raw command with Reservation ID.
144 # Command will not execute unless the correct Reservation ID value is provided.
ishwaryamathim372cd862023-11-14 18:12:23 +0000145 Run IPMI Command
146 ... 0x0a 0x47 0x${reserve_id[0]} 0x${reserve_id[1]} 0x43 0x4c 0x52 0xaa
Tony Lee160aa872020-02-12 16:11:39 +0800147
chithragd7e009b2022-03-01 12:20:57 +0000148 # Check SEL list.
149 ${resp}= Run IPMI Standard Command sel list
150 Should Contain ${resp} SEL has no entries case_insensitive=True
151
152
153Verify IPMI SEL Most Recent Addition Timestamp
154 [Documentation] Verify most recent addition timestamp in SEL info.
155 [Tags] Verify_IPMI_SEL_Most_Recent_Addition_Timestamp
156
157 # Get Most Recent Addition Timestamp from SEL Info.
158 ${addition_timestamp}= Get Most Recent Addition Timestamp From SEL Info
159
160 IF '${addition_timestamp}' != 'ffffffff'
161 # Convert to epoch timestamp.
162 ${epoch_addition}= Convert To Integer ${addition_timestamp} 16
163
164 # Get SEL List last 1 entry date and time and convert to epoch timestamp.
165 ${sel_epoch_time}= Get SEL Elist Last Entry Date In Epoch
166
167 # Compare epoch of sel entry timestamp and last addition timestamp.
168 ${diff}= Evaluate int(${sel_epoch_time}) - int(${epoch_addition})
169 Should Be True ${diff}<=600
170
171 ELSE
172 # Get any Sensor available from Sensor list
ganesanbd282b562022-05-11 20:30:52 +0530173 ${sensor_name}= Fetch One Threshold Sensor From Sensor List
chithragd7e009b2022-03-01 12:20:57 +0000174
175 # Get Sensor ID from SDR Get "sensor" and Identify Sensor ID.
176 ${sensor_data1}= Fetch Sensor Details From SDR ${sensor_name} Sensor ID
ganesanb11fe27f2022-08-24 10:00:17 +0000177 ${sensor_number}= Get Bytes From SDR Sensor ${sensor_data1}
chithragd7e009b2022-03-01 12:20:57 +0000178
179 # Get Sensor Type from SDR Get "sensor" and Identify Sensor Type.
180 ${sensor_data2}= Fetch Sensor Details From SDR ${sensor_name} Sensor Type (Threshold)
ganesanb11fe27f2022-08-24 10:00:17 +0000181 ${sensor_type_id}= Get Bytes From SDR Sensor ${sensor_data2}
chithragd7e009b2022-03-01 12:20:57 +0000182
183 # Add SEL Entry.
184 ${sel_create_resp}= Create SEL ${sensor_type_id} ${sensor_number}
185
186 # Get SEL List last 1 entry date and time and convert to epoch timestamp.
187 ${sel_epoch_time}= Get SEL Elist Last Entry Date In Epoch
188
189 # Get Most Recent Addition Timestamp from SEL Info.
190 ${addition}= Get Most Recent Addition Timestamp From SEL Info
191 ${epoch_addition}= Convert To Integer ${addition} 16
192
193 # Compare epoch of sel entry timestamp and last addition timestamp.
194 ${diff}= Evaluate int(${epoch_addition}) - int(${sel_epoch_time})
195 Should Be True ${diff}<=5
196 END
197
198
199Verify IPMI SEL Most Recent Erase Timestamp
200 [Documentation] Verify Most Recent Erase Timestamp In SEL Info with current
201 ... BMC epoch timestamp.
202 [Tags] Verify_IPMI_SEL_Most_Recent_Erase_Timestamp
203
204 # Get BMC Current Time.
205 ${bmc_epoch_time}= Get BMC Time In Epoch
206
207 # Get Most Recent Addition Timestamp from SEL Info.
208 ${addition_timestamp}= Get Most Recent Addition Timestamp From SEL Info
209 Should Be Equal ${addition_timestamp} ffffffff
210
211 # Get Most Recent Erase Timestamp from SEL Info.
212 ${erase_timestamp}= Get Most Recent Erase Timestamp From SEL Info
213 ${epoch_erase}= Convert To Integer ${erase_timestamp} 16
214
215 # Compare epoch of erase timestamp and current bmc timestamp.
216 ${diff}= Evaluate int(${epoch_erase}) - int(${bmc_epoch_time})
217 Should Be True ${diff}<=5
218
219
220Verify Clear SEL With Invalid Reservation ID
221 [Documentation] Verify clear SEL After generating another reserve ID.
222 [Tags] Verify_Clear_SEL_With_Invalid_Reservation_ID
223
224 # Reserve Sel command - 1.
ishwaryamathim372cd862023-11-14 18:12:23 +0000225 ${resp}= Run IPMI Command
226 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
chithragd7e009b2022-03-01 12:20:57 +0000227 ${reserve_id}= Split String ${resp}
228
229 # Reserve Sel command - 2.
ishwaryamathim372cd862023-11-14 18:12:23 +0000230 ${resp}= Run IPMI Command
231 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
chithragd7e009b2022-03-01 12:20:57 +0000232
233 ${cmd}= Catenate ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][0]} 0x${reserve_id[0]}
234 ... 0x${reserve_id[1]} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][1]}
235
236 # Clear SEL command.
237 ${clear_resp}= Run Keyword and Expect Error *${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][4]}*
ishwaryamathim372cd862023-11-14 18:12:23 +0000238 ... Run IPMI Command ${cmd}
chithragd7e009b2022-03-01 12:20:57 +0000239 Should Contain ${clear_resp} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][5]}
240
241
242Verify Reservation ID Erasure Status
243 [Documentation] Verify Erasure status by clearing SEL with Reserve ID and verify the response byte,
244 ... whether erasure status is updated in clear sel command response data using new Reserve ID.
245 [Tags] Verify_Reservation_ID_Erasure_Status
246
247 # Generate Reserve ID 1.
ishwaryamathim372cd862023-11-14 18:12:23 +0000248 ${resp}= Run IPMI Command
249 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
chithragd7e009b2022-03-01 12:20:57 +0000250 ${reserve_id}= Split String ${resp}
251
252 ${cmd1}= Catenate ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][0]} 0x${reserve_id[0]}
253 ... 0x${reserve_id[1]} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][1]}
254
255 # Execute clear SEL raw command with Reservation ID.
256 # Command will not execute unless the correct Reservation ID value is provided.
ishwaryamathim372cd862023-11-14 18:12:23 +0000257 Run IPMI Command ${cmd1}
chithragd7e009b2022-03-01 12:20:57 +0000258
259 # Generate Reserver ID 2.
ishwaryamathim372cd862023-11-14 18:12:23 +0000260 ${resp}= Run IPMI Command
261 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
chithragd7e009b2022-03-01 12:20:57 +0000262 ${reserve_id}= Split String ${resp}
263
264 ${cmd2}= Catenate ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][0]} 0x${reserve_id[0]}
265 ... 0x${reserve_id[1]} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][6]}
266
267 # Check the Erasure status of Clear SEL.
ishwaryamathim372cd862023-11-14 18:12:23 +0000268 ${data}= Run IPMI Command ${cmd2}
chithragd7e009b2022-03-01 12:20:57 +0000269
270 # 00 - Erasure in Progress , 01 - Erasure Complete.
271 Should Contain Any ${data} 00 01
272
273
274Verify Clear SEL After Cold Reset
275 [Documentation] Verify Clear SEL for a reserve SEL ID after Cold Reset.
276 [Tags] Verify_Clear_SEL_After_Cold_Reset
277
278 # Reserve Sel command.
ishwaryamathim372cd862023-11-14 18:12:23 +0000279 ${resp}= Run IPMI Command
280 ... ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
chithragd7e009b2022-03-01 12:20:57 +0000281 ${reserve_id}= Split String ${resp}
282
283 # Run Cold Reset.
ganesanbd282b562022-05-11 20:30:52 +0530284 IPMI MC Reset Cold (off)
chithragd7e009b2022-03-01 12:20:57 +0000285
286 ${cmd}= Catenate ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][0]} 0x${reserve_id[0]}
287 ... 0x${reserve_id[1]} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][1]}
288
289 # Clear SEL command.
290 ${clear_resp}= Run Keyword and Expect Error *${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][5]}*
ishwaryamathim372cd862023-11-14 18:12:23 +0000291 ... Run IPMI Command ${cmd}
chithragd7e009b2022-03-01 12:20:57 +0000292
293 Should Contain ${clear_resp} ${IPMI_RAW_CMD['SEL_entry']['Clear_SEL'][4]}
294
Tony Lee160aa872020-02-12 16:11:39 +0800295
Vidya-Kalasappanavard7690752024-04-30 04:00:15 -0500296Delete Non Existing SEL Event Entry
297 [Documentation] Delete non existing SEL event entry.
298 [Tags] Delete_Non_Existing_SEL_Event_Entry
299
300 ${sel_delete}= Run Keyword And Expect Error *
301 ... Run IPMI Standard Command sel delete 100
302 Should Contain ${sel_delete} Unable to delete entry
303 ... case_insensitive=True
304
305
306Delete Invalid SEL Event Entry
307 [Documentation] Delete invalid SEL event entry.
308 [Tags] Delete_Invalid_SEL_Event_Entry
309
310 ${sel_delete}= Run Keyword And Expect Error *
311 ... Run IPMI Standard Command sel delete abc
312 Should Contain ${sel_delete} Given SEL ID 'abc' is invalid
313 ... case_insensitive=True
314
315
316Verify IPMI SEL Event Last Add Time
317 [Documentation] Verify IPMI SEL's last added timestamp.
318 [Tags] Verify_IPMI_SEL_Event_Last_Add_Time
319 [Setup] Install Tarball For Error Creation
320
321 Create Test Error Log
322 ${sel_time}= Run IPMI Standard Command sel time get
323 ${sel_time}= Convert Date ${sel_time}
324 ... date_format=%m/%d/%Y %H:%M:%S exclude_millis=True
325
326 ${sel_last_add_time}= Get IPMI SEL Setting Last Add Time
327 ${sel_last_add_time}= Convert Date ${sel_last_add_time}
328 ... date_format=%m/%d/%Y %H:%M:%S exclude_millis=True
329
330 ${time_diff}=
331 ... Subtract Date From Date ${sel_last_add_time} ${sel_time}
332
333 # Verify if the delay in current time check and last add SEL time
334 # is less or equals to 2 seconds.
335 Should Be True ${time_diff} <= 2
336
337
Sridevi Rameshc7a66892025-04-16 07:28:41 -0500338Verify IPMI SEL Delete
339 [Documentation] Verify IPMI SEL delete operation.
340 [Tags] Verify_IPMI_SEL_Delete
341 [Setup] Install Tarball For Error Creation
342
343 Run IPMI Standard Command sel clear
344 Sleep 5s
345 Create Test Error Log
346 ${sel_list}= Run IPMI Standard Command sel list
347 Should Not Be Equal As Strings ${sel_list} SEL has no entries
348
349 # Example of SEL List:
350 # 4 | 04/21/2017 | 10:51:16 | System Event #0x01 | Undetermined system hardware failure | Asserted
351
352 ${sel_entry}= Fetch from Left ${sel_list} |
353 ${sel_entry}= Evaluate $sel_entry.replace(' ','')
354 ${sel_entry}= Convert To Integer 0x${sel_entry}
355
356 ${sel_delete}= Run IPMI Standard Command sel delete ${sel_entry}
357 Should Be Equal As Strings ${sel_delete} Deleted entry ${sel_entry}
358 ... case_insensitive=True
359
360 ${sel_entries_count}= Get IPMI SEL Setting Entries
361 Log To Console Number of entries::: ${sel_entries_count}
362
363 # After issuing the IPMI SEL clear command.
364 # There will be one informational SEL entry in the IPMI SEL.
365 # So comparing the IPMI SEL count with this additional single entry.
366 Should Be Equal As Strings ${sel_entries_count} ${1}
367
368
Vidya-Kalasappanavar6093f772024-05-10 06:04:28 -0500369Verify IPMI SEL Event Entries
370 [Documentation] Verify IPMI SEL's entries info.
371 [Tags] Verify_IPMI_SEL_Event_Entries
372 [Setup] Install Tarball For Error Creation
373
374 # Clear all SEL entries using IPMI command.
375 Run IPMI Standard Command sel clear
376
377 # Added a delay for IPMI SEL to clear completely.
378 Sleep 5s
379
380 # Generate error logs of random count.
381 ${count}= Evaluate random.randint(1, 5) modules=random
382 Repeat Keyword ${count} Create Test Error Log
383
384 ${sel_entries_count}= Get IPMI SEL Setting Entries
385
386 # After issuing the IPMI SEL clear command.
387 # There will be one informational SEL entry in the IPMI SEL.
388 # So comparing the IPMI SEL count with this additional single entry.
389 Should Be Equal As Strings ${sel_entries_count} ${count + 1}
390
391
Tony Lee160aa872020-02-12 16:11:39 +0800392*** Keywords ***
393
chithragd7e009b2022-03-01 12:20:57 +0000394Create User Defined SEL
395 [Documentation] Create a user defined tempearature sensor SEL.
Tony Lee160aa872020-02-12 16:11:39 +0800396
397 # Create a SEL.
398 # Example:
399 # a | 02/14/2020 | 01:16:58 | Temperature #0x17 | | Asserted
Tony Lee21e5d902020-04-28 09:28:00 +0800400 Run IPMI Command
401 ... 0x0a 0x44 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x01 ${sensor_number} 0x00 0xa0 0x04 0x07
chithragd7e009b2022-03-01 12:20:57 +0000402
403
404Get SEL Entry Via IPMI
405 [Documentation] Get SEL Entry Via IPMI raw command.
406 [Arguments] ${record1} ${record2}
407
408 # Description of Argument(s):
409 # ${record1} Record ID for added record, LS Byte
410 # ${record2} Record ID for added record, MS Byte
411
412 # For example, when a first sel entry is added with IPMI raw command, the response will be "01 00".
413 # Here, ${record1} is 01, and ${record2} is 00.
414
415 ${cmd}= Catenate ${IPMI_RAW_CMD['SEL_entry']['Get_SEL_Entry'][0]} 0x${record1}
416 ... 0x${record2} ${IPMI_RAW_CMD['SEL_entry']['Get_SEL_Entry'][1]}
417
418 # Get SEL Entry Raw command.
ishwaryamathim372cd862023-11-14 18:12:23 +0000419 ${resp}= Run IPMI Command ${cmd}
chithragd7e009b2022-03-01 12:20:57 +0000420 ${resp}= Split String ${resp}
421
George Keishing409df052024-01-17 22:36:14 +0530422 RETURN ${resp}
chithragd7e009b2022-03-01 12:20:57 +0000423
424
425Get Most Recent Addition Timestamp From SEL Info
426 [Documentation] Get Most recent addition timestamp From SEL Info.
427
428 # Get SEL Info raw command.
429 ${sel_info}= Get SEL Info Via IPMI
430
431 # Get Most Recent Addition timestamp in hex.
432 ${addition_timestamp}= Set Variable ${sel_info[5:9]}
433 Reverse List ${addition_timestamp}
434 ${addition_timestamp}= Evaluate "".join(${addition_timestamp})
435
George Keishing409df052024-01-17 22:36:14 +0530436 RETURN ${addition_timestamp}
chithragd7e009b2022-03-01 12:20:57 +0000437
438
439Get Most Recent Erase Timestamp From SEL Info
440 [Documentation] Get Most recent erase timestamp From SEL Info.
441
442 # Get SEL Info Raw command.
443 ${sel_info}= Get SEL Info Via IPMI
444
445 # Get Most Recent Erase timestamp in hex.
446 ${erase_timestamp}= Set Variable ${sel_info[9:13]}
447 Reverse List ${erase_timestamp}
448 ${erase_timestamp}= Evaluate "".join(${erase_timestamp})
449
George Keishing409df052024-01-17 22:36:14 +0530450 RETURN ${erase_timestamp}
chithragd7e009b2022-03-01 12:20:57 +0000451
452
453Get SEL Elist Last Entry Date In Epoch
454 [Documentation] Get the time from SEL elist last entry and returns epoch time.
455
456 # Get SEL list last entry.
457 ${resp}= Run IPMI Standard Command sel elist last 1
458
459 # Get date from the sel entry and convert to epoch timestamp.
460 ${sel_entry_date}= Fetch Added SEL Date ${resp}
461 ${epoch_date}= Convert Date ${sel_entry_date} epoch exclude_millis=yes date_format=%m/%d/%Y %H:%M:%S
462
George Keishing409df052024-01-17 22:36:14 +0530463 RETURN ${epoch_date}
chithragd7e009b2022-03-01 12:20:57 +0000464
465
466Get BMC Time In Epoch
467 [Documentation] Get the current time from BMC and returns epoch time.
468
469 # Get the bmc native bmc date command response.
470 ${date}= Get Current Date from BMC
471
472 ${epoch_date}= Convert Date ${date} epoch exclude_millis=yes date_format=%m/%d/%Y %H:%M:%S
473
George Keishing409df052024-01-17 22:36:14 +0530474 RETURN ${epoch_date}
chithragd7e009b2022-03-01 12:20:57 +0000475
476
Vidya-Kalasappanavard7690752024-04-30 04:00:15 -0500477Install Tarball For Error Creation
478 [Documentation] Install tarball for error log creation.
479
480 ${status}= Run Keyword And Return Status Logging Test Binary Exist
481 Run Keyword If ${status} == ${False} Install Tarball
482
483
chithragd7e009b2022-03-01 12:20:57 +0000484Test Setup Execution
485 [Documentation] Do test setup tasks.
486
487 Run IPMI Standard Command sel clear
488 Sleep 5s