| Michael Walsh | 90e14e0 | 2018-03-22 16:38:04 -0500 | [diff] [blame] | 1 | #!/usr/bin/env python | 
 | 2 |  | 
 | 3 | r""" | 
 | 4 | Provide useful error log utility keywords. | 
 | 5 | """ | 
 | 6 |  | 
 | 7 | import gen_print as gp | 
 | 8 | import sys | 
 | 9 | import os | 
 | 10 | import imp | 
 | 11 | base_path = os.path.dirname(os.path.dirname( | 
 | 12 |                             imp.find_module("gen_robot_print")[1])) + os.sep | 
 | 13 | sys.path.append(base_path + "data/") | 
 | 14 | import variables as var | 
 | 15 |  | 
 | 16 |  | 
 | 17 | def print_error_logs(error_logs, key_list=None): | 
| Michael Walsh | 90e14e0 | 2018-03-22 16:38:04 -0500 | [diff] [blame] | 18 |     r""" | 
 | 19 |     Print the error logs to the console screen. | 
 | 20 |  | 
 | 21 |     This function provides the following benefits: | 
 | 22 |     - It will specify print_var parms for the caller (e.g. hex=1). | 
 | 23 |     - It is much easier to call this function than to generate the desired code | 
 | 24 |       directly from a robot script. | 
 | 25 |  | 
 | 26 |     Description of argument(s): | 
 | 27 |     error_logs  An error log dictionary such as the one returned by the | 
 | 28 |                 'Get Error Logs' keyword. | 
 | 29 |     key_list    The list of keys to be printed.  This may be specified as | 
 | 30 |                 either a python list or a space-delimited string.  In the | 
 | 31 |                 latter case, this function will convert it to a python list. | 
 | 32 |                 See the sprint_varx function prolog for additionatl details. | 
 | 33 |  | 
 | 34 |     Example use from a python script: | 
 | 35 |  | 
 | 36 |     ${error_logs}=  Get Error Logs | 
 | 37 |     Print Error Logs  ${error_logs}  Message Timestamp | 
 | 38 |  | 
 | 39 |     Sample output: | 
 | 40 |  | 
 | 41 |     error_logs: | 
 | 42 |       [/xyz/openbmc_project/logging/entry/3]: | 
 | 43 |         [Timestamp]:                                  1521738335735 | 
 | 44 |         [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional | 
 | 45 |       [/xyz/openbmc_project/logging/entry/2]: | 
 | 46 |         [Timestamp]:                                  1521738334637 | 
 | 47 |         [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional | 
 | 48 |       [/xyz/openbmc_project/logging/entry/1]: | 
 | 49 |         [Timestamp]:                                  1521738300696 | 
 | 50 |         [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional | 
 | 51 |       [/xyz/openbmc_project/logging/entry/4]: | 
 | 52 |         [Timestamp]:                                  1521738337915 | 
 | 53 |         [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional | 
 | 54 |  | 
 | 55 |     Another example call using a robot list: | 
 | 56 |     ${error_logs}=  Get Error Logs | 
 | 57 |     ${key_list}=  Create List  Message  Timestamp  Severity | 
 | 58 |     Print Error Logs  ${error_logs}  ${key_list} | 
 | 59 |     """ | 
 | 60 |  | 
 | 61 |     if key_list is not None: | 
 | 62 |         if type(key_list) in (str, unicode): | 
 | 63 |             key_list = key_list.split(" ") | 
 | 64 |         key_list.insert(0, var.BMC_LOGGING_ENTRY + ".*") | 
 | 65 |  | 
 | 66 |     gp.print_var(error_logs, hex=1, key_list=key_list) |