HEX
Server: LiteSpeed
System: Linux ratab.tasjeel.ae 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User: arhamste (1605)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/ipapython/install/__pycache__/cli.cpython-36.pyc
3

�d[ev3�@s�dZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZm
Z
mZddlmZmZdd	gZejr�eZed�Zeje�Zd
d�Zddd�Zddd	�ZGdd�dej�ZGdd�de�Z Gdd�de�Z!dS)z
Command line support.
�N)�	admintool)�standard_logging_setup)�CheckedIPAddress�CheckedIPAddressLoopback�private_ccache�)�core�common�install_tool�uninstall_toolcCs�d}x�|j�D]�\}}t||�}|j�r|jdk	r:|j}n&|jrP|jdj�}n|jdd�j�}y
|jWntk
r�d}YnXd}||j	|�7}qW|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�metavarZfmt�r�/usr/lib/python3.6/cli.py�
_get_usage"s 



r FTc	CsR|dk	rt||||||d�}nd}tdj|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&rrrr
;s,

cCs,tdj|j�tft|||t|�|||d��S)Nzuninstall_tool({0}))rr!r"rr#r$r%)r)rr*�
UninstallToolr(r )rr!r"r#r$r%rrrris
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)rrrr�
_transform�szConfigureTool._transformcs|j|j�}t|tj�r.|jddddddd�tj�}||d<�x�|j�D�]�\}}t	||�}|j
�|k	rlqJ|j�}y||}	Wn:tk
r�t
j|dj|j��}	||<|j|	�YnX|j}
t|
t�r�y|
jd	}Wq�tk
r�t}Yq�Xn|
}t�}|tk�r$d|d
<d|d<d|d
<n�|tk�r8d|d
<n�|tk�rLd|d
<n�|tk�r`d|d
<nz|tk�rtd|d
<nf|tk�r�d|d
<nRt|tj��r�d|d
<dd�|D�|d<djdj|d��|d<nd|d
<||d<||d<t|
t��r|d
dk�rd|d<nd|d<n |d
dk�r(d|d<nd |d<|j �r@d|d!<|j!�rR|j!|d<|�sp|j"|j#fd|j$ff}
n|j"d'ff}
x~|
D]v\}}g}x4|D],}|dk�r�d"j|j%d#d$��}|j&|��q�W|�sΐq�|�s�|j}nt
j'}|	j|d%|i|���q�WqJWt(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_loopbackZipZchoicecSsg|]
}|j�qSr)�value)�.0�irrr�
<listcomp>�sz-ConfigureTool.add_options.<locals>.<listcomp>�choicesz{{{0}}}�,r�constructorr2Zappend_constr3�append�store_constZstore�	sensitivez--{}rr
r4)r#)N),r/r�
issubclassr	�Interactive�
add_option�collections�OrderedDictrrr�group�KeyError�optparseZOptionGroupr�descriptionZadd_option_groupr)�listZ__parameters__r�strr(�NoneTyper7r8rr�enum�Enum�joinrBrZ
deprecatedrZcli_deprecated_namesrr@Z
SUPPRESS_HELP�superr-�add_optionsr#)�cls�parser�
positional�transformed_cls�groupsrrrZ	group_clsZ	opt_groupZ	knob_typeZknob_scalar_type�kwargsZcli_infoZhiddenrZopt_strs�cli_namer4)�	__class__rrrS�s�




















zConfigureTool.add_optionscs�tt|�j||�|j|j�|_g|_x4|jj�D]&\}}t||�}|j	�r2|jj
|�q2Wtj�}|j
|d�dd�|jD�}xdt|j�D]V\}}y|jjd�}	Wntk
r�PYnX||}
|
jdj|d�|	|j|j�q�WdS)NTcSs i|]}|jD]}||j�qqSr)Zoption_listr2)r:rHZoptionrrr�
<dictcomp>sz*ConfigureTool.__init__.<locals>.<dictcomp>rzargument {}r)rRr-�__init__r/rrW�positional_argumentsrrrr@rJZOptionParserrSZ
option_groups�	enumerate�args�pop�
IndexErrorZprocessr�options�
option_parser)�selfrcr`rrrZfake_option_parserZfake_option_map�indexr9Zfake_option)r[rrr]�s*

zConfigureTool.__init__cs(tt|�j|d�|jr$|jjd�dS)N)�
needs_rootzToo many arguments provided)rRr-�validate_optionsr`rd�error)rerg)r[rrrhszConfigureTool.validate_options�wcCs^|r
d}n|jjr|jj}n|j}t||j|jj|jd�|rLtjd|�n|sZtjd�dS)N)r$�debugr%z
Logging to %szNot logging to a file)rcZlog_filer"rr$r%�loggerrk)reZ
log_file_modeZno_filer"rrr�_setup_loggings

zConfigureTool._setup_loggingcCsLi}|j|j�}dd�|j�D�}x*|D]"}t|j|d�}|dk	r(|||<q(Wt|jtj�rn|jjrnd|d<y
|f|�St	j
k
�r}z|||j}y|jj
|j�}Wn6tk
r�|jdp�|jjdd�}	d	j|	�}
YnXd
j|d�}
|jjdj|
|��WYdd}~Xn4tk
�rF}z|jjt|��WYdd}~XnXdS)
z{Executes transformation, getting a flattened Installer object

        :returns: common.installer.Installer object
        cSsi|]\}}t||�|�qSr)r)r:�c�nrrrr\5sz3ConfigureTool.init_configurator.<locals>.<dictcomp>NT�interactiverrr
z
option {0}zargument {0}rz{0}: {1})r/rrrrcrCr	rDr0rZKnobValueErrorrr^rf�
ValueErrorrrrrdri�RuntimeErrorrM)rerYrWZknob_classesrr9�errfrZZdescrrr�init_configurator-s0



$"zConfigureTool.init_configuratorc
s^|j�}tjtj|j�|jrDt��tt|�j�|j�SQRXntt|�j�|j�SdS)N)	rt�signal�SIGTERM�_ConfigureTool__signal_handlerr'rrRr-�run)reZcfgr)r[rrrxPszConfigureTool.runcCst�dS)N)�KeyboardInterrupt)Zsignum�framerrrZ__signal_handler]szConfigureTool.__signal_handler)F)T)rjF)r*�
__module__�__qualname__rr#r$r%r'�staticmethodr/�classmethodrSr]rhrmrtrxrw�
__classcell__rr)r[rr-zso 
#
r-cs@eZdZdZeej�Zed�fdd�	�Z	e�fdd��Z
�ZS)r+NFcs4tt|�j||�|jdk	r0|jdddddd�dS)Nz--uninstall�	uninstallFr1zUuninstall an existing installation. The uninstall can be run with --unattended option)r2rr3r4)rRr+rSr&rE)rTrUrV)r[rrrSgs
zInstallTool.add_optionscs>|jdk	r(|jr(tf|j�}|j|_|Stt|�j||�SdS)N)r&r�rrdrRr+�get_command_class)rTrcr`Z
uninstall_cls)r[rrr�us
zInstallTool.get_command_class)F)r*r{r|r&r}r	Z	installerr/r~rSr�rrr)r[rr+bs


r+c@seZdZeej�ZdS)r,N)r*r{r|r}r	Zuninstallerr/rrrrr,sr,)FFNTN)FFN)"�__doc__rFrOZloggingrJruZsixZ	ipapythonrZipapython.ipa_log_managerrZipapython.ipautilrrr�rr	�__all__ZPY3r7r8r)rNZ	getLoggerr*rlr r
rZ	AdminToolr-r+r,rrrr�<module>s.

-
i