PK APOCALYPSE V1

APOCALYPSE V1

Current Path : /proc/self/root/lib/python3.6/site-packages/up2date_client/__pycache__/
Upload File :
Current File : //proc/self/root/lib/python3.6/site-packages/up2date_client/__pycache__/config.cpython-36.pyc

3

`��g2�@sFdZddlZddlZddlZddlZddlmZmZddlm	Z	m
Z
yddlmZm
Z
Wn$ek
r|ddlmZm
Z
YnXddlZejddd�Zeed	�s�eje_ejZd:d;d<d=d>d?d@dAdBdCdDdEdFdddd d!gfd"�Zd#dd$gZGd%d&�d&�ZGd'd(�d(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z dGd8d9�Z!dS)Hzj
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�Use a HTTP Proxy�Remote server URL�)https://xmlrpc.cln.cloudlinux.com/XMLRPC/�Mirror list URL�>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrors�#Whether or not debugging is enabled�Location of system id�/etc/sysconfig/rhn/systemid�4Override the automatically determined system version��;HTTP proxy in host:port format, e.g. squid.example.com:3128�'The username for an authenticated proxy�.The password to use for an authenticated proxy�$To use an authenticated proxy or not�BNumber of attempts to make at network connections before giving up��)The CA cert used to verify the ssl server�'/usr/share/rhn/CLN-ORG-TRUSTED-SSL-CERT�Disable the reboot actionzDConfig options that can not be overwritten by a config update action�	sslCACert�	serverURL�disallowConfChanges�noReboot)�enableProxyr�	mirrorURL�debug�systemIdPathZversionOverride�	httpProxy�	proxyUser�
proxyPassword�enableProxyAuth�networkRetriesrr 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|j�dS)N)�dict�fileName�load)�self�filename�r0�9/usr/lib/python3.6/site-packages/up2date_client/config.py�__init__JszConfigFile.__init__cCs�|r
||_|jdkrdStj|jtj�s,dSt|jd�}d}�x�|j�D�]�}|jd�dkr^qH||j�}|spqH|ddkr�|dd�j�}qHnd}|jdd�}t	|�dkr�qH|dj�}t
|dj��}d}|jd	�}	|	dkr�|d|	�}|}d}|�rx|jd
�}
|dk�r"t|jt
j���}nVt	|
�dk�rVyt|�}Wntk
�rRYnXn"|
ddk�rjg}nd
d�|
D�}||f}||jk�r�|j|}|dk	�r�||df}|dk	�r�|d|f}||j|<qHW|j�dS)N�rr�#rr�\�=�z	[comment]�;r&r'cSsg|]}|j�r|j��qSr0)�strip)�.0�valr0r0r1�
<listcomp>�sz#ConfigFile.load.<locals>.<listcomp>���r=r=)r&r')r,�os�access�R_OK�open�	readlines�findr9�split�lenrr�encode�locale�getpreferredencoding�int�
ValueErrorr+�close)r.r/�fZ	multiline�linerD�key�value�comment�pos�valuesZnewvalr0r0r1r-Psd






zConfigFile.loadc	CsJ|jdkrdStj|jtj�sTtjtjj|j�tj�sTttdtjj|j���dSt|jdd�}tj	|jdt
dd��|jd�|jd�|jd�x�|jj
�D]�}|j|\}}|jtd	||f��t|�tg�kr�|g}|tkr�ttjj|�}|jtd
|djtt|��f��|jd�q�W|j�tj|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
r8�
)r,r>r?r@�path�dirname�print�_rA�chmodrI�writer+�keysr�type�FileOptions�map�abspath�join�strrK�rename)r.rLrNrPrOr0r0r1�save�s,
	


"zConfigFile.savecCs
||jkS)N)r+)r.�namer0r0r1�__contains__�szConfigFile.__contains__cCs||kS)Nr0)r.rer0r0r1�has_key�szConfigFile.has_keycCs
|jj�S)N)r+r\)r.r0r0r1r\�szConfigFile.keyscCsdd�|jj�D�S)NcSsg|]}|d�qS)rr0)r:�ar0r0r1r<�sz%ConfigFile.values.<locals>.<listcomp>)r+rR)r.r0r0r1rR�szConfigFile.valuescCs|jj|�dS)N)r+�update)r.r+r0r0r1ri�szConfigFile.updatecCs||jkr|j|dSdS)Nr)r+)r.rer0r0r1�__getitem__�s
zConfigFile.__getitem__cCs0||jkr|j|}nd}|d|f|j|<dS)Nr)NN)r+)r.rerOr;r0r0r1�__setitem__�s
zConfigFile.__setitem__cCs||jkr|j|dSdS)Nrr)r+)r.rer0r0r1�info�s
zConfigFile.info)N)N)�__name__�
__module__�__qualname__�__doc__r2r-rdrfrgr\rRrirjrkrlr0r0r0r1r*Hs

H$r*c@sveZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�ConfigNcCs.t�|_|jjt�|r$|jj|�i|_dS)N)r*�storedri�Defaultsr-�runtime)r.r/r0r0r1r2�s
zConfig.__init__cCs ||jkrdS||jkrdSdS)NTF)rtrr)r.rer0r0r1rf�s


zConfig.__contains__cCs||kS)Nr0)r.rer0r0r1rg�szConfig.has_keycCs8t|jj��}x$|jj�D]}||kr|j|�qW|S)N)�listrtr\rr�append)r.�ret�kr0r0r1r\�s
zConfig.keyscCs*g}x |j�D]}|j|j|��qW|S)N)r\rvrj)r.rwrxr0r0r1rR�sz
Config.valuescCs.g}x$|j�D]}|j||j|�f�qW|S)N)r\rvrj)r.rwrxr0r0r1�itemsszConfig.itemscCst|j��S)N)rEr\)r.r0r0r1�__len__szConfig.__len__cCs||j|<dS)N)rt)r.rerOr0r0r1rkszConfig.__setitem__cCs,||jkr|j|S||jkr(|j|SdS)N)rtrr)r.rer0r0r1rjs




zConfig.__getitem__cCs|jj|�S)N)rrrl)r.rer0r0r1rlszConfig.infocCs|jj�dS)N)rrrd)r.r0r0r1rdszConfig.savecCs8|jj|�x&|jj�D]}||jkr(q|j|=qWdS)N)rrr-r\rt)r.r/rxr0r0r1r-!s

zConfig.loadcCs ||j|<||jkr|j|=dS)N)rrrt)r.rerOr0r0r1�set+s

z
Config.set)N)rmrnror2rfrgr\rRryrzrkrjrlrdr-r{r0r0r0r1rq�s
		
rqcCs^t�}d}|d}|rZ|dd�dkr2|dd�}|jd�}tt|d��|d<dj|�}|S)zl returns proxy string in format hostname:port
    hostname is converted to Punycode (RFC3492) if needed
    Nr%�zhttp://�:r)�initUp2dateConfigrDrbrra)�cfg�proxy�	proxyHost�partsr0r0r1�getProxySetting2s

r�cCs:t|�}tt|dtt|d��|d|d|df��S)z? returns url where hostname is converted to Punycode (RFC3492) rrr7��)rrrrr)�url�sr0r0r1�convert_url_to_punyCsr�cCs6t|�}tt|dt|d�|d|d|df��S)zZ returns url where hostname is converted from Punycode (RFC3492). Returns unicode string. rrr7r�r�)rrrr)r�r�r0r0r1�convert_url_from_punyHsr�c
Csvtd}|dkrd}|jd�rVt|jdd�d�� }ttj|j��}dd�|D�SQRXtj	|�}dd�|j
jd	�D�S)
Nr"z>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrorszfile://rr3cSsg|]}|rt|��qSr0)r�)r:�mirrorr0r0r1r<Tsz+getServerlURLFromMirror.<locals>.<listcomp>cSsg|]}|rt|��qSr0)r�)r:r�r0r0r1r<VsrU)r�
startswithrA�replacer_rbr9rB�requests�get�textrD)r��
mirrorlist�mirrors�requestr0r0r1�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|��qSr0)r�)r:�ir0r0r1r<asz!getServerlURL.<locals>.<listcomp>N)r~r]r�)rr0r0r1�
getServerlURLXsr�cCst�}|jd|�dS)z Set serverURL in config rN)r~r{)rrr0r0r1�setServerURLesr�cCst�}|jd|�dS)z Set sslCACert in config rN)r~r{)rrr0r0r1�setSSLCACertjsr��/etc/sysconfig/rhn/up2datecCsPytWntk
r daYnXtdkrLt|�adtd<tjj�rLdtd<tS)z<This function is the right way to get at the up2date config.NF�isattyT)r�	NameErrorrq�sys�stdoutr�)Zcfg_filer0r0r1r~ps

r~)r
r)rr)r
r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)r�)"rpr>r�rGr�Zrhn.connectionsrr�rhn.i18nrr�urlparserr�ImportError�urllib.parse�gettext�translation�t�hasattrr	rYrsr^r*rqr�r�r�r�r�r�r�r~r0r0r0r1�<module>sp

O


if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic