blob: 9c39aee53455c6b53a8733340f33437f70b3e70c [file] [log] [blame]
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -06001*** Settings ***
2Documentation This suite tests Platform Event Log (PEL) functionality of OpenBMC.
3
4Library ../../lib/pel_utils.py
Rahul Maheshwaria17a3392020-03-02 04:51:52 -06005Variables ../../data/pel_variables.py
Rahul Maheshwari8f5256f2020-02-26 23:53:55 -06006Resource ../../lib/list_utils.robot
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -06007Resource ../../lib/openbmc_ffdc.robot
8
Rahul Maheshwarif575c902020-02-26 04:38:40 -06009Test Setup Redfish.Login
10Test Teardown Run Keywords Redfish.Logout AND FFDC On Test Case Fail
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -060011
12
13*** Variables ***
14
15${CMD_INTERNAL_FAILURE} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
16... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.InternalFailure
17... xyz.openbmc_project.Logging.Entry.Level.Error 0
Rahul Maheshwari97d7ab82020-08-04 00:01:42 -050018
19${CMD_FRU_CALLOUT} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
20... xyz.openbmc_project.Logging.Create Create ssa{ss} xyz.openbmc_project.Common.Error.Timeout
21... xyz.openbmc_project.Logging.Entry.Level.Error 2 "TIMEOUT_IN_MSEC" "5"
22... "CALLOUT_INVENTORY_PATH" "/xyz/openbmc_project/inventory/system/chassis/motherboard"
23
24${CMD_PROCEDURAL_SYMBOLIC_FRU_CALLOUT} busctl call xyz.openbmc_project.Logging /xyz/openbmc_project/logging
25... xyz.openbmc_project.Logging.Create Create ssa{ss} org.open_power.Logging.Error.TestError1
26... xyz.openbmc_project.Logging.Entry.Level.Error 0
27
28${CMD_INVENTORY_PREFIX} busctl get-property xyz.openbmc_project.Inventory.Manager
29... /xyz/openbmc_project/inventory/system/chassis/motherboard
30
Rahul Maheshwari39918682020-07-07 06:42:20 -050031@{mandatory_pel_fileds} Private Header User Header Primary SRC Extended User Header Failing MTMS
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -060032
33
34*** Test Cases ***
35
36Create Test PEL Log And Verify
37 [Documentation] Create PEL log using busctl command and verify via peltool.
38 [Tags] Create_Test_PEL_Log_And_Verify
39
Rahul Maheshwarif575c902020-02-26 04:38:40 -060040 Redfish Purge Event Log
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -060041 Create Test PEL Log
Rahul Maheshwarif575c902020-02-26 04:38:40 -060042 ${pel_id}= Get PEL Log Via BMC CLI
43 Should Not Be Empty ${pel_id} msg=System PEL log entry is empty.
44
45
Rahul Maheshwaria17a3392020-03-02 04:51:52 -060046Verify PEL Log Details
47 [Documentation] Verify PEL log details via peltool.
48 [Tags] Verify_PEL_Log_Details
49
50 Redfish Purge Event Log
51
52 ${bmc_time1}= CLI Get BMC DateTime
53 Create Test PEL Log
54 ${bmc_time2}= CLI Get BMC DateTime
55
56 ${pel_records}= Peltool -l
57
58 # Example output from 'Peltool -l':
59 # pel_records:
60 # [0x50000012]:
61 # [CreatorID]: BMC
62 # [CompID]: 0x1000
63 # [PLID]: 0x50000012
64 # [Subsystem]: BMC Firmware
65 # [Message]: An application had an internal failure
66 # [SRC]: BD8D1002
67 # [Commit Time]: 03/02/2020 09:35:15
68 # [Sev]: Unrecoverable Error
69
70 ${ids}= Get Dictionary Keys ${pel_records}
71 ${id}= Get From List ${ids} 0
72
73 @{pel_fields}= Create List CreatorID Subsystem Message Sev
74 FOR ${field} IN @{pel_fields}
75 Valid Value pel_records['${id}']['${field}'] ['${PEL_DETAILS['${field}']}']
76 END
77
78 Valid Value pel_records['${id}']['PLID'] ['${id}']
79
80 # Verify if "CompID" and "SRC" fields of PEL has alphanumeric value.
81 Should Match Regexp ${pel_records['${id}']['CompID']} [a-zA-Z0-9]
82 Should Match Regexp ${pel_records['${id}']['SRC']} [a-zA-Z0-9]
83
84 ${pel_date_time}= Convert Date ${pel_records['${id}']['Commit Time']}
85 ... date_format=%m/%d/%Y %H:%M:%S exclude_millis=yes
86
87 # Convert BMC and PEL time to epoch time before comparing.
88 ${bmc_time1_epoch}= Convert Date ${bmc_time1} epoch
89 ${pel_time_epoch}= Convert Date ${pel_date_time} epoch
90 ${bmc_time2_epoch}= Convert Date ${bmc_time2} epoch
91
92 Should Be True ${bmc_time1_epoch} <= ${pel_time_epoch} <= ${bmc_time2_epoch}
93
94
Rahul Maheshwari39918682020-07-07 06:42:20 -050095Verify Mandatory Sections Of Error Log PEL
96 [Documentation] Verify mandatory sections of error log PEL.
97 [Tags] Verify_Mandatory_Sections_Of_Error_Log_PEL
98
99 Create Test PEL Log
100
101 ${pel_ids}= Get PEL Log Via BMC CLI
102 ${pel_id}= Get From List ${pel_ids} -1
103 ${pel_output}= Peltool -i ${pel_id}
104 ${pel_sections}= Get Dictionary Keys ${pel_output}
105
106 List Should Contain Sub List ${pel_sections} ${mandatory_pel_fileds}
107
108
Rahul Maheshwarif575c902020-02-26 04:38:40 -0600109Verify PEL Log Persistence After BMC Reboot
110 [Documentation] Verify PEL log persistence after BMC reboot.
111 [Tags] Verify_PEL_Log_Persistence_After_BMC_Reboot
112
113 Create Test PEL Log
114 ${pel_before_reboot}= Get PEL Log Via BMC CLI
115
116 Redfish OBMC Reboot (off)
117 ${pel_after_reboot}= Get PEL Log Via BMC CLI
118
119 List Should Contain Sub List ${pel_after_reboot} ${pel_before_reboot}
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600120
121
Rahul Maheshwari58b99fc2020-03-03 00:05:55 -0600122Verify PEL ID Numbering
123 [Documentation] Verify PEL ID numbering.
124 [Tags] Verify_PEL_ID_Numbering
125
126 Redfish Purge Event Log
127 Create Test PEL Log
128 Create Test PEL Log
129
130 ${pel_ids}= Get PEL Log Via BMC CLI
131
132 # Example of PEL IDs from PEL logs.
133 # [0x50000012]: <--- First PEL ID
134 # [CreatorID]: BMC
135 # [CompID]: 0x1000
136 # [PLID]: 0x50000012
137 # [Subsystem]: BMC Firmware
138 # [Message]: An application had an internal failure
139 # [SRC]: BD8D1002
140 # [Commit Time]: 03/02/2020 09:35:15
141 # [Sev]: Unrecoverable Error
142 #
143 # [0x50000013]: <--- Second PEL ID
144 # [CreatorID]: BMC
145 # [CompID]: 0x1000
146 # [PLID]: 0x50000013
147 # [Subsystem]: BMC Firmware
148 # [Message]: An application had an internal failure
149 # [SRC]: BD8D1002
150 # [Commit Time]: 03/02/2020 09:35:15
151 # [Sev]: Unrecoverable Error
152
153 Should Be True ${pel_ids[1]} == ${pel_ids[0]}+1
154
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500155Verify Machine Type Model And Serial Number
156 [Documentation] Verify machine type model and serial number from PEL.
157 [Tags] Verify_Machine_Type_Model_And_Serial_Number
158
159 Create Test PEL Log
160
161 ${pel_ids}= Get PEL Log Via BMC CLI
162 ${id}= Get From List ${pel_ids} -1
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500163
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500164 ${pel_serial_number}= Get PEL Field Value ${id} Failing MTMS Serial Number
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500165 ${pel_serial_number}= Replace String Using Regexp ${pel_serial_number} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500166 ${pel_machine_type_model}= Get PEL Field Value ${id} Failing MTMS Machine Type Model
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500167 ${pel_machine_type_model}= Replace String Using Regexp ${pel_machine_type_model} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500168
169 # Example of "Machine Type Model" and "Serial Number" fields value from "Failing MTMS" section of PEL.
170 # [Failing MTMS]:
171 # [Created by]: 0x2000
172 # [Machine Type Model]: 1234-ABC <---- Machine type
173 # [Section Version]: 1
174 # [Serial Number]: ABCDEFG <---- Serial number
175 # [Sub-section type]: 0
176
177 ${redfish_machine_model}= Redfish.Get Attribute /redfish/v1/Systems/system/ Model
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500178 ${redfish_machine_model}= Replace String Using Regexp ${redfish_machine_model} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500179 ${redfish_serial_number}= Redfish.Get Attribute /redfish/v1/Systems/system/ SerialNumber
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500180 ${redfish_serial_number}= Replace String Using Regexp ${redfish_serial_number} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500181
182 Valid Value pel_machine_type_model ['${redfish_machine_model}']
183 Valid Value pel_serial_number ['${redfish_serial_number}']
184
185 # Check "Machine Type Model" and "Serial Number" fields value from "Extended User Header" section of PEL.
186 ${pel_machine_type_model}= Get PEL Field Value ${id} Extended User Header Reporting Machine Type
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500187 ${pel_machine_type_model}= Replace String Using Regexp ${pel_machine_type_model} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500188 ${pel_serial_number}= Get PEL Field Value ${id} Extended User Header Reporting Serial Number
Rahul Maheshwari56dba362020-05-12 00:59:48 -0500189 ${pel_serial_number}= Replace String Using Regexp ${pel_serial_number} ^0+ ${EMPTY}
Rahul Maheshwari371e4f82020-04-06 22:53:52 -0500190
191 Valid Value pel_machine_type_model ['${redfish_machine_model}']
192 Valid Value pel_serial_number ['${redfish_serial_number}']
193
Rahul Maheshwari58b99fc2020-03-03 00:05:55 -0600194
Rahul Maheshwari1bea6cc2020-03-31 00:53:14 -0500195Verify Host Off State From PEL
196 [Documentation] Verify Host off state from PEL.
197 [Tags] Verify_Host_Off_State_From_PEL
198
199 Redfish Power Off stack_mode=skip
200 Create Test PEL Log
201
202 ${pel_ids}= Get PEL Log Via BMC CLI
203 ${id}= Get From List ${pel_ids} -1
204 ${pel_host_state}= Get PEL Field Value ${id} User Data HostState
205
206 Valid Value pel_host_state ['Off']
207
208
209Verify BMC Version From PEL
210 [Documentation] Verify BMC Version from PEL.
211 [Tags] Verify_BMC_Version_From_PEL
212
213 Create Test PEL Log
214
215 ${pel_ids}= Get PEL Log Via BMC CLI
216 ${id}= Get From List ${pel_ids} -1
217 ${pel_bmc_version}= Get PEL Field Value ${id} User Data BMC Version ID
218
219 ${bmc_version}= Get BMC Version
220 Valid Value bmc_version ['${bmc_version}']
221
222
Rahul Maheshwari8f5256f2020-02-26 23:53:55 -0600223Verify PEL Log After Host Poweron
224 [Documentation] Verify PEL log generation while booting host.
225 [Tags] Verify_PEL_Log_After_Host_Poweron
226
227 Redfish Power Off stack_mode=skip
228 Redfish Purge Event Log
229 Redfish Power On stack_mode=skip
230
231 ${pel_informational_error}= Get PEL Log IDs User Header Event Severity Informational Event
232 ${pel_bmc_created_error}= Get PEL Log IDs Private Header Creator Subsystem BMC
233
234 # Get BMC created non-infomational error.
235 ${pel_bmc_error}= Subtract Lists ${pel_bmc_created_error} ${pel_informational_error}
236
237 Should Be Empty ${pel_bmc_error} msg=Unexpected error log generated during Host poweron.
238
239
Rahul Maheshwari089615b2020-04-02 01:01:38 -0500240Verify BMC Event Log ID
241 [Documentation] Verify BMC Event Log ID from PEL.
242 [Tags] Verify_BMC_Event_Log_ID
243
244 Redfish Purge Event Log
245 Create Test PEL Log
246
247 ${pel_ids}= Get PEL Log Via BMC CLI
248 ${pel_bmc_event_log_id}= Get PEL Field Value ${pel_ids[0]} Private Header BMC Event Log Id
249
250 # Example "BMC Event Log Id" field value from "Private Header" section of PEL.
251 # [Private Header]:
252 # [Created at]: 08/24/1928 12:04:06
253 # [Created by]: 0x584D
254 # [Sub-section type]: 0
255 # [Entry Id]: 0x50000BB7
256 # [Platform Log Id]: 0x8200061D
257 # [CSSVER]:
258 # [Section Version]: 1
259 # [Creator Subsystem]: PHYP
260 # [BMC Event Log Id]: 341 <---- BMC event log id value
261 # [Committed at]: 03/25/1920 12:06:22
262
263 ${redfish_event_logs}= Redfish.Get Properties /redfish/v1/Systems/system/LogServices/EventLog/Entries
264
265 # Example of redfish_event_logs output:
266 # redfish_event_logs:
267 # [@odata.id]: /redfish/v1/Systems/system/LogServices/EventLog/Entries
268 # [Name]: System Event Log Entries
269 # [Members@odata.count]: 1
270 # [@odata.type]: #LogEntryCollection.LogEntryCollection
271 # [Description]: Collection of System Event Log Entries
272 # [Members]:
273 # [0]:
274 # [@odata.id]: /redfish/v1/Systems/system/LogServices/EventLog/Entries/235
275 # [Name]: System Event Log Entry
276 # [Severity]: Critical
277 # [EntryType]: Event
278 # [Created]: 2020-04-02T07:25:13+00:00
279 # [@odata.type]: #LogEntry.v1_5_1.LogEntry
280 # [Id]: 235 <----- Event log ID
281 # [Message]: xyz.openbmc_project.Common.Error.InternalFailure
282
283 Valid Value pel_bmc_event_log_id ['${redfish_event_logs['Members'][0]['Id']}']
284
285
Rahul Maheshwari97d7ab82020-08-04 00:01:42 -0500286Verify FRU Callout
287 [Documentation] Verify FRU callout entries from PEL log.
288 [Tags] Verify_FRU_Callout
289
290 Create Test PEL Log FRU Callout
291
292 ${pel_ids}= Get PEL Log Via BMC CLI
293 ${id}= Get From List ${pel_ids} -1
294 ${pel_callout_section}= Get PEL Field Value ${id} Primary SRC Callout Section
295
296 # Example of PEL Callout Section from "peltool -i <id>" command.
297 # [Callouts]:
298 # [0]:
299 # [FRU Type]: Normal Hardware FRU
300 # [Priority]: Mandatory, replace all with this type as a unit
301 # [Location Code]: U78DA.ND1.1234567-P0
302 # [Part Number]: F191014
303 # [CCIN]: 2E2D
304 # [Serial Number]: YL2E2D010000
305 # [Callout Count]: 1
306
307 Valid Value pel_callout_section['Callout Count'] ['1']
308 Valid Value pel_callout_section['Callouts'][0]['FRU Type'] ['Normal Hardware FRU']
309 Should Contain ${pel_callout_section['Callouts'][0]['Priority']} Mandatory
310
311 # Verify Location Code field of PEL callout with motherboard's Location Code.
312 ${busctl_output}= BMC Execute Command ${CMD_INVENTORY_PREFIX} com.ibm.ipzvpd.Location LocationCode
313 Should Be Equal ${pel_callout_section['Callouts'][0]['Location Code']}
314 ... ${busctl_output[0].split('"')[1].strip('"')}
315
316 # TODO: Compare CCIN and part number fields of PEL callout with Redfish or busctl output.
317 Should Match Regexp ${pel_callout_section['Callouts'][0]['CCIN']} [a-zA-Z0-9]
318 Should Match Regexp ${pel_callout_section['Callouts'][0]['Part Number']} [a-zA-Z0-9]
319
320 # Verify Serial Number field of PEL callout with motherboard's Serial Number.
321 ${busctl_output}= BMC Execute Command
322 ... ${CMD_INVENTORY_PREFIX} xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
323 Should Be Equal ${pel_callout_section['Callouts'][0]['Serial Number']}
324 ... ${busctl_output[0].split('"')[1].strip('"')}
325
326
327Verify Procedure And Symbolic FRU Callout
328 [Documentation] Verify procedure and symbolic FRU callout from PEL log.
329 [Tags] Verify_Procedure_And_Symbolic_FRU_Callout
330
331 Create Test PEL Log Procedure And Symbolic FRU Callout
332
333 ${pel_ids}= Get PEL Log Via BMC CLI
334 ${id}= Get From List ${pel_ids} -1
335 ${pel_callout_section}= Get PEL Field Value ${id} Primary SRC Callout Section
336
337 # Example of PEL Callout Section from "peltool -i <id>" command.
338 # [Callouts]:
339 # [0]:
340 # [Priority]: Mandatory, replace all with this type as a unit
341 # [Procedure Number]: BMCSP02
342 # [FRU Type]: Maintenance Procedure Required
343 # [1]:
344 # [Priority]: Medium Priority
345 # [Part Number]: SVCDOCS
346 # [FRU Type]: Symbolic FRU
347 # [Callout Count]: 2
348
349 Valid Value pel_callout_section['Callout Count'] ['2']
350
351 # Verify procedural callout info.
352
353 Valid Value pel_callout_section['Callouts'][0]['FRU Type'] ['Maintenance Procedure Required']
354 Should Contain ${pel_callout_section['Callouts'][0]['Priority']} Mandatory
355 # Verify if "Procedure Number" field of PEL has an alphanumeric value.
356 Should Match Regexp ${pel_callout_section['Callouts'][0]['Procedure Number']} [a-zA-Z0-9]
357
358 # Verify procedural callout info.
359
360 Valid Value pel_callout_section['Callouts'][1]['FRU Type'] ['Symbolic FRU']
361 Should Contain ${pel_callout_section['Callouts'][1]['Priority']} Medium Priority
362 # Verify if "Part Number" field of Symbolic FRU has an alphanumeric value.
363 Should Match Regexp ${pel_callout_section['Callouts'][1]['Part Number']} [a-zA-Z0-9]
364
365
Rahul Maheshwari326d0642020-04-07 06:13:38 -0500366Verify Delete All PEL
367 [Documentation] Verify deleting all PEL logs.
368 [Tags] Verify_Delete_All_PEL
369
370 Create Test PEL Log
371 Create Test PEL Log
372 Peltool --delete-all False
373
374 ${pel_ids}= Get PEL Log Via BMC CLI
375 Should Be Empty ${pel_ids}
376
377
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600378*** Keywords ***
379
380Create Test PEL Log
381 [Documentation] Generate test PEL log.
Rahul Maheshwari97d7ab82020-08-04 00:01:42 -0500382 [Arguments] ${pel_type}=Internal Failure
383
384 # Description of argument(s):
385 # pel_type The PEL type (e.g. Internal Failure, FRU Callout, Procedural Callout).
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600386
387 # Test PEL log entry example:
388 # {
389 # "0x5000002D": {
390 # "SRC": "BD8D1002",
391 # "Message": "An application had an internal failure",
392 # "PLID": "0x5000002D",
393 # "CreatorID": "BMC",
394 # "Subsystem": "BMC Firmware",
395 # "Commit Time": "02/25/2020 04:47:09",
396 # "Sev": "Unrecoverable Error",
397 # "CompID": "0x1000"
398 # }
399 # }
400
Rahul Maheshwari97d7ab82020-08-04 00:01:42 -0500401 Run Keyword If '${pel_type}' == 'Internal Failure'
402 ... BMC Execute Command ${CMD_INTERNAL_FAILURE}
403 ... ELSE IF '${pel_type}' == 'FRU Callout'
404 ... BMC Execute Command ${CMD_FRU_CALLOUT}
405 ... ELSE IF '${pel_type}' == 'Procedure And Symbolic FRU Callout'
406 ... BMC Execute Command ${CMD_PROCEDURAL_SYMBOLIC_FRU_CALLOUT}
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600407
408
Rahul Maheshwari8f5256f2020-02-26 23:53:55 -0600409Get PEL Log IDs
410 [Documentation] Returns the list of PEL log IDs which contains given field's value.
411 [Arguments] ${pel_section} ${pel_field} @{pel_field_value}
412
413 # Description of argument(s):
414 # pel_section The section of PEL (e.g. Private Header, User Header).
415 # pel_field The PEL field (e.g. Event Severity, Event Type).
416 # pel_field_value The list of PEL's field value (e.g. Unrecoverable Error).
417
418 ${pel_ids}= Get PEL Log Via BMC CLI
419 @{pel_id_list}= Create List
420
421 FOR ${id} IN @{pel_ids}
422 ${pel_output}= Peltool -i ${id}
423 # Example of PEL output from "peltool -i <id>" command.
424 # [Private Header]:
425 # [Created at]: 08/24/1928 12:04:06
426 # [Created by]: 0x584D
427 # [Sub-section type]: 0
428 # [Entry Id]: 0x50000BB7
429 # [Platform Log Id]: 0x8200061D
430 # [CSSVER]:
431 # [Section Version]: 1
432 # [Creator Subsystem]: PHYP
433 # [BMC Event Log Id]: 341
434 # [Committed at]: 03/25/1920 12:06:22
435 # [User Header]:
436 # [Log Committed by]: 0x4552
437 # [Action Flags]:
438 # [0]: Report Externally
439 # [Subsystem]: I/O Subsystem
440 # [Event Type]: Miscellaneous, Informational Only
441 # [Sub-section type]: 0
442 # [Event Scope]: Entire Platform
443 # [Event Severity]: Informational Event
444 # [Host Transmission]: Not Sent
445 # [Section Version]: 1
446
447 ${pel_section_output}= Get From Dictionary ${pel_output} ${pel_section}
448 ${pel_field_output}= Get From Dictionary ${pel_section_output} ${pel_field}
449 Run Keyword If '${pel_field_output}' in @{pel_field_value} Append To List ${pel_id_list} ${id}
450 END
451 Sort List ${pel_id_list}
452
453 [Return] ${pel_id_list}
454
455
Rahul Maheshwarif575c902020-02-26 04:38:40 -0600456Get PEL Log Via BMC CLI
457 [Documentation] Returns the list of PEL IDs using BMC CLI.
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600458
459 ${pel_records}= Peltool -l
Rahul Maheshwarif575c902020-02-26 04:38:40 -0600460 ${ids}= Get Dictionary Keys ${pel_records}
Rahul Maheshwari1cffc4b2020-04-02 02:58:16 -0500461 Sort List ${ids}
Rahul Maheshwarifaa5d202020-02-24 23:32:57 -0600462
Rahul Maheshwarif575c902020-02-26 04:38:40 -0600463 [Return] ${ids}
Rahul Maheshwari60b58a82020-04-02 02:40:19 -0500464
465
466Get PEL Field Value
467 [Documentation] Returns the value of given PEL's field.
468 [Arguments] ${pel_id} ${pel_section} ${pel_field}
469
470 # Description of argument(s):
471 # pel_id The ID of PEL (e.g. 0x5000002D, 0x5000002E).
472 # pel_section The section of PEL (e.g. Private Header, User Header)
473 # pel_field The PEL field (e.g. Event Severity, Event Type).
474
475 ${pel_output}= Peltool -i ${pel_id}
476
477 # Example of PEL output from "peltool -i <id>" command.
478 # [Private Header]:
479 # [Created at]: 08/24/1928 12:04:06
480 # [Created by]: 0x584D
481 # [Sub-section type]: 0
482 # [Entry Id]: 0x50000BB7
483 # [Platform Log Id]: 0x8200061D
484 # [CSSVER]:
485 # [Section Version]: 1
486 # [Creator Subsystem]: PHYP
487 # [BMC Event Log Id]: 341
488 # [Committed at]: 03/25/1920 12:06:22
489 # [User Header]:
490 # [Log Committed by]: 0x4552
491 # [Action Flags]:
492 # [0]: Report Externally
493 # [Subsystem]: I/O Subsystem
494 # [Event Type]: Miscellaneous, Informational Only
495 # [Sub-section type]: 0
496 # [Event Scope]: Entire Platform
497 # [Event Severity]: Informational Event
498 # [Host Transmission]: Not Sent
499 # [Section Version]: 1
500
501 ${pel_section_output}= Get From Dictionary ${pel_output} ${pel_section}
502 ${pel_field_output}= Get From Dictionary ${pel_section_output} ${pel_field}
503
504 [Return] ${pel_field_output}