Edit File: rpclib.cpython-36.pyc
3 �c�^������������������@���s`��d�Z�ddlZddlZddlZddlmZ�ddlmZ�ddlm Z �y<ddl Z ddlmZm Z mZmZmZmZ�ddlmZmZ�W�nF�ek r����ddljZ eZeZ eZeZeZeZddlmZmZ�Y�nX�dZd d ��Zdd��Z d d��Z!G�dd��de"�Z#G�dd��d�Z$G�dd��de$�Z%G�dd��de&�Z'G�dd��de&�Z(dd��Z)G�dd��d�Z*G�dd��de*�Z+dd ��Z,dS�)!zG2.8.62.8.6-8.module_el8.7.0+6623+3ddf28328.module_el8.7.0+6623+3ddf2832�����N)� transports)�sstr)�UserDictCase)�ListType� TupleType� StringType�UnicodeType�DictType�DictionaryType)� splittype� splithost����c���������� ���C���s"���yt�jt�j|���dS����dS�dS�)z5 Returns true if n is IPv6 address, false otherwise. TFN)�socketZ inet_ptonZAF_INET6)�n��r����/usr/lib/python3.6/rpclib.py� check_ipv6.���s ����r���c������� ������C���s����|�j�dd�}d}d}d}d}t|�dkr^|d�}|d�j�dd�}|d�}t|�dkrf|d�}n|d�}|d�dkr�tj�dtd�\}}|jd�jd �}n6t|�r�|}n(|j�dd�}|d�}t|�dkr�|d�}||||fS�) z| Function used to split host information in an URL per RFC 2396 handle full hostname like user:passwd@host:port �@����N����r����:�[z(?<=\]):�])�split�len�reZip_port�lstrip�rstripr���) Z hoststring�l�hostZport�userZpasswdZhostportZuserinfo�arrr���r���r���� split_host6���s,���� r"���c�������������C���s8���|�d�krt�d��|�jdd�}t|�dkr0|d�}�t|��S�)NzHost string cannot be nullz://r���r���)� ValueErrorr���r���r"���)�proxyr!���r���r���r����get_proxy_info[���s����r%���c���������������@���s���e�Zd�ZdS�)�MalformedURIErrorN)�__name__� __module__�__qualname__r���r���r���r���r&���g���s���r&���c������������ ���@���s��e�Zd�ZdZejZejZej Z ejZd;dd�Z d<dd�Zdd ��Zd d��Zdd ��Zdd��Zd=dd�Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��ZeZd'd(��Zd>d)d*�Z d+d,��Z!d-d.��Z"d/d0��Z#d1d2��Z$d3d4��Z%d?d5d6�Z&d7d8��Z'd9d:��Z(dS�)@�Servera7��uri [,options] -> a logical connection to an XML-RPC server uri is the connection point on the server, given as scheme://host/target. The standard implementation always supports the "http" scheme. If SSL socket support is available (Python 2.0), it also supports "https". If the target part and the slash preceding it are both omitted, "/RPC2" is assumed. The following options can be given as keyword arguments: transport: a transport factory encoding: the request encoding (default is UTF-8) verbose: verbosity level proxy: use an HTTP proxy username: username for authenticated HTTP proxy password: password for authenticated HTTP proxy All 8-bit strings passed to the server proxy are assumed to use the given encoding. Nr���c�������������C���s6��|d�krZt�|�\}}} }|d�k r.d||f�}n|}| d�k rZ|d�krZ| }|d�k rZ|d�krZ|}t|�|�_d�|�_d�|�_d�|�_||�_||�_||�_| |�_ t tj���dkr�tj��d�|�_ nt|�_ |�j���|d�kr�d|�_|�j|�j|||| �}nd|�_d�|�_d|�_||�_g�|�_d�|�_||�_||�_|�j|��|�j| ��d�|�_t��|�_d�S�)Nz%s:%sr���r���)r%���r����_uri�_refreshCallback�_progressCallback�_bufferSize�_proxy� _username� _password�_timeoutr����__version__r����rpc_version�_reset_host_handler_and_type�_allow_redirect�default_transport�_type�_redirected�use_handler_path� _transport�_trusted_cert_files�_lang� _encoding�_verbose�set_refresh_callback�set_progress_callback�send_handlerr����_headers)�self�uri� transport�encoding�verboser$����username�password�refreshCallback�progressCallback�timeoutZphZppZpuZpwr���r���r����__init__����sJ���� zServer.__init__c�������������C���sZ���|r4|dkr |�j�||||d�}qV|�j||||d�}n"|dkrJ|�j|d�}n|�j|d�}|S�)N�https)Z proxyUsernameZ proxyPasswordrM���)rM���)�_transport_class_https_proxy�_transport_class_proxy�_transport_class_https�_transport_class)rD����typer$���rI���rJ���rM���rF���r���r���r���r7�������s����zServer.default_transportc�������������C���s ���||�_�d�S�)N)r6���)rD���Zallowr���r���r����allow_redirect����s����zServer.allow_redirectc�������������C���s���|�j�s d�S�|�jS�)N)r6���r9���)rD���r���r���r���� redirected����s����zServer.redirectedc�������������C���s���||�_�|�jj|��d�S�)N)r,���r;���r@���)rD���rK���r���r���r���r@�������s����zServer.set_refresh_callbackc�������������C���s���||�_�|�jj|��d�S�)N)r.���r;����set_buffer_size)rD���� bufferSizer���r���r���rW�������s����zServer.set_buffer_size��@��c�������������C���s���||�_�|�jj||��d�S�)N)r-���r;���rA���)rD���rL���rX���r���r���r���rA�������s����zServer.set_progress_callbackc�������������C���s���t�j|||�jd�S�)N)rG���)� xmlrpclib�dumpsr>���)rD����params� methodnamer���r���r���� _req_body����s����zServer._req_bodyc�������������C���s���|�j�r|�j�jS�d�S�)N)r;���Z headers_in)rD���r���r���r����get_response_headers����s����zServer.get_response_headersc�������������C���s���|�j�r|�j�jS�d�S�)N)r;����response_status)rD���r���r���r����get_response_status����s����zServer.get_response_statusc�������������C���s���|�j�r|�j�jS�d�S�)N)r;���Zresponse_reason)rD���r���r���r����get_response_reason��s����zServer.get_response_reasonc������� ������C���s����|�j���}|sdS�|jd�}|s"dS�td|j���}|d�dks@t�t|�dksPt�|d�jd�}t|�dksnt�|\}}|dkr�d}nt|�}|jd �\}}|t|�t|�d �}|S�)aS��Returns a dictionary with three values: length: the total length of the entity-body (can be None) first_byte_pos: the position of the first byte (zero based) last_byte_pos: the position of the last byte (zero based) The range is inclusive; that is, a response 8-9/102 means two bytes Nz Content-Ranger����bytesr���r����/�*�-)ZlengthZfirst_byte_posZ last_byte_pos)r_����get�filterr����AssertionErrorr����int) rD����headersZ content_ranger!����brangeZ total_len�start�end�resultr���r���r����get_content_range��s(���� zServer.get_content_rangec�������������C���s$���|�j���}|sd�S�d|kr |d�S�d�S�)Nz Accept-Ranges)r_���)rD���rk���r���r���r���� accept_ranges)��s����zServer.accept_rangesc�������������C���s����t�|�j�\}}|dkrtd��t|�dk�s:|dd��dkr>t�|dkrR|j��|�_n||�_|�jdkrjtd ��t|�\|�_|�_ |�j s�d |�_ dS�)z Reset the attributes: self._host, self._handler, self._type according the value of self._uri. Nzmissing protocol in uri����r���r���z//�httprO���zunsupported XML-RPC protocolz/RPC2)rs���rO���) r���r+���r&���r����lowerr8����IOErrorr����_host�_handler)rD���rT���rE���r���r���r���r5���1��s���� z#Server._reset_host_handler_and_typec����������������s����d}g�}x�|D�]�}t�|�}|tks*|tkr>tj|dt|��}nf|tkr^t��fdd�|D���}nF|tkrz��fdd�|D��}n*|t ks�|t kr�t��fdd�|j��D���}|j |��qW�t|�dkr�|d �S�t|�S�d S�)a>�� Strip characters, which are not allowed according: http://www.w3.org/TR/2006/REC-xml-20060816/#charsets From spec: Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */ z#[\x00-\x09]|[\x0b-\x0c]|[\x0e-\x1f]��c�������������3���s���|�]}��j�|�V��qd�S�)N)�_strip_characters)�.0�i)rD���r���r���� <genexpr>U��s����z+Server._strip_characters.<locals>.<genexpr>c����������������s���g�|�]}��j�|��qS�r���)ry���)rz���r{���)rD���r���r���� <listcomp>W��s����z,Server._strip_characters.<locals>.<listcomp>c����������������s���g�|�]\}}��j�||��qS�r���)ry���)rz����name�val)rD���r���r���r}���Y��s����r���r���N)rT���r���r���r����subr���r����tupler���r ���r ����dict�items�appendr���)rD����argsZregexpro����itemZ item_typer���)rD���r���ry���H��s ���� zServer._strip_charactersc������� ������C���s���d}d}|�j�����xt|tkr$td��|�jj���x$|�jj��D�]\}}|�jj||��q:W�|�jjdd|�j ���|�jjdd��|�j r�|�jjdd��|r�|�jjd d ��|�jr�|�jjd|�j��|�j|�j |�|�}y&|�jj|�j|�j||�jd�}|�jj} W�n2�tjk �r���|�j�r ��ntj��d�j} Y�nX�d |�_|d7�}| dk�r:P�n| dk�rLd|�_q|�jj��|�_d|�_d}|�j �srtd��|�j�r�td|�j|�jf���t|�j�\} }| d k�r�| j��} | dk�r�td| ���|�jdk�r�| dk�r�td��t |�\|�_|�_|�j�s�d|�_|�`|�j!| |�j"|�j#|�j$|�j%�|�_|�j&|�j'��|�j(|�j)��|�j*|�j+��|�j,|�j-��|�j.g�krt/|�jd�rx|�j.D�]}|�jj0|���qnW�qW�t1|t2j3��r�|S�t1|t4��r�t5|�dk�r�|d�}|S�)zL Call a method on the remote server we can handle redirections. r���z!Unable to fetch requested PackagezX-Infoz+RPC Processor (C) Red Hat, Inc (version %s)zX-Client-Versionr���zX-RHN-Transport-Capabilityzfollow-redirects=3zX-RHN-Redirect�0z X-RHN-Path)rH���N������-���.��zRedirects not allowedz%s redirected to %srs���rO���z%Redirected to unsupported protocol %sz)HTTPS redirected to HTTP is not supportedz/RPC2�add_trusted_cert)r����r����)rs���rO���)6r5����MAX_REDIRECTIONS�InvalidRedirectionErrorr;���Z clear_headersrC���r����� set_header� add_headerr4���r6���rB���r^���ry����requestrv���rw���r?���r`���rZ���Z ProtocolErrorr:����sys�exc_info�errcoder9���rV����printr+���r���rt���r8���r���r7���r/���r0���r1���r2���rA���r-���r@���r,���rW���r.����setlangr=���r<����hasattrr����� isinstancer���ZFiler���r���) rD���r]���r\���Zredirect_responseZretry�k�vr����ZresponseZ save_response�typrE����certfiler���r���r����_requestb��s����� zServer._requestc�������������C���s���d|�j�j|�j|�jf�S�)Nz <%s for %s%s>)� __class__r'���rv���rw���)rD���r���r���r����__repr__���s����zServer.__repr__c�������������C���s���t�|�j|�S�)N)�_Methodr����)rD���r~���r���r���r����__getattr__���s����zServer.__getattr__c�������������K���s,���|�j�s d�S�|j||d���|�j�jf�|��d�S�)N)�transferrG���)r;����update�set_transport_flags)rD���r����rG����kwargsr���r���r���r�������s���� zServer.set_transport_flagsc�������������C���s���|�j�s i�S�|�j�j��S�)N)r;����get_transport_flags)rD���r���r���r���r�������s����zServer.get_transport_flagsc�������������C���s���d�S�)Nr���)rD���r���r���r����reset_transport_flags���s����zServer.reset_transport_flagsc�������������C���s@���t�|�t�g��t�f��gkr.dd��|D��|�j|<�nt|�|�j|<�d�S�)Nc�������������S���s���g�|�]}t�|��qS�r���)�str)rz����ar���r���r���r}������s����z%Server.set_header.<locals>.<listcomp>)rT���rC���r����)rD���r~����argr���r���r���r�������s����zServer.set_headerc�������������C���sF���||�j�kr&|�j�|�}t|t�s4|g}ng��}|�j�|<�|jt|���d�S�)N)rC���r����r���r����r����)rD���r~���r����Zvlistr���r���r���r�������s���� zServer.add_headerc�������������C���s(���||�_�|�jr$t|�jd�r$|�jj|��d�S�)Nr����)r=���r;���r����r����)rD���Zlangr���r���r���r���� ��s����zServer.setlangc�������������C���s���t�d��d�S�)NzThis method is deprecated)�NotImplementedError)rD���Zca_chainr���r���r����use_CA_chain��s����zServer.use_CA_chainc�������������C���s.���|�j�j|��|�jr*t|�jd�r*|�jj|��d�S�)Nr����)r<���r����r;���r����r����)rD���r����r���r���r���r������s����zServer.add_trusted_certc�������������C���s���|�j�r|�j�j���d�|�_�d�S�)N)r;����close)rD���r���r���r���r������s���� zServer.close) NNr���NNNNNN)NNNN)rY���)r���r���)N))r'���r(���r)����__doc__r���Z TransportrS���Z SafeTransportrR���ZProxyTransportrQ���ZSafeProxyTransportrP���rN���r7���rU���rV���r@���rW���rA���r^���r_���ra���rb���rp���rq���r5���ry���r����r�����__str__r����r����r����r����r����r����r����r����r����r����r���r���r���r���r*���l���sH����� C� #s r*���c������������ ���@���s\���e�Zd�Zdddddi�dddf dd�Zdd��Zdd��Zdd d �Zdd��Zd d��Zddd�Z dS�)� GETServerNr���c�������������C���sB���t�j|�||||||| | d� �||�_||�_|�j|�_|�jd�d�d��d�S�)N)r$���rI���rJ���rF���rK���rL���rM���)�offset�amount)r*���rN���Z_client_versionrC���rw���� _orig_handler� set_range)rD���rE���rF���r$���rI���rJ���Zclient_versionrk���rK���rL���rM���r���r���r���rN�����s����zGETServer.__init__c�������������C���s$��|�st�|�dk�rtd��tdd��|�jjd��}|d|d�|g�t|dd�����}ddj|��|�_|�j|�_|�j r�|�j �r�|�j��|�_x$|�jj ��D�]\}}|�jj||��q�W�|�jd�k �r |�jdkr�t|�j�d�}|�jd�k r�|t|�j|�j�d���}ndt|�j���}|�jjd d |���|�jjdd��dS�) Nr���z$Required parameter channel not foundc�������������S���s���|�dkS�)Nrx���r���)�xr���r���r����<lambda>5��s����z%GETServer._req_body.<locals>.<lambda>rd���z$RHNr���rf���ZRangezbytes=)�allow_partial_contentrx���)r���� Exceptionrh���r����r����list�joinrw���rB���r9���r:���� _new_req_bodyrC���r����r;���r�����_offsetr�����_amountr����)rD���r\���r]���Zh_compsZhndl�hr����rl���r���r���r���r^���1��s&����" zGETServer._req_bodyc�������������C���s���t�|�j�\}}t|�\}}|S�)N)r���r9���r���)rD���rT���ZtmpuriZsiteZhandlerr���r���r���r����U��s����zGETServer._new_req_bodyc�������������C���s����|d�k rByt�|�}W�n,�tk r@���td|�d�tj��d���Y�nX�|d�k r�yt�|�}W�n,�tk r����td|�d�tj��d���Y�nX�|dkr�td|���||�_||�_d�S�)NzInvalid value `%s' for offsetr���zInvalid value `%s' for amountr���)rj���r#���� RangeErrorr����r����r����r����)rD���r����r����r���r���r���r����Z��s����zGETServer.set_rangec�������������C���s���|�j�jdd��d�S�)Nr���)r����)r;���r����)rD���r���r���r���r����o��s����zGETServer.reset_transport_flagsc�������������C���s���t�|�j|�S�)N)� SlicingMethodr����)rD���r~���r���r���r���r����r��s����zGETServer.__getattr__c�������������C���s$���t�j|�|||||d�}|jd��|S�)N)r$���rI���rJ���rM���ZGET)r*���r7���Z set_method)rD���rT���r$���rI���rJ���rM����retr���r���r���r7���v��s���� zGETServer.default_transport)NN)NNNN) r'���r(���r)���rN���r^���r����r����r����r����r7���r���r���r���r���r������s���$ �r����c���������������@���s���e�Zd�ZdS�)r����N)r'���r(���r)���r���r���r���r���r����|��s���r����c���������������@���s���e�Zd�ZdS�)r����N)r'���r(���r)���r���r���r���r���r������s���r����c�������������C���s>���dd�l�}t|�|j�s*||�kr&|�|�gS�g�S�dd��|�j|�D��S�)Nr���c�������������S���s ���g�|�]}|j�d�d�d�j���qS�)r���r���)r����strip)rz���r����r���r���r���r}������s����z#getHeaderValues.<locals>.<listcomp>)� mimetoolsr����ZMessageZgetallmatchingheaders)rk���r~���r����r���r���r����getHeaderValues���s���� r����c���������������@���s4���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��ZeZd S�)r����z{ some magic to bind an XML-RPC method to an RPC server. supports "nested" methods (e.g. examples.getStateName) c�������������C���s���||�_�||�_d�S�)N)�_send�_name)rD����sendr~���r���r���r���rN������s����z_Method.__init__c�������������C���s���t�|�jd|�j|f��S�)Nz%s.%s)r����r����r����)rD���r~���r���r���r���r�������s����z_Method.__getattr__c�������������G���s���|�j�|�j|�S�)N)r����r����)rD���r����r���r���r����__call__���s����z_Method.__call__c�������������C���s���d|�j�j|�j|�jf�S�)Nz<%s %s (%s)>)r����r'���r����r����)rD���r���r���r���r�������s����z_Method.__repr__N) r'���r(���r)���r����rN���r����r����r����r����r���r���r���r���r�������s���r����c���������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) r����z; A "slicing method" allows for byte range requests c�������������C���s���t�j|�||��d�|�_d�S�)N)r����rN���r����)rD���r����r~���r���r���r���rN������s����zSlicingMethod.__init__c�������������C���s���t�|�jd|�j|f��S�)Nz%s.%s)r����r����r����)rD���r~���r���r���r���r�������s����zSlicingMethod.__getattr__c�������������O���s����|j�d�|�_|j�d�|�_y|�jjj|�j|�jd��W�n�tk rF���Y�nX�|�j|�j|�}y|�jjj���W�n�tk rz���Y�nX�|S�)Nr����r����)r����r����) rg���r����r����r����Zim_selfr�����AttributeErrorr����r����)rD���r����r����ro���r���r���r���r�������s����zSlicingMethod.__call__N)r'���r(���r)���r����rN���r����r����r���r���r���r���r�������s���r����c�������������C���sb���d}d}d}||�kr t�|�|��}d}||�krZt|�|�}|rZdj|�}ddl}d|j|��}||fS�)z% Reports the error from the headers. r���rx���zX-RHN-Fault-CodezX-RHN-Fault-StringNz%s)rj���r����r�����base64Zdecodestring)rk���r�����errmsg�sZ_sListZ_sr����r���r���r����reportError���s���� r����)-r3���r���r���r����Zrhnr���Zrhn.i18nr���Zrhn.UserDictCaser���rZ����typesr���r���r���r���r ���r ���Zurllibr���r����ImportErrorZ xmlrpc.clientZclientr����r����rc���r����r����Zurllib.parser����r���r"���r%���ru���r&���r*���r����r����r����r����r����r����r����r����r���r���r���r����<module>���sF��� %���5^