HEX
Server: Apache
System: Linux md-ht-3.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User: kbinf747 (2664)
PHP: 8.3.32
Disabled: NONE
Upload Files
File: //usr/libexec/kcare/python/kcarectl/update_utils.pyc
�
�;jc@s�ddlZddlZddlZddlZddlmZmZmZmZddl	m
Z
er�ddlm
Z
mZmZndZdd	�Zdd
�Zd�Zd�Zd
�Zd�Zd�Zd�ZdS(i����Ni(tconfigt	constantst	log_utilstutils(tjson_loads_nstr(tAnytCallabletDictii<s.kcarestatuscCs2tjjtj|�}tj|tj��dS(N(tostpathtjoinRtPATCH_CACHERtatomic_writet
timestamp_str(tfilenametstatus_filepath((s2/usr/libexec/kcare/python/kcarectl/update_utils.pyttouch_status_gap_filesc	Cs�tjjtj|�}tjj|�r�t|d��X}y=t|j��}t|�t	j
ttj�krxt
SWntk
r�nXWdQXntS(Ntr(RR	R
RRtisfiletopentinttreadRtSTATUS_CHANGE_GAPtSTATUS_CHANGE_GAP_DELAYttimetFalset	ExceptiontTrue(RRtsfilet	timestamp((s2/usr/libexec/kcare/python/kcarectl/update_utils.pytstatus_gap_passeds#

cCs(|dkr$tdj|���ndS(Ntkerneltlibcares$Unknown update status component: {0}(RR (t
ValueErrortformat(t	component((s2/usr/libexec/kcare/python/kcarectl/update_utils.pyt_check_component%scCsetjtj�}|dkr"iSyt|�}|SWn(ttfk
r`tj	j
d�iSXdS(Ns"Failed to parse update status file(Rt	read_fileRtUPDATE_STATUS_PATHtNoneRR!t	TypeErrorRtkcarelogtwarning(tcontenttresult((s2/usr/libexec/kcare/python/kcarectl/update_utils.pyt_load_update_status+scCs�t|�yMt�}i|d6ttj��d6||<tjtjtj	|��Wn't
k
r�tjj
ddt�nXdS(NterrorRsFailed to save update statustexc_info(R$R-RRRRRR&tjsontdumpsRRR)R*R(R#R.tdata((s2/usr/libexec/kcare/python/kcarectl/update_utils.pytsave_update_status9s
	 
cCsWt|�}tt|dd��}|rS||krS|j�rOdj|�S|S|S(NtstatustsHTTP Error: {0}(tstrtgetattrtisdigitR"(terrtmessageR4((s2/usr/libexec/kcare/python/kcarectl/update_utils.pyt
_error_statusGs
cst���fd�}|S(Ncs%tj����fd��}|S(NcsVy�||�}Wn,tk
rA}t�dt|���nXt�dd�|S(NR.R5(RR3R;(targstkwargsR,R9(R#tfn(s2/usr/libexec/kcare/python/kcarectl/update_utils.pytinner_s(t	functoolstwraps(R>R?(R#(R>s2/usr/libexec/kcare/python/kcarectl/update_utils.pyt	decorator^s!(R$(R#RB((R#s2/usr/libexec/kcare/python/kcarectl/update_utils.pyttrack_update_statusZs
cCsut|�y<t�}|j|i�jdd�}t|�tj SWn(tk
rptjj	ddt
�dSXdS(NR.R5sFailed to read update statusR/(R$R-tgetR6RtUPDATE_ERROR_MAX_LENGTHRRR)R*R(R#R2R.((s2/usr/libexec/kcare/python/kcarectl/update_utils.pytread_update_erroros
	
i,(R@R0RRR5RRRRtpy23RRttypingRRRRRRR$R-R3R;RCRF(((s2/usr/libexec/kcare/python/kcarectl/update_utils.pyt<module>s "