<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
۔*j-.                 @   s:  d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ y$d dlZd dlZd dlZd dlZW n< ek
r   d dljZd dljZd dljZd dljZY nX d dlZejddd	Zeed
seje_ejZdd ZG dd dej Z!G dd dZ"dddZ#dd Z$dS )    N)config)
up2dateLog)up2dateErrors)up2dateUtils)rpclibzrhn-client-toolsT)Zfallbackugettextc             C   s   t |  d S )N)print)msg r
   /usr/lib/python3.6/rpcServer.pystdoutMsgCallback%   s    r   c                   s0   e Zd Zi Zdd Z fddZdd Z  ZS )RetryServerc             C   s
   || _ d S )N)
serverList)selfr   r
   r
   r   addServerList-   s    zRetryServer.addServerListc       
         s  t j | _xyt j||}W n tjk
r<    Y nj tjk
rt   | jj	d t
td tjd Y n2   | jj }|d kr| jj  | jrdjdd | jj D }t
td t
|  d| j }dtj d	 tj d f }|| j| j< || }|d
| jj   }| jj	| tj| jj }|d	 }	|d | _|d | _|	j }	|	dkrptjd|	 | j| _|	| _| jj | _| jsd| _d| _ wY nX P qW |S )Nz,Error: Server Unavailable. Please try later.   
c             S   s   g | ]\}}d ||f qS )z%s:
%sr
   ).0hosterrorr
   r
   r   
<listcomp>I   s    z)RetryServer._request1.<locals>.<listcomp>z>Errors occurred while trying to connect to the remote servers.z!An error occurred talking to %s:
z%s
%s
r   zTrying the next serverURL: %s
   httphttpsz%Redirected to unsupported protocol %sz/RPC2)r   r   )!r   initLoglogsuperZ_ServerProxy__request	xmlrpclibZFaulthttplibZBadStatusLinelog_mer   _sysexitr   nextresetServerIndex_error_messagesjoinitemsZ_hostexc_infoserverurlparseZurlsplitZ_handlerlowerr   ZInvalidRedirectionErrorZ_orig_handlerZ_typeZ_uriZ_allow_redirect)
r   Z
methodnameZparamsretr*   Zerror_combined_msgr	   Zexception_msgZ	parse_restyp)	__class__r
   r   	_request10   sT    






zRetryServer._request1c             C   s   t jj| j|S )N)xmlrpcclientZ_Methodr0   )r   namer
   r
   r   __getattr__p   s    zRetryServer.__getattr__)__name__
__module____qualname__r&   r   r0   r4   __classcell__r
   r
   )r/   r   r   )   s   @r   c               @   s0   e Zd Zg fddZdd Zdd Zdd Zd	S )

ServerListc             C   s   || _ d| _d S )Nr   )r   index)r   Z
serverlistr
   r
   r   __init__w   s    zServerList.__init__c             C   s   | j | j | _| jS )N)r   r:   Z	serverurl)r   r
   r
   r   r*   {   s    zServerList.serverc             C   s(   | j d | _ | j t| jkr d S | j S )Nr   )r:   lenr   r*   )r   r
   r
   r   r$      s    zServerList.nextc             C   s
   d| _ d S )Nr   )r:   )r   r
   r
   r   r%      s    zServerList.resetServerIndexN)r5   r6   r7   r;   r*   r$   r%   r
   r
   r
   r   r9   v   s   r9   Fc             C   s\  t j }tj }tjtjj |d }t|t	r:t
jd|p@d}|d rTtj }nd }| stj|d}tj|d}	|	rx$|	D ]}
|
|kr~|j|
 q~W n| }t|}d }d }|d r|d pd }|d pd }t|j ||||d	}|j| |jd
tj  dd |jjD }|rXtj|tjsNdtd|f }|jd|  t
j||j| |S )NZ	sslCACertz SSL certificate must be a stringz'/usr/share/rhn/CLN-ORG-TRUSTED-SSL-CERTZenableProxy)registrationZenableProxyAuth	proxyUserproxyPassword)proxyZusernameZpasswordtimeoutzX-Up2date-Versionc             S   s"   g | ]}t j |d  dkrdqS )r   r   T)r+   )r   ir
   r
   r   r      s    zgetServer.<locals>.<listcomp>z%s: %sz ERROR: can not find RHNS CA filez%s)r   r   r   initUp2dateConfigurllib3Zdisable_warnings
exceptionsZSubjectAltNameWarning
isinstancelistr   ZValidationErrorZgetProxySettingZgetServerURLZgetFallbackServerURLappendr9   r   r*   r   Z
add_headerr   versionr   osaccessR_OKr!   r    ZSSLCertificateFileNotFoundZset_trusted_cert)ZserverOverriderA   r=   r   cfgZcaZrhns_ca_certZ	proxyHostZ
serverUrlsZfallbackURLurlr   r>   r?   sZneed_car	   r
   r
   r   	getServer   sR    






rP   c             O   s  t j }|jd| jd   tj }d }d}yt|d }W n tk
rT   d}Y nX |dkrbd}xLd}d }y| ||}W n tk
r   t	j
tdY n tjk
rH }	 z|jdtj d |f  ||kr2tj d }	t|	jdkrt	j
t|	jd n$t	j
|	jr&t|	jd nt|	nd}W Y d d }	~	X n* tjk
rr   td t	j
dY n  tjk
r   tj d }	d	}
|
d
|	j  }
|
d|	j  }
|
d|	j  }
|j|
 t	j
|
Y n tjk
rP   tj d }	|jd|	j|f  |	jdkr0|jd|	j   |jd t!j"|	j#\}}d}t$|dkrt|jd|  ddl%m&} |j'  t$|dkr|jtd t	j
|	jt$|dkr*t(|d t(g kr|d }n|d }t(|t(g krd|d |d |d |d f }n|}d||f }
|j|
 t	j)|
|sL||krHt	j
|	jnd}Y n" tj*k
rp   t	j
dY nX |d krP nd}|rt+j,d |d }||krft	j
dqfW |S )NzrpcServer: Calling XMLRPC %sZ_Method__namer   ZnetworkRetriesr   zConnection aborted by the userz(A socket error occurred: %s, attempt #%szhttplib.IncompleteReadz
An HTTP error occurred:
zURL: %s
zStatus Code: %s
zError Message: %s
z,A protocol error occurred: %s , attempt #%s,i  zCould not find URL, %sz)Check server name and/or URL, then retry
"   z'Auth token timeout occurred
 errmsg: %s)up2dateAuth3   z.Server has refused connection due to high load   z%s-%s-%s.%sr      zFile Not Found: %s
%sz Broken response from the server.   z0The data returned from the server was incomplete)-r   r   Z	log_debug__dict__r   rC   int
ValueErrorKeyboardInterruptr   ZCommunicationErrorr!   socketr   r    r"   r)   r<   argsstrr   ZIncompleteReadr   urllib2Z	HTTPErrorfilenamecoder	   r   ZProtocolErrorerrmsgZerrcoderN   r   ZreportErrorZheadersabsup2date_clientrR   ZupdateLoginInfotypeFileNotFoundErrorZResponseErrortimeZsleep)methodr\   kwargsr   rM   r-   Zattempt_countZattemptsZfailureer	   ZerrCodeZerrMsgresetrR   ZpkgZpkgNamer
   r
   r   doCall   s    

"


"




rk   )NNF)%rJ   r"   r[   rf   Zxmlrpc.clientr1   rD   rc   r   r   r   r   Zrhnr   r   r^   r+   r   ImportErrorZhttp.clientr2   Zurllib.requestZrequestZurllib.parseparsegettextZtranslationthasattrr   r!   r   ZServerr   r9   rP   rk   r
   r
   r
   r   <module>   s@   



M  
C