HEX
Server: LiteSpeed
System: Linux us-phx-web629.main-hosting.eu 5.14.0-503.23.2.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 12 05:52:18 EST 2025 x86_64
User: u756937133 (756937133)
PHP: 8.2.30
Disabled: passthru,chgrp
Upload Files
File: //lib/python3.9/site-packages/up2date_client/__pycache__/config.cpython-39.pyc
a

��bg2�@s>dZddlZddlZddlZddlZddlmZmZddlm	Z	m
Z
zddlmZm
Z
Wn"eyzddlmZm
Z
Yn0ddlZejddd�Zeed	�s�eje_ejZd
ddd
ddddddddddgd�fd�Zgd�ZGdd�d�ZGdd�d�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Z d0d.d/�Z!dS)1zj
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/)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�	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__JszConfigFile.__init__c	Cs�|r
||_|jdkrdSt�|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�valrrr �
<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�liner4�key�value�comment�pos�valuesZnewvalrrr rPsd






zConfigFile.loadcCsF|jdkrdSt�|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.r/r0�path�dirname�print�_r1�chmodr9�writer�keysr�type�FileOptions�map�abspath�join�strr;�rename)rr<r>r@r?rrr �save�s,
	


"zConfigFile.savecCs
||jvSr�r�r�namerrr �__contains__�szConfigFile.__contains__cCs||vSrrrVrrr �has_key�szConfigFile.has_keycCs
|j��Sr)rrL�rrrr rL�szConfigFile.keyscCsdd�|j��D�S)NcSsg|]}|d�qS)rr)r*�arrr r,�r-z%ConfigFile.values.<locals>.<listcomp>)rrBrZrrr rB�szConfigFile.valuescCs|j�|�dSr)r�update)rrrrr r\�szConfigFile.updatecCs||jvr|j|dSdS)NrrUrVrrr �__getitem__�s
zConfigFile.__getitem__cCs0||jvr|j|}nd}|d|f|j|<dS)N)NNrrU)rrWr?r+rrr �__setitem__�s
zConfigFile.__setitem__cCs||jvr|j|dSdS)NrrrUrVrrr �info�s
zConfigFile.info)N)N)�__name__�
__module__�__qualname__�__doc__r!rrTrXrYrLrBr\r]r^r_rrrr rHs

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�runtimerrrr r!�s
zConfig.__init__cCs ||jvrdS||jvrdSdS)NTF�rgrerVrrr rX�s


zConfig.__contains__cCs||vSrrrVrrr rY�szConfig.has_keycCs4t|j���}|j��D]}||vr|�|�q|Sr)�listrgrLre�append�r�ret�krrr rL�s
zConfig.keyscCs&g}|��D]}|�|�|��q|Sr�rLrjr]rkrrr rB�sz
Config.valuescCs*g}|��D]}|�||�|�f�q|Srrnrkrrr �itemsszConfig.itemscCst|���Sr)r5rLrZrrr �__len__szConfig.__len__cCs||j|<dSr)rg�rrWr?rrr r^szConfig.__setitem__cCs,||jvr|j|S||jvr(|j|SdSrrhrVrrr r]s




zConfig.__getitem__cCs|j�|�Sr)rer_rVrrr r_szConfig.infocCs|j��dSr)rerTrZrrr rTszConfig.savecCs4|j�|�|j��D]}||jvr&q|j|=qdSr)rerrLrg)rrrmrrr r!s

zConfig.loadcCs ||j|<||jvr|j|=dSr)rergrqrrr �set+s

z
Config.set)N)r`rarbr!rXrYrLrBrorpr^r]r_rTrrrrrrr rd�s
		
rdcCs^t�}d}|d}|rZ|dd�dkr2|dd�}|�d�}tt|d��|d<d�|�}|S)zl returns proxy string in format hostname:port
    hostname is converted to Punycode (RFC3492) if needed
    Nr�zhttp://�:r)�initUp2dateConfigr4rRrrQ)�cfg�proxyZ	proxyHost�partsrrr �getProxySetting2s

rycCs:t|�}tt|dtt|d��|d|d|df��S)z? returns url where hostname is converted to Punycode (RFC3492) rrr'��)rrrrr��url�srrr �convert_url_to_punyCsrcCs6t|�}tt|dt|d�|d|d|df��S)zZ returns url where hostname is converted from Punycode (RFC3492). Returns unicode string. rrr'rzr{)rrrrr|rrr �convert_url_from_punyHsr�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*Zmirrorrrr r,Tr-z+getServerlURLFromMirror.<locals>.<listcomp>cSsg|]}|rt|��qSrr�r�rrr r,Vr-rE)rv�
startswithr1�replacerOrRr)r2�requests�get�textr4)r}Z
mirrorlistZmirrorsZrequestrrr �getServerlURLFromMirrorMs
,
r�cCs>t�}t|d�tg�kr,dd�|dD�St|d�gSdS)z� return list of serverURL from config
        Note: in config may be one value or more values, but this
        function always return list
    rcSsg|]}t|��qSrr�)r*�irrr r,ar-z!getServerlURL.<locals>.<listcomp>N)rurMr)rvrrr �
getServerlURLXsr�cCst�}|�d|�dS)z Set serverURL in config rN�rurr)rrvrrr �setServerURLesr�cCst�}|�d|�dS)z Set sslCACert in config r
Nr�)r
rvrrr �setSSLCACertjsr��/etc/sysconfig/rhn/up2datecCsNztWntydaYn0tdkrJt|�adtd<tj��rJdtd<tS)z<This function is the right way to get at the up2date config.NF�isattyT)rv�	NameErrorrd�sys�stdoutr�)Zcfg_filerrr rups

ru)r�)"rcr.r�r7r�Zrhn.connectionsrrZrhn.i18nrr�urlparserr�ImportError�urllib.parse�gettext�translation�t�hasattrr	rIrfrNrrdryrr�r�r�r�r�rurrrr �<module>sX
��#O