HEX
Server: Apache
System: Linux a16-asgard6.hospedagemuolhost.com.br 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: maoristu4c3dbd03 (1436)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/up2date_client/__pycache__/config.cpython-39.pyc
a

c8h�9�@sfdZddlZddlZddlZddlZddlmZmZddlm	Z	m
Z
zddlmZm
Z
Wn"eyzddlmZm
Z
Yn0ddlZejddd�Zeed	�s�eje_ejZd
ddd
dddddddddddgd�fd�Zgd�ZGdd�d�ZGdd�d�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd:d+d,�Zd;d-d.�Z d<d/d0�Z!d1d2�Z"d3d4�Z#d5d6�Z$d=d8d9�Z%dS)>zj
This module includes the Config and Up2date Config classes use by the
up2date agent to hold config info.
�N)�idn_ascii_to_puny�idn_puny_to_unicode)�ustr�sstr)�urlsplit�
urlunsplitzrhn-client-toolsT)�fallback�ugettext)zUse a HTTP Proxyr)zRemote server URLz)https://xmlrpc.cln.cloudlinux.com/XMLRPC/)z&Remote server URL for access over IPv6z.https://ipv6.xmlrpc.cln.cloudlinux.com/XMLRPC/)zMirror list URL�>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrors)z#Whether or not debugging is enabledr)zLocation of system idz/etc/sysconfig/rhn/systemid)z4Override the automatically determined system version�)z;HTTP proxy in host:port format, e.g. squid.example.com:3128r)z'The username for an authenticated proxyr)z.The password to use for an authenticated proxyr)z$To use an authenticated proxy or notr)zBNumber of attempts to make at network connections before giving up�)z)The CA cert used to verify the ssl serverz'/usr/share/rhn/CLN-ORG-TRUSTED-SSL-CERT)zDisable the reboot actionrzDConfig options that can not be overwritten by a config update action)�	sslCACert�	serverURL�disallowConfChanges�noReboot)ZenableProxyr�
serverURLipv6�	mirrorURL�debug�systemIdPathZversionOverride�	httpProxy�	proxyUser�
proxyPasswordZenableProxyAuthZnetworkRetriesr
rr)rr
ZtmpDirc@sleZdZdZddd�Zddd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
ConfigFilez;class for handling persistent config options for the clientNcCsi|_||_|jr|��dS�N)�dict�fileName�load��self�filename�r �9/usr/lib/python3.9/site-packages/up2date_client/config.py�__init__CszConfigFile.__init__c	Cs�|r
||_|jdurdSt�|jtj�s,dSt|jd�}d}|��D�]�}|�d�dkrZqD||��}|slqD|ddkr�|dd���}qDnd}|�dd�}t	|�d	kr�qD|d��}t
|d���}d}|�d
�}	|	dkr�|d|	�}|}d}|�rr|�d�}
|dv�rt|�t
����}nTt	|
�dk�rPzt|�}Wnt�yLYn0n"|
ddk�rdg}nd
d�|
D�}||f}||jv�r�|j|}|du�r�||df}|du�r�|d|f}||j|<qD|��dS)N�rr�#r����\�=r�z	[comment]�;)rrcSsg|]}|��r|���qSr )�strip)�.0�valr r r!�
<listcomp>��z#ConfigFile.load.<locals>.<listcomp>)r�os�access�R_OK�open�	readlines�findr*�split�lenrr�encode�locale�getpreferredencoding�int�
ValueErrorr�close)rr�fZ	multiline�liner5�key�value�comment�pos�valuesZnewvalr r r!rIsd






zConfigFile.loadcCsF|jdurdSt�|jtj�sTt�tj�|j�tj�sTttdtj�|j���dSt|jdd�}t�	|jdt
dd��|�d�|�d�|�d�|j�
�D]�}|j|\}}|�td	||f��t|�tg�kr�|g}|tvr�ttjj|�}|�td
|d�tt|��f��|�d�q�|��t�|jd|j�dS)
Nz%s was not foundz.new�wZ0644�zI# Automatically generated Red Hat Update Agent config file, do not edit.
z# Format: 1.0
rz%s[comment]=%s
z%s=%s
r)�
)rr/r0r1�path�dirname�print�_r2�chmodr:�writer�keysr�type�FileOptions�map�abspath�join�strr<�rename)rr=r?rAr@r r r!�save�s,
	


"zConfigFile.savecCs
||jvSr�r�r�namer r r!�__contains__�szConfigFile.__contains__cCs||vSrr rWr r r!�has_key�szConfigFile.has_keycCs
|j��Sr)rrM�rr r r!rM�szConfigFile.keyscCsdd�|j��D�S)NcSsg|]}|d�qS)rr )r+�ar r r!r-�r.z%ConfigFile.values.<locals>.<listcomp>)rrCr[r r r!rC�szConfigFile.valuescCs|j�|�dSr)r�update)rrr r r!r]�szConfigFile.updatecCs||jvr|j|dSdS)NrrVrWr r r!�__getitem__�s
zConfigFile.__getitem__cCs0||jvr|j|}nd}|d|f|j|<dS)N)NNrrV)rrXr@r,r r r!�__setitem__�s
zConfigFile.__setitem__cCs||jvr|j|dSdS)NrrrVrWr r r!�info�s
zConfigFile.info)N)N)�__name__�
__module__�__qualname__�__doc__r"rrUrYrZrMrCr]r^r_r`r r r r!r@s

H#rc@sveZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�ConfigNcCs.t�|_|j�t�|r$|j�|�i|_dSr)r�storedr]�Defaultsr�runtimerr r r!r"�s
zConfig.__init__cCs ||jvrdS||jvrdSdS)NTF�rhrfrWr r r!rY�s


zConfig.__contains__cCs||vSrr rWr r r!rZ�szConfig.has_keycCs4t|j���}|j��D]}||vr|�|�q|Sr)�listrhrMrf�append�r�ret�kr r r!rM�s
zConfig.keyscCs&g}|��D]}|�|�|��q|Sr�rMrkr^rlr r r!rC�sz
Config.valuescCs*g}|��D]}|�||�|�f�q|Srrorlr r r!�items�szConfig.itemscCst|���Sr)r6rMr[r r r!�__len__szConfig.__len__cCs||j|<dSr)rh�rrXr@r r r!r_szConfig.__setitem__cCs,||jvr|j|S||jvr(|j|SdSrrirWr r r!r^
s




zConfig.__getitem__cCs|j�|�Sr)rfr`rWr r r!r`szConfig.infocCs|j��dSr)rfrUr[r r r!rUszConfig.savecCs4|j�|�|j��D]}||jvr&q|j|=qdSr)rfrrMrh)rrrnr r r!rs

zConfig.loadcCs ||j|<||jvr|j|=dSr)rfrhrrr r r!�set#s

z
Config.set)N)rarbrcr"rYrZrMrCrprqr_r^r`rUrrsr r r r!re�s
		
recCs^t�}d}|d}|rZ|dd�dkr2|dd�}|�d�}tt|d��|d<d�|�}|S)zkreturns proxy string in format hostname:port
    hostname is converted to Punycode (RFC3492) if needed
    Nr�zhttp://�:r)�initUp2dateConfigr5rSrrR)�cfg�proxyZ	proxyHost�partsr r r!�getProxySetting*s

rzcCs:t|�}tt|dtt|d��|d|d|df��S)z=returns url where hostname is converted to Punycode (RFC3492)rrr(��)rrrrr��url�sr r r!�convert_url_to_puny<sr�cCs6t|�}tt|dt|d�|d|d|df��S)zXreturns url where hostname is converted from Punycode (RFC3492). Returns unicode string.rrr(r{r|)rrrrr}r r r!�convert_url_from_punyBsr�cCs�td}|durd}|�d�rnt|�dd�d��.}ttj|���}dd�|D�Wd�S1sd0Yt�	|�}dd�|j
�d	�D�S)
Nrr
zfile://rr#cSsg|]}|rt|��qSr �r��r+Zmirrorr r r!r-Or.z+getServerlURLFromMirror.<locals>.<listcomp>cSsg|]}|rt|��qSr r�r�r r r!r-Qr.rF)rw�
startswithr2�replacerPrSr*r3�requests�get�textr5)r~Z
mirrorlistZmirrorsZrequestr r r!�getServerlURLFromMirrorHs
,
r�cCs&t|t�rdd�|D�St|�gSdS)z�
    Internal function to process server URL to Punycode format.

    Processes both single URLs and lists of URLs.

    :param serverUrl: URL or list of URLs to process.
    :return: List of processed URLs in Punycode format.
    cSsg|]}t|��qSr r�)r+�ir r r!r-^r.z$processServerURL.<locals>.<listcomp>N)�
isinstancerjr�)Z	serverUrlr r r!�processServerURLTs	
r�FcCs^t�}t|d�}t|d�}||f}||f}|r6|Sddlm}|��}|dkrZ|rZ|S|S)a�
    Return a pair of server URLs (primary and fallback) based on the preferred interface.

    :param registration: If True, it indicates that the URLs are being fetched for registration purposes.
    If that is the case, the function will always use IPv4 URLs with IPv6 as fallback,
    regardless of the preferred_interface setting.
    Assumed false by default, expected to be specified explicitly when needed.

    :return: Pair of server URL configs, first is the primary, second is the fallback.
    rrr)�up2dateAuthZIPv6)rvr�Zup2date_clientr�ZgetPreferredInterface)�registrationrwZipv4_urlZipv6_urlZipv4_primary_pairZipv6_primary_pairr�Zpreferred_interfacer r r!�getServerURLPaircsr�cCst|d�dS)az
    Return the primary server URL from config based on preferred_interface.

    If preferred_interface=IPv6 in system_id, returns serverURLipv6 if available.
    Otherwise returns normal serverURL.
    Note: the config may have one value or a list of values, but this function always returns a list.

    :return: List of server URLs with hostnames converted to Punycode.
    �r�r�r�r�r r r!�getServerURL�s
r�cCst|d�dS)z�
    Determine the fallback server URL from system_id.

    The fallback server URL is the one that is *not* set as preferred_interface.
    If preferred_interface is IPv6, it returns serverURL (i.e. IPv4 host), otherwise serverURLipv6.
    r�rr�r�r r r!�getFallbackServerURL�sr�cCst�}|�d|�dS)zSet serverURL in configrN�rvrs�rrwr r r!�setServerURL�sr�cCst�}|�d|�dS)zSet serverURLipv6 in configrNr�r�r r r!�setServerURLipv6�sr�cCst�}|�d|�dS)zSet sslCACert in configr
Nr�)r
rwr r r!�setSSLCACert�sr��/etc/sysconfig/rhn/up2datecCsNztWntydaYn0tdkrJt|�adtd<tj��rJdtd<tS)z<This function is the right way to get at the up2date config.NF�isattyT)rw�	NameErrorre�sys�stdoutr�)Zcfg_filer r r!rv�s

rv)F)F)F)r�)&rdr/r�r8r�Zrhn.connectionsrrZrhn.i18nrr�urlparserr�ImportError�urllib.parse�gettext�translation�t�hasattrr	rJrgrOrrerzr�r�r�r�r�r�r�r�r�r�rvr r r r!�<module>sb
��O
'