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: //lib/python3.9/site-packages/ipapython/__pycache__/config.cpython-39.pyc
a

�N(i�%�@sJddlmZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZddlm
ZddlmZddlZddlmZddlZddlmZdd	lmZdd
lmZddlmZmZGdd
�d
e�Z Gdd�de�Z!d(dd�Z"dd�Z#dd�Z$Gdd�de�Z%Gdd�de�Z&d)dd�Z'Gdd�d�Z(e(�Z)d*d d!�Z*d+d"d#�Z+d$d%�Z,d,d&d'�Z-dS)-�)�absolute_import)�Option�Values�OptionGroup�OptionParser�
SUPPRESS_HELP�IndentedHelpFormatter�OptionValueError�make_option)�copy)�ConfigParser)�urlsplitN)�DNSException)�paths)�DN)�	query_srv)�CheckedIPAddress�CheckedIPAddressLoopbackc@s"eZdZddd�Zdd�ZeZdS)�IPAConfigError�cCs||_t�||�dS�N)�msg�	Exception�__init__)�selfr�r�4/usr/lib/python3.9/site-packages/ipapython/config.pyr(szIPAConfigError.__init__cCs|jSr)r�rrrr�__repr__,szIPAConfigError.__repr__N)r)�__name__�
__module__�__qualname__rr�__str__rrrrr's
rc@seZdZdZdd�ZdS)�IPAFormatterzDOur own optparse formatter that indents multiple lined usage string.cCsPd}dt|�}|�d�}d||df}|dd�D]}|d||f7}q6|S)NzUsage:� �
z%s %s
r�)�len�split)r�usageZusage_stringZspacing�lines�ret�linerrr�format_usage3s
zIPAFormatter.format_usageN)rr r!�__doc__r-rrrrr#1sr#Fc
CsXz|rt|�WSt|�WSWn6tyR}ztd�|||���WYd}~n
d}~00dS)Nz$option {}: invalid IP address {}: {})rrrr	�format)�option�opt�value�allow_loopback�errr�check_ip_option=s
�r5c
CsDz
t|�WSty>}ztd||f��WYd}~n
d}~00dS)Nzoption %s: invalid DN: %s)rrr	)r0r1r2r4rrr�check_dn_optionGs
r6c
CsZ|j}|dusJd��z
||�WStyT}ztd�||���WYd}~n
d}~00dS)Nz1Oops! Developer forgot to set 'constructor' kwargzoption {} invalid: {})�constructorrr	r/)r0r1r2Zconr4rrr�check_constructorNs
r8c@s\eZdZdZejddgZejdZeej�Ze	ed<e
je	dd�ed<eed	<e
ed<d
S)�	IPAOptionzo
    optparse.Option subclass with support of options labeled as
    security-sensitive such as passwords.
    �	sensitiver7)�ip�dnr7�ip_with_loopbackr;T)r3r=r<N)rr r!r.rZATTRSZTYPESrZTYPE_CHECKERr5�	functools�partialr6r8rrrrr9Ws

�
r9c
@s6eZdZdZddedddddddf
dd�Zdd�ZdS)	�IPAOptionParserz`
    optparse.OptionParser subclass that uses IPAOption by default
    for storing options.
    N�errorTc
Cs$tj||||||||||	|
d�dS)N)
r)�option_list�option_class�version�conflict_handler�description�	formatter�add_help_option�prog�epilog)rr)rr)rBrCrDrErFrGrHrIrJrrrrks
�zIPAOptionParser.__init__cCsDdd�|��D�}i}|j��D]\}}||js |||<q t|�S)zv
        Returns all options except those with sensitive=True in the same
        fashion as parse_args would
        cSsi|]}t|d�r|j|�qS)r:)�hasattr�dest)�.0�orrr�
<dictcomp>�s
�z1IPAOptionParser.get_safe_opts.<locals>.<dictcomp>)Z_get_all_options�__dict__�itemsr:r)rZoptsZ
all_opts_dictZsafe_opts_dictr0r2rrr�
get_safe_opts}s�

zIPAOptionParser.get_safe_opts)rr r!r.r9rrRrrrrr@fs�
r@cCsV|r|�d�}ng}t|�}t|�}||kr8|�d�n||krR|�d||�dS)zCVerify that we have all positional arguments we need, if not, exit.r$ztoo many argumentszno %s specifiedN)r(r'rA)�parser�argsZneeded_argsZneeded_listZlen_needZlen_haverrr�verify_args�srUc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	IPAConfigcCsd|_g|_d|_dSr)�
default_realm�default_server�default_domainrrrrr�szIPAConfig.__init__cCs|jr|jStd��dS)Nzno default realm)rWrrrrr�	get_realm�szIPAConfig.get_realmcCst|j�r|jStd��dS)Nzno default server)r'rXrrrrr�
get_server�s
zIPAConfig.get_servercCs|jr|jStd��dS)Nzno default domain)rYrrrrr�
get_domain�szIPAConfig.get_domainN)rr r!rrZr[r\rrrrrV�srVTcCs�t�}|�tj�ztjs(|�dd�t_Wnty<Yn0|r|z&|�dd�}t|�}tj	�
|j�WntyzYn0ztjs�|�dd�t_Wnty�Yn0dS)N�global�realmZ
xmlrpc_uri�domain)
�SafeConfigParser�readrZIPA_DEFAULT_CONF�configrW�getrr
rX�append�netlocrY)�discover_server�p�s�serverrrr�__parse_config�s&rjcCsPg}�z0tjs�ttj���}d|}zt|�}Wn�ty�ddlm}zt	j
�|�}WntyrYYWdS0|��}t|�dkr�YWdSd|}zt|�}Wq�Wqtty�Yqt0qtYn0t|��
d�t_|�r4|�sdtj}zt|�}Wnt�y
Yn0|D]"}t|j��
d�}tj�|��qWnt�yJYn0dS)Nz_ldap._tcp.r)�FQDNF�.z
_ldap._tcp.%sz_ldap._tcp.%s.)rbrY�strrW�lowerrrZipalib.constantsrk�dns�nameZ	from_text�parent�rstrip�targetrXrdr)rfZserversr_rprkri�hostnamerrr�__discover_config�sH
rucCs4|jdddd�|jdddd�|jdd	d
d�dS)Nz--realmr^zOverride default IPA realm)rL�helpz--serverriz#Override default FQDN of IPA serverz--domainr_zOverride default IPA DNS domain)Z
add_option)rSrrr�add_standard_optionss
�rwcCs�|r.|jt_|jt_|jr.tj�|j�d��t	tj�r>d}nd}t
|�t|�g}tjD]}||vr\|�|�q\|t_tjs�t
d��tjs�t
d��tjs�t
d��dS)N�,FTz^IPA realm not found in DNS, in the config file (/etc/ipa/default.conf) or on the command line.z_IPA server not found in DNS, in the config file (/etc/ipa/default.conf) or on the command line.zWIPA domain not found in the config file (/etc/ipa/default.conf) or on the command line.)r^rbrWr_rYrirX�extendr(r'rjrurdr)�optionsrfZ
new_serverrirrr�init_configs*

r{)F)N)T)T)N).Z
__future__rZoptparserrrrrrr	r
rZconfigparserrr`�urllib.parser
r>Z
dns.exceptionrZdns.nameroZipaplatform.pathsrZipapython.dnrZipapython.dnsutilrZipapython.ipautilrrrrr#r5r6r8r9r@rUrVrbrjrurwr{rrrr�<module>s2(


	(


3