509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
UˆŠZ"  ã               @   sè   d dl Z d dlZd dlZyd dlmZ W n ek
r@   eZY nX 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 d dl	mZ d d	l	mZ dad
Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zddd„Zddd„Zddd„ZdS )é    N)ÚDictType)Úrpclib)Ú
clientCaps)Úconfig)Ú	rhnserver)Úup2dateErrors)Ú
up2dateLog)Úup2dateUtilsz /var/spool/up2date/loginAuth.pklc              C   s@   t jƒ } | d }tj|tjƒs"d S t|dƒ}|jƒ }|jƒ  |S )NÚsystemIdPathÚr)r   ÚinitUp2dateConfigÚosÚaccessÚR_OKÚopenÚreadÚclose)ÚcfgÚpathÚfÚret© r   ú!/usr/lib/python3.6/up2dateAuth.pyÚgetSystemId   s    
r   c        	      C   s&  t jƒ } ytjjtƒ ƒd d d }W n
   dS tjƒ }||k�r"tj	ƒ }|j
jtƒ |ƒ}| d }|d |jdƒ… }tj|tjƒsžytj|ƒ W n
   dS tj|tjƒs°dS tj|tjƒrâ|d }ytj||ƒ W n
   dS t|dƒ}|j|ƒ |jƒ  ytj|tddƒƒ W n   Y nX d S )	Nr   Z
os_releaser
   ú/z.saveÚwÚ0600é   )r   r   r   Ú	xmlrpclibÚloadsr   r	   Z
getVersionr   Ú	RhnServerZregistrationZupgrade_versionÚrfindr   r   ÚW_OKÚmkdirÚF_OKÚrenamer   Úwriter   ÚchmodÚint)	r   ÚidVerZ	systemVerÚsZnewSystemIdr   ÚdirZsavePathr   r   r   r   ÚmaybeUpdateVersion&   s>    


r,   c              C   sä   t jƒ } | jdƒ ts$| jdƒ dS tjƒ tdœ}tjjtƒ}tj	|tj
ƒs†y tj|ƒ tj|tddƒƒ W n   | jd| ƒ dS ttdƒ}tjttd	dƒƒ tj||ƒ |jƒ  |d
 ttd ƒ }| jd|d
 d|dƒ dS )z›
    Pickle loginInfo to a file
    Returns:
    True    -- wrote loginInfo to a pickle file
    False   -- did _not_ write loginInfo to a pickle file
    zwriteCachedLogin() invokedz1writeCachedLogin() loginInfo is None, so bailing.F)ÚtimeÚ	loginInfoZ0700r   z'Unable to write pickled loginInfo to %sÚwbr   r-   zX-RHN-Auth-Expire-OffsetzWrote pickled loginInfo at z with expiration of z	 seconds.T)r   ÚinitLogÚ	log_debugr.   r-   r   r   ÚdirnameÚpcklAuthFileNamer   r"   r#   r'   r(   Úlog_mer   ÚpickleÚdumpr   Úfloat)ÚlogÚdataZpcklDirÚpcklAuthÚ
expireTimer   r   r   ÚwriteCachedLoginP   s.    



r<   c        	      C   sT  t jƒ } | jdƒ tjttjƒs2| jdt ƒ dS ttdƒ}ytj	|ƒ}W n* t
tfk
rt   | jdƒ |jƒ  dS X |jƒ  yLtjjtƒ ƒd d d }d|d	 d
  }||krÈ| jd||f ƒ dS W n   Y nX |d }|d	 }tjƒ }|t|d ƒ }| jd|d|dt|d ƒƒ ||k�r<| jd||f ƒ dS t|ƒ | jd|ƒ dS )zb
    Read pickle info from a file
    Caches authorization info for connecting to the server.
    zreadCachedLogin invokedz'Unable to read pickled loginInfo at: %sFÚrbzSUnexpected EOF. Probably an empty file,                        regenerate auth filer   Z	system_idzID-%sr.   zX-RHN-Server-Idz#system id version changed: %s vs %sr-   zX-RHN-Auth-Expire-Offsetz(Checking pickled loginInfo, currentTime=z, createTime=z, expire-offset=z9Pickled loginInfo has expired, created = %s, expire = %s.z<readCachedLogin(): using pickled loginInfo set to expire at T)r   r0   r1   r   r   r3   r   r   r5   ÚloadÚEOFErrorÚ
ValueErrorr   r   r   r   r   r-   r7   Ú_updateLoginInfo)	r8   r:   r9   r)   ZcidVerZcreatedTimeÚliZcurrentTimer;   r   r   r   ÚreadCachedLoginp   sH    


rC   c             C   s2   t | ƒtkr*t tƒtkr$tj| ƒ q.| andadS )z,
    Update the global var, "loginInfo"
    N)Útyper   r.   Úupdate)rB   r   r   r   rA   œ   s
    rA   Fc       	      C   sÈ   t jƒ }|jd| ƒ | r,t r,tƒ r,tS tj|d�}tjj	ƒ }x|D ]\}}|j
||ƒ qHW | d krntƒ } | svd S tƒ  |jdƒ |jj| ƒ}|jjƒ  t|ƒ tƒ  tr¸|jdƒ |jdtƒ tS )Nzlogin(forceUpdate=%s) invoked)Útimeoutzlogging into up2date serverz?successfully retrieved authentication token from up2date serverz
logininfo:)r   r0   r1   r.   rC   r   r    r   ZcapsZheaderFormatZ
add_headerr   r,   r4   Zup2dateÚloginZcapabilitiesZvalidaterA   r<   )	ZsystemIdÚforceUpdaterF   r8   ZserverZ
headerlistZ
headerNameÚvaluerB   r   r   r   rG   ­   s.    



rG   c             C   s0   t jƒ }|jdƒ td| d� ts,tjdƒ‚tS )NzupdateLoginInfo() login infoT)rH   rF   zUnable to authenticate)r   r0   r4   rG   r.   r   ZAuthenticationError)rF   r8   r   r   r   ÚupdateLoginInfoÒ   s    

rJ   c             C   s8   yt a W n tk
r    d a Y nX t r*t S t| d� t S )N)rF   )r.   Ú	NameErrorrG   )rF   r   r   r   ÚgetLoginInfoÜ   s    

rL   )NFN)N)N)r   r5   r-   Útypesr   ÚImportErrorÚdictZrhnr   Zup2date_clientr   r   r   r   r   r	   r.   r3   r   r,   r<   rC   rA   rG   rJ   rL   r   r   r   r   Ú<module>   s.   
* ,
%

