File: //proc/self/root/lib/python3.9/site-packages/sssd/__pycache__/sss_analyze.cpython-39.pyc
a
�,h�
� @ s: d dl Z d dlmZ d dlmZ G dd� d�Zdd� ZdS )� N)�request)�SubparsersActionc @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� ZdS )�Analyzerc C s* |j ||d�}| �||� |j|d� dS )a4
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
)�help)�funcN)�
add_parser�_add_subcommand_options�set_defaults)�selfZ
subcmd_grp�name�help_msgr �optsZ
req_parser� r �4/usr/lib/python3.9/site-packages/sssd/sss_analyze.py�add_subcommand s zAnalyzer.add_subcommandc C sn |D ]d}|j tu rJ|jdu r2|j|j|jdd� n|j|j|j|jdd� |j tu r|j|j|jtd� qdS )z�
Add subcommand options to subcommand parser
Args:
parser(str): Subcommand group parser
opts(list of Object()): List of Option objects to add to subcommand
N�
store_true)r �action)r �type)Zopt_type�boolZ short_opt�add_argumentr r �int)r
�parserr
�optr r r r s
��
�z Analyzer._add_subcommand_optionsc C s t �� }t� }|�||� dS )z�
Initialize analyzer modules from modules/*
Args:
parser (ArgumentParser): Base parser object
parser_grp (argparse.Action): Parser group that can have
additional parsers attached.
N)r ZRequestAnalyzerr �
setup_args)r
r �
parser_grpZreqZclir r r �load_modules/ s
zAnalyzer.load_modulesc C sb t j}t jd|d�}|jddddgd� |jddd d
� |jdtdd
�}|�d�}| �||� |S )z�
Top-level argument setup function.
Setup analyzer argument parsers and subcommand parser/options.
Returns:
parser (ArgumentParser): Base parser object
z-Analyzer tool to assist with SSSD log parsing)�description�formatter_classz--source�filesZjournald)�default�choicesz--logdirz/var/log/sssd/z*SSSD Log directory to parse log files from)r r NZCOMMANDS)�titler �metavarZModules)�argparse�RawTextHelpFormatter�ArgumentParserr �add_subparsersr Zadd_parser_groupr )r
� formatterr Z subparserr r r r r >