HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3.6/site-packages/ipapython/__pycache__/config.cpython-36.pyc
3

�d[e�$�@s>ddlmZddlmZmZmZmZmZddlmZddl	m
Z
ddlmZddl
Z
ddlmZddlZddlmZdd	lmZdd
lmZddlmZmZGdd
�d
e�ZGdd�de�Zd(dd�Zdd�Zdd�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�OptionParser�IndentedHelpFormatter�OptionValueError)�copy)�SafeConfigParser)�urlsplitN)�DNSException)�paths)�DN)�	query_srv)�CheckedIPAddress�CheckedIPAddressLoopbackc@s"eZdZddd�Zdd�ZeZdS)�IPAConfigError�cCs||_tj||�dS)N)�msg�	Exception�__init__)�selfr�r�/usr/lib/python3.6/config.pyr(szIPAConfigError.__init__cCs|jS)N)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.cCsTd}dt|�}|jd�}d||df}x$|dd�D]}|d||f7}q8W|S)NzUsage:� �
z%s %s
r�)�len�split)r�usageZusage_stringZspacing�lines�ret�linerrr�format_usage3s
zIPAFormatter.format_usageN)rrr�__doc__r(rrrrr1srFcCsRy|rt|�St|�SWn4tk
rL}ztdj|||���WYdd}~XnXdS)Nz$option {}: invalid IP address {}: {})rrrr�format)�option�opt�value�allow_loopback�errr�check_ip_option=sr0cCs@yt|�Stk
r:}ztd||f��WYdd}~XnXdS)Nzoption %s: invalid DN: %s)r
rr)r+r,r-r/rrr�check_dn_optionGsr1cCsV|j}|dk	std��y||�Stk
rP}ztdj||���WYdd}~XnXdS)Nz1Oops! Developer forgot to set 'constructor' kwargzoption {} invalid: {})�constructor�AssertionErrorrrr*)r+r,r-Zconr/rrr�check_constructorNsr4c@s\eZdZdZejddgZejd
Zeej�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.
    �	sensitiver2�ip�dn�ip_with_loopbackT)r.N)r7r8r2r9)rrrr)rZATTRSZTYPESrZTYPE_CHECKERr0�	functools�partialr1r4rrrrr5Ws

r5c	@s4eZdZdZddeddddddf	dd�Zdd�ZdS)	�IPAOptionParserz`
    optparse.OptionParser subclass that uses IPAOption by default
    for storing options.
    N�errorTc

Cs tj||||||||||	�
dS)N)rr)
rr$Zoption_listZoption_class�versionZconflict_handler�descriptionZ	formatterZadd_help_option�progrrrrks
zIPAOptionParser.__init__cCsHdd�|j�D�}i}x(|jj�D]\}}||js"|||<q"Wt|�S)zv
        Returns all options except those with sensitive=True in the same
        fashion as parse_args would
        cSsi|]}t|d�r||j�qS)r6)�hasattr�dest)�.0�orrr�
<dictcomp>~sz1IPAOptionParser.get_safe_opts.<locals>.<dictcomp>)Z_get_all_options�__dict__�itemsr6r)rZoptsZ
all_opts_dictZsafe_opts_dictr+r-rrr�
get_safe_optsys
zIPAOptionParser.get_safe_opts)rrrr)r5rrHrrrrr<fsr<cCsV|r|jd�}ng}t|�}t|�}||kr8|jd�n||krR|jd||�dS)zCVerify that we have all positional arguments we need, if not, exit.rztoo many argumentszno %s specifiedN)r#r"r=)�parser�argsZneeded_argsZneeded_listZlen_needZlen_haverrr�verify_args�srKc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	IPAConfigcCsd|_g|_d|_dS)N)�
default_realm�default_server�default_domain)rrrrr�szIPAConfig.__init__cCs|jr|jStd��dS)Nzno default realm)rMr)rrrr�	get_realm�szIPAConfig.get_realmcCst|j�r|jStd��dS)Nzno default server)r"rNr)rrrr�
get_server�s
zIPAConfig.get_servercCs|jr|jStd��dS)Nzno default domain)rOr)rrrr�
get_domain�szIPAConfig.get_domainN)rrrrrPrQrRrrrrrL�srLTcCs�t�}|jtj�ytjs(|jdd�t_Wntk
r>YnX|r�y&|jdd�}t|�}tj	j
|j�Wntk
r~YnXytjs�|jdd�t_Wntk
r�YnXdS)N�global�realmZ
xmlrpc_uri�domain)
r	�readrZIPA_DEFAULT_CONF�configrM�getrr
rN�appendZnetlocrO)�discover_server�p�s�serverrrr�__parse_config�s&r^cCsVg}�y4tjs�ttj�j�}d|}yt|�}Wn�tk
r�ddlm}yt	j
j|�}Wntk
rpdSXxH|j�}t|�dkr�dSd|}yt|�}PWqttk
r�YqtXqtWYnXt|�j
d�t_|�r8|�sdtj}yt|�}Wntk
�r
YnXx*|D]"}t|j�j
d�}tjj|��qWWntk
�rPYnXdS)Nz_ldap._tcp.r)�FQDNF�.z
_ldap._tcp.%sz_ldap._tcp.%s.)rWrO�strrM�lowerrrZipalib.constantsr_�dns�nameZ	from_text�parent�rstrip�targetrNrYr)rZZserversrUrdr_r]Zhostnamerrr�__discover_config�sJ

rhcCs4|jdddd�|jdddd�|jdd	d
d�dS)Nz--realmrTzOverride default IPA realm)rB�helpz--serverr]z#Override default FQDN of IPA serverz--domainrUzOverride default IPA DNS domain)Z
add_option)rIrrr�add_standard_options�srjcCs�|r.|jt_|jt_|jr.tjj|jjd��t	tj�r>d}nd}t
|�t|�g}x tjD]}||kr^|j|�q^W|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.)rTrWrMrUrOr]rN�extendr#r"r^rhrYr)ZoptionsrZZ
new_serverr]rrr�init_configs*
rm)F)N)T)T)N)*Z
__future__rZoptparserrrrrrZconfigparserr	Zurllib.parser
r:Z
dns.exceptionrZdns.namercZipaplatform.pathsrZipapython.dnr
Zipapython.dnsutilrZipapython.ipautilrrrrrr0r1r4r5r<rKrLrWr^rhrjrmrrrr�<module>s2


	$


3