HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/ipapython/install/__pycache__/cli.cpython-39.opt-1.pyc
a

�N(iF3�@s�dZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZm
Z
mZddlmZmZdd	gZejr~eZed�Ze�e�Zd
d�Zddd�Zddd	�ZGdd�dej�ZGdd�de�Z Gdd�de�Z!dS)z
Command line support.
�N)�	admintool�config)�standard_logging_setup)�CheckedIPAddress�CheckedIPAddressLoopback�private_ccache�)�core�common�install_tool�uninstall_toolc	Cs�d}|��D]�\}}t||�}|��r|jdur8|j}n&|jrN|jd��}n|�dd���}z
|jWnty~d}Yn0d}||�	|�7}q|S)Nz%prog [options]r�_�-z {}z [{}])
�knobs�getattr�is_cli_positional�cli_metavar�	cli_names�upper�replace�default�AttributeError�format)�configurable_class�usage�	owner_cls�name�knob_cls�metavar�fmt�r �9/usr/lib/python3.9/site-packages/ipapython/install/cli.py�
_get_usage!s 



r"FTc	CsR|durt||||||d�}nd}td�|j�tft|||t|�|||||d�	�S)a�
    Some commands represent multiple related tools, e.g.
    ``ipa-server-install`` and ``ipa-server-install --uninstall`` would be
    represented by separate classes. Only their options are the same.

    :param configurable_class: the command class for options
    :param command_name: the command name shown in logs/output
    :param log_file_name: if None, logging is to stderr only
    :param debug_option: log level is DEBUG
    :param verbose: log level is INFO
    :param console_format: logging format for stderr
    :param use_private_ccache: a temporary ccache is created and used
    :param uninstall_log_file_name: if not None the log for uninstall
    N�r�command_name�
log_file_name�debug_option�verbose�console_formatzinstall_tool({0}))	rr$r%rr&r'r(�uninstall_kwargs�use_private_ccache)�dict�typer�__name__�InstallToolr")	rr$r%r&r'r(r*Zuninstall_log_file_namer)r r r!r:s2�	
��cCs,td�|j�tft|||t|�|||d��S)Nzuninstall_tool({0}))rr$r%rr&r'r()r,rr-�
UninstallToolr+r"r#r r r!rhs
��cs�eZdZdZdZdZdZdZedd��Z	e
d�fdd�	�Z�fdd	�Zd�fd
d�	Z
dd
d�Zdd�Z�fdd�Zedd��Z�ZS)�
ConfigureToolNFTcCst�dS�N)�NotImplementedError)rr r r!�
_transform�szConfigureTool._transformc
s|�|j�}t|tj�r.|jddddddd�t��}||d<|��D�]�\}}t	||�}|�
�|urhqF|��}z||}	Wn8ty�t
�|d�|j��}	||<|�|	�Yn0|j}
t|
t�r�z|
jd	}Wq�ty�t}Yq�0n|
}t�}|tu�rd|d
<d|d<d|d
<n�|tu�r0d|d
<n�|tu�rDd|d
<n�|tu�rXd|d
<nz|tu�rld|d
<nf|tu�r�d|d
<nRt|tj��r�d|d
<dd�|D�|d<d�d�|d��|d<nd|d
<||d<||d<t|
t��r|d
du�r�d|d<nd|d<n |d
du�r d|d<nd |d<|j �r8d|d!<|j!�rJ|j!|d<|�sh|j"|j#fd|j$ff}
n|j"d"ff}
|
D]r\}}g}|D],}|du�r�d#�|�%d$d%��}|�&|��q�|�s��qx|�s�|j}nt
j'}|	j|d&|i|���qxqFt(t)|�j*||j+d'�dS)(Nz-Uz--unattended�
unattendedF�
store_truez2unattended (un)installation never prompts the user��destr�action�helpz{0} optionsrr,T�constr�string�int�longZip_with_loopback�ip�choicecSsg|]
}|j�qSr )�value)�.0�ir r r!�
<listcomp>��z-ConfigureTool.add_options.<locals>.<listcomp>�choicesz{{{0}}}�,r�constructorr7�append_constr8�append�store_const�store�	sensitiver1z--{}r
rr9)r&),r3r�
issubclassr
�Interactive�
add_option�collections�OrderedDictrrr�group�KeyErrorrZOptionGroupr�descriptionZadd_option_groupr,�list�__parameters__r�strr+�NoneTyper<r=rr�enum�Enum�joinrLrZ
deprecatedrZcli_deprecated_namesrrIZ
SUPPRESS_HELP�superr0�add_optionsr&)�cls�parser�
positional�transformed_cls�groupsrrrZ	group_clsZ	opt_groupZ	knob_typeZknob_scalar_type�kwargsZcli_infoZhiddenrZopt_strs�cli_namer9��	__class__r r!r]�s��
�












�





��
����zConfigureTool.add_optionsc	s�tt|��||�|�|j�|_g|_|j��D]&\}}t||�}|�	�r0|j�
|�q0t��}|�
|d�dd�|jD�}t|j�D]X\}}z|j�d�}	Wnty�Yq�Yn0||}
|
�d�|d�|	|j|j�q�dS)NTcSs i|]}|jD]}|j|�qqSr )Zoption_listr7)rArR�optionr r r!�
<dictcomp>s
�z*ConfigureTool.__init__.<locals>.<dictcomp>rzargument {}r)r\r0�__init__r3rra�positional_argumentsrrrrIrZIPAOptionParserr]Z
option_groups�	enumerate�args�pop�
IndexErrorZprocessr�options�
option_parser)�selfrorlrrrZfake_option_parserZfake_option_map�indexr@Zfake_optionrer r!ri�s.
��zConfigureTool.__init__cs(tt|�j|d�|jr$|j�d�dS)N)�
needs_rootzToo many arguments provided)r\r0�validate_optionsrlrp�error)rqrsrer r!rtszConfigureTool.validate_options�wcCs^|r
d}n|jjr|jj}n|j}t||j|jj|jd�|rLt�d|�n|sZt�d�dS)N)r'�debugr(z
Logging to %szNot logging to a file)roZlog_filer%rr'r(�loggerrw)rqZ
log_file_modeZno_filer%r r r!�_setup_loggings
�zConfigureTool._setup_loggingcCsNi}|�|j�}dd�|��D�}|D]"}t|j|d�}|dur&|||<q&t|jtj�rh|jjshd|d<z|fi|��WSt	j
�y}z�||j}z|j�
|j�}Wn4ty�|jdp�|j�dd�}	d	�|	�}
Yn0d
�|d�}
|j�d�|
|��WYd}~n>d}~0t�yH}z|j�t|��WYd}~n
d}~00dS)
z{Executes transformation, getting a flattened Installer object

        :returns: common.installer.Installer object
        cSsi|]\}}|t||��qSr )r)rA�c�nr r r!rh4rDz3ConfigureTool.init_configurator.<locals>.<dictcomp>NT�interactiverr
rz
option {0}zargument {0}rz{0}: {1})r3rrrrorMr
rNr4r	ZKnobValueErrorrrjrr�
ValueErrorrrrrpru�RuntimeErrorrW)rqrcraZknob_classesrr@�errrrdZdescr r r!�init_configurator,s2
�
(&zConfigureTool.init_configuratorcsv|��}t�tj|j�|jr\t��&tt|���|��Wd�S1sP0Yntt|���|��SdSr1)	r��signal�SIGTERM�_ConfigureTool__signal_handlerr*rr\r0�run)rqZcfgrrer r!r�Os(zConfigureTool.runcCst�dSr1)�KeyboardInterrupt)Zsignum�framer r r!Z__signal_handler\szConfigureTool.__signal_handler)F)T)rvF)r-�
__module__�__qualname__rr&r'r(r*�staticmethodr3�classmethodr]rirtryr�r�r��
__classcell__r r rer!r0ys"
�p 
#
r0cs@eZdZdZeej�Zed�fdd�	�Z	e�fdd��Z
�ZS)r.NFcs4tt|��||�|jdur0|jdddddd�dS)Nz--uninstall�	uninstallFr5zUuninstall an existing installation. The uninstall can be run with --unattended optionr6)r\r.r]r)rO)r^r_r`rer r!r]fs
�zInstallTool.add_optionscsB|jdur,|jr,tfi|j��}|j|_|Stt|��||�SdSr1)r)r�rrpr\r.�get_command_class)r^rorlZ
uninstall_clsrer r!r�ts
zInstallTool.get_command_class)F)r-r�r�r)r�r
Z	installerr3r�r]r�r�r r rer!r.as

r.c@seZdZeej�ZdS)r/N)r-r�r�r�r
Zuninstallerr3r r r r!r/~sr/)FFNTN)FFN)"�__doc__rPrYZloggingr�ZsixZ	ipapythonrrZipapython.ipa_log_managerrZipapython.ipautilrrr�r	r
�__all__ZPY3r<r=r,rXZ	getLoggerr-rxr"rrZ	AdminToolr0r.r/r r r r!�<module>s0
�
/�
i