PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /lib/python3.6/site-packages/sssd/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //lib/python3.6/site-packages/sssd/sss_analyze.py |
import argparse from sssd.modules import request from sssd.parser import SubparsersAction class Analyzer: def add_subcommand(self, subcmd_grp, name, help_msg, func, opts): """ Add subcommand to existing subcommand group Args: name(str): Subcommand name help_msg(str): Help message for subcommand func(function): Function to call on execution opts(list of Object()): List of Option objects to add to subcommand """ # Create parser req_parser = subcmd_grp.add_parser(name, help=help_msg) # Add subcommand options self._add_subcommand_options(req_parser, opts) # Execute func() when argument is called req_parser.set_defaults(func=func) def _add_subcommand_options(self, parser, opts): """ Add subcommand options to subcommand parser Args: parser(str): Subcommand group parser opts(list of Object()): List of Option objects to add to subcommand """ for opt in opts: if opt.opt_type is bool: if opt.short_opt is None: parser.add_argument(opt.name, help=opt.help_msg, action='store_true') else: parser.add_argument(opt.name, opt.short_opt, help=opt.help_msg, action='store_true') if opt.opt_type is int: parser.add_argument(opt.name, help=opt.help_msg, type=int) def load_modules(self, parser, parser_grp): """ Initialize analyzer modules from modules/* Args: parser (ArgumentParser): Base parser object parser_grp (argparse.Action): Parser group that can have additional parsers attached. """ # Currently only the 'request' module exists req = request.RequestAnalyzer() cli = Analyzer() req.setup_args(parser_grp, cli) def setup_args(self): """ Top-level argument setup function. Setup analyzer argument parsers and subcommand parser/options. Returns: parser (ArgumentParser): Base parser object """ # top level parser formatter = argparse.RawTextHelpFormatter parser = argparse.ArgumentParser(description='Analyzer tool to assist ' 'with SSSD log parsing', formatter_class=formatter) parser.add_argument('--source', default='files', choices=['files', 'journald']) parser.add_argument('--logdir', default='/var/log/sssd/', help='SSSD Log directory to parse log files from') # Modules parser group subparser = parser.add_subparsers(title=None, action=SubparsersAction, metavar='COMMANDS') parser_grp = subparser.add_parser_group('Modules') # Load modules, subcommands are added in module.setup_args() self.load_modules(parser, parser_grp) return parser def main(self): parser = self.setup_args() args = parser.parse_args() if not hasattr(args, 'func'): parser.print_help() return 0 args.func(args) def run(): analyzer = Analyzer() analyzer.main()