Edit File: config.cpython-36.pyc
3 ��cL2������������������@���sR��d�Z�ddlZddlZddlZddlZddlmZ�ddlmZm Z �ddl mZmZ�yddl mZmZ�W�n$�ek r����ddlmZmZ�Y�nX�ddlZejddd �Zeed �s�eje_ejZd;d<d=d>d?d@dAdBdCdDdEdFdGddd d!d"gfd#�Zd$dd%gZG�d&d'��d'�ZG�d(d)��d)�Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Z d4d5��Z!d6d7��Z"dHd9d:�Z#dS�)Izj This module includes the Config and Up2date Config classes use by the up2date agent to hold config info. �����N)�SubjectAltNameWarning)�idn_ascii_to_puny�idn_puny_to_unicode)�ustr�sstr)�urlsplit� urlunsplitzrhn-client-toolsT)Zfallback�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)ZenableProxyr���� mirrorURL�debug�systemIdPathZversionOverride� httpProxy� proxyUser� proxyPasswordZenableProxyAuthZnetworkRetriesr���r ���r���r#���ZtmpDirc���������������@���sl���e�Zd�ZdZddd�Zddd�Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��ZdS�)� ConfigFilez;class for handling persistent config options for the clientNc�������������C���s���i�|�_�||�_|�jr|�j���d�S�)N)�dict�fileName�load)�self�filename��r-����/usr/lib/python3.6/config.py�__init__K���s����zConfigFile.__init__c�������������C���s���|r ||�_�|�j�d�krd�S�tj|�j�tj�s,d�S�t|�j�d�}d}�x�|j��D��]�}|jd�dkr^qH||j���}|spqH|d�dkr�|d�d��j��}qHnd}|jdd�}t |�dkr�qH|d�j��}t |d�j���}d�}|jd �} | dkr�|d�| ��}|}d�}|�rx|jd �} |dk�r"t|jt j����}nVt | �dk�rVyt|�}W�n�tk �rR���Y�nX�n"| d�dk�rjg�}nd d��| D��}||f}||�jk�r�|�j|�}|d�k �r�||d�f}|d�k �r�|d�|f}||�j|<�qHW�|j���d�S�)N�rr����#r���r����\�=����z [comment]�;r%���r&���c�������������S���s���g�|�]}|j���r|j����qS�r-���)�strip)�.0�valr-���r-���r.���� <listcomp>����s����z#ConfigFile.load.<locals>.<listcomp>���r:���r:���)r%���r&���)r)����os�access�R_OK�open� readlines�findr6����split�lenr���r����encode�locale�getpreferredencoding�int� ValueErrorr(����close)r+���r,����fZ multiline�linerA����key�value�comment�pos�valuesZnewvalr-���r-���r.���r*���Q���sd���� zConfigFile.loadc���������� ���C���sJ��|�j�d�krd�S�tj|�j�tj�sTtjtjj|�j��tj�sTttdtjj|�j������d�S�t|�j�d�d�}tj |�j�d�t dd���|jd��|jd��|jd��x�|�jj ��D�]�}|�j|�\}}|jtd ||f����t|�tg��kr�|g}|tkr�ttjj|�}|jtd |djtt|��f����|jd��q�W�|j���tj|�j�d�|�j���d�S�) Nz%s was not foundz.new�wZ0644����zI# Automatically generated Red Hat Update Agent config file, do not edit. z# Format: 1.0 r���z%s[comment]=%s z%s=%s r5���� )r)���r;���r<���r=����path�dirname�print�_r>����chmodrF����writer(����keysr����type�FileOptions�map�abspath�join�strrH����rename)r+���rI���rK���rM���rL���r-���r-���r.����save����s,���� "zConfigFile.savec�������������C���s ���||�j�kS�)N)r(���)r+����namer-���r-���r.����__contains__����s����zConfigFile.__contains__c�������������C���s���||�kS�)Nr-���)r+���rb���r-���r-���r.����has_key����s����zConfigFile.has_keyc�������������C���s ���|�j�j��S�)N)r(���rY���)r+���r-���r-���r.���rY�������s����zConfigFile.keysc�������������C���s���dd��|�j�j��D��S�)Nc�������������S���s���g�|�]}|d���qS�)r���r-���)r7����ar-���r-���r.���r9�������s����z%ConfigFile.values.<locals>.<listcomp>)r(���rO���)r+���r-���r-���r.���rO�������s����zConfigFile.valuesc�������������C���s���|�j�j|��d�S�)N)r(����update)r+���r(���r-���r-���r.���rf�������s����zConfigFile.updatec�������������C���s���||�j�kr|�j�|�d�S�d�S�)Nr���)r(���)r+���rb���r-���r-���r.����__getitem__����s���� zConfigFile.__getitem__c�������������C���s0���||�j�kr|�j�|�}nd}|d�|f|�j�|<�d�S�)Nr���)NN)r(���)r+���rb���rL���r8���r-���r-���r.����__setitem__����s���� zConfigFile.__setitem__c�������������C���s���||�j�kr|�j�|�d�S�dS�)Nr���r���)r(���)r+���rb���r-���r-���r.����info����s���� zConfigFile.info)N)N)�__name__� __module__�__qualname__�__doc__r/���r*���ra���rc���rd���rY���rO���rf���rg���rh���ri���r-���r-���r-���r.���r'���I���s��� H$r'���c���������������@���sv���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��ZdS�)�ConfigNc�������������C���s.���t���|�_|�jjt��|r$|�jj|��i�|�_d�S�)N)r'����storedrf����Defaultsr*����runtime)r+���r,���r-���r-���r.���r/�������s ����zConfig.__init__c�������������C���s ���||�j�krdS�||�jkrdS�dS�)NTF)rq���ro���)r+���rb���r-���r-���r.���rc�������s ���� zConfig.__contains__c�������������C���s���||�kS�)Nr-���)r+���rb���r-���r-���r.���rd�������s����zConfig.has_keyc�������������C���s8���t�|�jj���}x$|�jj��D�]}||kr|j|��qW�|S�)N)�listrq���rY���ro����append)r+����ret�kr-���r-���r.���rY�������s ����zConfig.keysc�������������C���s*���g�}x |�j���D�]}|j|�j|���qW�|S�)N)rY���rs���rg���)r+���rt���ru���r-���r-���r.���rO������s����z Config.valuesc�������������C���s.���g�}x$|�j���D�]}|j||�j|�f��qW�|S�)N)rY���rs���rg���)r+���rt���ru���r-���r-���r.����items��s����zConfig.itemsc�������������C���s���t�|�j���S�)N)rB���rY���)r+���r-���r-���r.����__len__��s����zConfig.__len__c�������������C���s���||�j�|<�d�S�)N)rq���)r+���rb���rL���r-���r-���r.���rh�����s����zConfig.__setitem__c�������������C���s,���||�j�kr|�j�|�S�||�jkr(|�j|�S�d�S�)N)rq���ro���)r+���rb���r-���r-���r.���rg�����s ���� zConfig.__getitem__c�������������C���s���|�j�j|�S�)N)ro���ri���)r+���rb���r-���r-���r.���ri�����s����zConfig.infoc�������������C���s���|�j�j���d�S�)N)ro���ra���)r+���r-���r-���r.���ra�����s����zConfig.savec�������������C���s8���|�j�j|��x&|�j�j��D�]}||�jkr(q|�j|=�qW�d�S�)N)ro���r*���rY���rq���)r+���r,���ru���r-���r-���r.���r*���"��s ���� zConfig.loadc�������������C���s ���||�j�|<�||�jkr|�j|=�d�S�)N)ro���rq���)r+���rb���rL���r-���r-���r.����set,��s���� z Config.set)N)rj���rk���rl���r/���rc���rd���rY���rO���rv���rw���rh���rg���ri���ra���r*���rx���r-���r-���r-���r.���rn�������s��� rn���c��������������C���s^���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���)�initUp2dateConfigrA���r_���r���r^���)�cfg�proxyZ proxyHost�partsr-���r-���r.����getProxySetting3��s���� r���c�������������C���s:���t�|��}tt|d�tt|d���|d�|d�|d�f��S�)z? returns url where hostname is converted to Punycode (RFC3492) r���r���r4�����������)r���r���r���r���r���)�url�sr-���r-���r.����convert_url_to_punyD��s����r����c�������������C���s6���t�|��}tt|d�t|d��|d�|d�|d�f��S�)zZ returns url where hostname is converted from Punycode (RFC3492). Returns unicode string. r���r���r4���r����r����)r���r���r���r���)r����r����r-���r-���r.����convert_url_from_punyI��s����r����c����������� ���C���sv���t�d�}�|�d�krd}�|�jd�rVt|�jdd�d�� }ttj|j���}dd��|D��S�Q�R�X�tj |��}dd��|j jd �D��S�) Nr!���z>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrorszfile://r���r0���c�������������S���s���g�|�]}|rt�|��qS�r-���)r����)r7����mirrorr-���r-���r.���r9���U��s����z+getServerlURLFromMirror.<locals>.<listcomp>c�������������S���s���g�|�]}|rt�|��qS�r-���)r����)r7���r����r-���r-���r.���r9���W��s����rR���)r|���� startswithr>����replacer\���r_���r6���r?����requests�get�textrA���)r����Z mirrorlistZmirrorsZrequestr-���r-���r.����getServerlURLFromMirrorN��s���� r����c��������������C���s>���t���}�t|�d��tg��kr,dd��|�d�D��S�t|�d��gS�dS�)z� return list of serverURL from config Note: in config may be one value or more values, but this function always return list r���c�������������S���s���g�|�]}t�|��qS�r-���)r����)r7����ir-���r-���r.���r9���b��s����z!getServerlURL.<locals>.<listcomp>N)r{���rZ���r����)r|���r-���r-���r.���� getServerlURLY��s����r����c�������������C���s���t���}|jd|���dS�)z Set serverURL in config r���N)r{���rx���)r���r|���r-���r-���r.����setServerURLf��s����r����c�������������C���s���t���}|jd|���dS�)z Set sslCACert in config r���N)r{���rx���)r���r|���r-���r-���r.����setSSLCACertk��s����r�����/etc/sysconfig/rhn/up2datec�������������C���sP���yt��W�n�tk r ���da�Y�nX�t�dkrLt|��a�dt�d<�tjj��rLdt�d<�t�S�)z<This function is the right way to get at the up2date config.NF�isattyT)r|���� NameErrorrn����sys�stdoutr����)Zcfg_filer-���r-���r.���r{���q��s���� r{���)r ���r���)r���r���)r ���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r���r���)r����)$rm���r;���r����rD���r����Z$requests.packages.urllib3.exceptionsr���Zrhn.connectionsr���r���Zrhn.i18nr���r���Zurlparser���r����ImportErrorZurllib.parse�gettextZtranslation�t�hasattrr ���rV���rp���r[���r'���rn���r���r����r����r����r����r����r����r{���r-���r-���r-���r.����<module>���sr��� ������������� �O