a ۔*j)@sBddlZddlZddlZddlZddlZddlZddlmZzddlm Z Wne ybe Z Yn0ddl m Z ddlmZddlmZddlmZddlmZdd lmZdd lmZdad Zd d ZddZddZddZddZddZd)ddZd*ddZd+ddZGdd d eZ 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.pklcCs@t}|d}t|tjs"dSt|d}|}||S)N systemIdPathr)rinitUp2dateConfigosaccessR_OKopenreadclose)cfgpathfretr>/usr/lib/python3.9/site-packages/up2date_client/up2dateAuth.py getSystemIds rcCst}t}d}|dur|SzFtj|dd}|dd}|dvrN|}n|d||f|WSty|d|j t Yn0|S)z Extract the preferred_interface parameter from system_id XML Returns 'IPv4' or 'IPv6' if specified, otherwise 'IPv4' as default IPv4Nrpreferred_interface)rZIPv6zGInvalid preferred_interface value '%s' in system_id, defaulting to '%s'zGFailed to parse system_id XML, preferred_interface defaulting to 'IPv4') rinitLogrr xmlrpclibloadsgetlog_me Exception log_exceptionsysexc_info)logsystemIdrparamsZ cfg_interfacerrrgetPreferredInterface(s(   r)c CsNtjdrdSt}ztjtddd}WnYdS0t }|dsJ||krJt }|j t|}|d}|d|d}t|tjszt|WnYdS0t|tjsdSt|tjr |d}zt||WnYdS0t|d}|||zt|td d Wn Yn0dS) NZLEAPP_IPU_IN_PROGRESSrZ os_releaseZchannelOverrider /z.savew0600)renvironr rr rrrrr Z getVersionrZRegistrationRhnServerZ registrationZupgrade_versionrfindrW_OKmkdirF_OKrenamerwriterchmodint) ridVerZ systemVersZ newSystemIdrdirZsavePathrrrrmaybeUpdateVersionLsB   r:cCst}|dts$|ddSttd}tjt}t |tj sz t |t |t ddWn|d|YdS0ttd}t tt d dt||||d ttd }|d |d d |ddS)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 loginInfoZ0700r-z'Unable to write pickled loginInfo to %swbr,r;X-RHN-Auth-Expire-OffsetzWrote pickled loginInfo at z with expiration of z seconds.T)rr log_debugr<r;rrdirnamepcklAuthFileNamerr0r1r5r6r!rpickledumprfloat)r&dataZpcklDirpcklAuth expireTimerrrwriteCachedLoginzs2      rHc CsVt}|dtttjs2|dtdSttd}zt |}Wn*t t fyt|d| YdS0| zNt jtddd}d|d d }||kr|d ||fWdSWn Yn0|d }|d }t}|t|d }|d|d|dt|d ||kr>|d||fdSt||d|dS)zb Read pickle info from a file Caches authorization info for connecting to the server. zreadCachedLogin invokedz'Unable to read pickled loginInfo at: %sFrbzSUnexpected EOF. Probably an empty file, regenerate auth filerZ system_idzID-%sr<zX-RHN-Server-Idz#system id version changed: %s vs %sr;r>z(Checking pickled loginInfo, currentTime=z , createTime=z, expire-offset=z9Pickled loginInfo has expired, created = %s, expire = %s.zsB           $. , !