| #!/usr/bin/env python3 |
| |
| r""" |
| See help text for details. |
| """ |
| |
| from gen_arg import * |
| from gen_print import * |
| from gen_valid import * |
| from openbmc_ffdc_list import * |
| |
| import sys |
| |
| save_path_0 = sys.path[0] |
| del sys.path[0] |
| |
| # Restore sys.path[0]. |
| sys.path.insert(0, save_path_0) |
| |
| # Set exit_on_error for gen_valid functions. |
| set_exit_on_error(True) |
| |
| parser = argparse.ArgumentParser( |
| usage="%(prog)s [OPTIONS]", |
| description="%(prog)s will print a colon-delimited list of all valid OBMC FFDC functions.\n\nExample:" |
| + "\n\n\nDump Log:FFDC Generic Report:Get Request FFDC:SEL Log:BMC Specific Files:Sys Inventory Files" |
| + ":Core Files:OS FFDC:Dump Files", |
| formatter_class=argparse.RawDescriptionHelpFormatter, |
| prefix_chars="-+", |
| ) |
| |
| # Populate stock_list with options we want. |
| stock_list = [("test_mode", 0), ("quiet", 1), ("debug", 0)] |
| |
| |
| def exit_function(signal_number=0, frame=None): |
| r""" |
| Execute whenever the program ends normally or with the signals that we catch (i.e. TERM, INT). |
| """ |
| |
| dprint_executing() |
| dprint_var(signal_number) |
| |
| qprint_pgm_footer() |
| |
| |
| def signal_handler(signal_number, frame): |
| r""" |
| Handle signals. Without a function to catch a SIGTERM or SIGINT, our program would terminate immediately |
| with return code 143 and without calling our exit_function. |
| """ |
| |
| # Our convention is to set up exit_function with atexit.register() so there is no need to explicitly |
| # call exit_function from here. |
| |
| dprint_executing() |
| |
| # Calling exit prevents us from returning to the code that was running when we received the signal. |
| exit(0) |
| |
| |
| def validate_parms(): |
| r""" |
| Validate program parameters, etc. |
| """ |
| |
| gen_post_validation(exit_function, signal_handler) |
| |
| |
| def main(): |
| |
| gen_get_options(parser, stock_list) |
| |
| validate_parms() |
| |
| qprint_pgm_header() |
| |
| my_openbmc_ffdc_list = openbmc_ffdc_list() |
| ffdc_function_list = my_openbmc_ffdc_list.get_ffdc_method_desc("BMC LOGS") |
| # Convert from list to colon-delimited string. |
| ffdc_function_list = ":".join(ffdc_function_list) |
| print(ffdc_function_list) |
| |
| |
| main() |