xref: /openbmc/openbmc-test-automation/lib/pel_utils.py (revision faa5d20a411ce88b9c3e49ea658d7ae4e92f9252)
1*faa5d20aSRahul Maheshwari#!/usr/bin/env python
2*faa5d20aSRahul Maheshwari
3*faa5d20aSRahul Maheshwarir"""
4*faa5d20aSRahul MaheshwariPEL functions.
5*faa5d20aSRahul Maheshwari"""
6*faa5d20aSRahul Maheshwari
7*faa5d20aSRahul Maheshwariimport func_args as fa
8*faa5d20aSRahul Maheshwariimport bmc_ssh_utils as bsu
9*faa5d20aSRahul Maheshwariimport json
10*faa5d20aSRahul Maheshwari
11*faa5d20aSRahul Maheshwari
12*faa5d20aSRahul Maheshwaridef peltool(option_string, **bsu_options):
13*faa5d20aSRahul Maheshwari    r"""
14*faa5d20aSRahul Maheshwari    Run peltool on the BMC with the caller's option string and return the result.
15*faa5d20aSRahul Maheshwari
16*faa5d20aSRahul Maheshwari    Example:
17*faa5d20aSRahul Maheshwari
18*faa5d20aSRahul Maheshwari    ${pel_results}=  Peltool  -l
19*faa5d20aSRahul Maheshwari    Rprint Vars  pel_results
20*faa5d20aSRahul Maheshwari
21*faa5d20aSRahul Maheshwari    pel_results:
22*faa5d20aSRahul Maheshwari      [0x50000031]:
23*faa5d20aSRahul Maheshwari        [CompID]:                       0x1000
24*faa5d20aSRahul Maheshwari        [PLID]:                         0x50000031
25*faa5d20aSRahul Maheshwari        [Subsystem]:                    BMC Firmware
26*faa5d20aSRahul Maheshwari        [Message]:                      An application had an internal failure
27*faa5d20aSRahul Maheshwari        [SRC]:                          BD8D1002
28*faa5d20aSRahul Maheshwari        [Commit Time]:                  02/25/2020  04:51:31
29*faa5d20aSRahul Maheshwari        [Sev]:                          Unrecoverable Error
30*faa5d20aSRahul Maheshwari        [CreatorID]:                    BMC
31*faa5d20aSRahul Maheshwari
32*faa5d20aSRahul Maheshwari    Description of argument(s):
33*faa5d20aSRahul Maheshwari    option_string           A string of options which are to be processed by the peltool command.
34*faa5d20aSRahul Maheshwari    bsu_options             Options to be passed directly to bmc_execute_command. See its prolog for
35*faa5d20aSRahul Maheshwari                            details.
36*faa5d20aSRahul Maheshwari    """
37*faa5d20aSRahul Maheshwari
38*faa5d20aSRahul Maheshwari    bsu_options = fa.args_to_objects(bsu_options)
39*faa5d20aSRahul Maheshwari    out_buf, stderr, rc = bsu.bmc_execute_command('peltool ' + option_string, **bsu_options)
40*faa5d20aSRahul Maheshwari    out_buf = json.loads(out_buf)
41*faa5d20aSRahul Maheshwari    return out_buf
42