3 0Q=ji4 ã @ sD d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ yd dlm Z W n e k rd eZ Y nX d dlm Z d dlmZ d dlmZ d dlmZ d dlmZ d d lmZ d d lmZ dadZdd „ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd)dd„Zd*dd„Zd+dd„ZG dd „ d eƒZ d!d"„ Z!d#d$„ Z"d%d&„ Z#d'd(„ Z$dS ),é N)Ú rpcServer)ÚDictType)Úrpclib)Úconfig)Ú rhnserver)Ú up2dateErrors)Ú up2dateLog)Úup2dateUtils)Ú statisticsz /var/spool/up2date/loginAuth.pklc C s@ t jƒ } | d }tj|tjƒ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ƒ } tƒ }d}|dkr|S yDtjj|ƒd d }|jddƒ}|dkrN|}n| jd||f ƒ |S tk rŽ | jdƒ | j t jƒ Ž Y nX |S ) z� Extract the preferred_interface parameter from system_id XML Returns 'IPv4' or 'IPv6' if specified, otherwise 'IPv4' as default ÚIPv4Nr Úpreferred_interfaceÚIPv6zGInvalid preferred_interface value '%s' in system_id, defaulting to '%s'zGFailed to parse system_id XML, preferred_interface defaulting to 'IPv4')r r )r ÚinitLogr r Ú xmlrpclibÚloadsÚgetÚlog_meÚ ExceptionÚ log_exceptionÚsysÚexc_info)ÚlogÚsystemIdr ZparamsZ cfg_interfacer r r ÚgetPreferredInterface( s$ r) c $ C sv t jjdƒrd S tjƒ } ytjjtƒ ƒd d d }W n dS t j ƒ }| d oZ||k�rrtjƒ }|j jtƒ |ƒ}| d }|d |jdƒ… }t j|t jƒs¸yt j|ƒ W n dS t j|t jƒsÊdS t jj|ƒ� rü|d }yt j||ƒ W n dS t j|t jt jB t jB t jB t jB dƒ}yt j|d ƒ} W n" tk �rV t j|ƒ ‚ Y nX z| j|ƒ W d | jƒ X d S ) NZLEAPP_IPU_IN_PROGRESSr Z os_releaseZchannelOverrider ú/z.savei€ Úw) r Úenvironr! r r r r r r r Z getVersionr ZRegistrationRhnServerZregistrationZupgrade_versionÚrfindr ÚW_OKÚmkdirr ÚlexistsÚrenamer ÚO_WRONLYÚO_CREATÚO_TRUNCÚ O_NOFOLLOWÚ O_CLOEXECÚfdopenr# r Úwrite) r ÚidVerZ systemVerÚsZnewSystemIdr ÚdirZsavePathÚfdr r r r ÚmaybeUpdateVersionL sF ( r= c ! C sf t jƒ } | jdƒ ts$| jdƒ dS tjƒ tdœ}tjjtƒ}tj |tj ƒsvytj|dƒ W n | jd| ƒ dS yœtjj tƒrŽtjtƒ tjttjtjB tjB tjB tjB dƒ}ytj|dƒ tj|dƒ}W n tk rò tj|ƒ ‚ Y nX |� tj||ƒ W d Q R X W n$ tk �r6 | jd t ƒ dS X |d ttd ƒ }| jd |d d|dƒ dS )z› Pickle loginInfo to a file Returns: True -- wrote loginInfo to a pickle file False -- did _not_ write loginInfo to a pickle file zwriteCachedLogin() invokedz1writeCachedLogin() loginInfo is None, so bailing.F)ÚtimeÚ loginInfoiÀ z'Unable to write pickled loginInfo to %si€ r+ NzUnable to write loginInfo to %sr> zX-RHN-Auth-Expire-OffsetzWrote pickled loginInfo at z with expiration of z seconds.T)r r Ú log_debugr? r> r r ÚdirnameÚpcklAuthFileNamer r. r/ r" r0 Úunlinkr r2 r3 r4 r5 r6 Úfchmodr7 r# r ÚjsonÚdumpÚfloat)r' ÚdataZpcklDirr<