PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /usr/libexec/kcare/python/kcarectl/__pycache__/
Server: Linux red.truehostdns.com 4.18.0-553.150.1.el8_10.x86_64 #1 SMP Fri Jul 31 15:23:31 EDT 2026 x86_64
IP: 51.161.15.103
Choose File :

Url:
Dir : //usr/libexec/kcare/python/kcarectl/__pycache__/kcare.cpython-36.pyc

3

0�j�)�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZdZdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�Zdd�Zdd�Zdd �Z d!d"�Z!d#d$�Z"d%d&�Z#d'd(�Z$d)d*�Z%e
j&d+d,��Z'e
j&d-d.��Z(e
j&d/d0��Z)d1d2�Z*d3d4�Z+d5d6�Z,d7d8�Z-d9d:�Z.d;d<�Z/e
j&d=d>��Z0d?d@�Z1dAdB�Z2dCdD�Z3dEdF�Z4dS)G�N�)�config�	constants�	log_utils�
process_utils�utils)�SafeExceptionWrapper)�json_loads_nstrzuname: cCstj|�p|dkS)Nz.-_+)�str�isalnum)�c�r
�+/usr/libexec/kcare/python/kcarectl/kcare.py�
is_uname_charsrcCsft�}tt||tj�d��B}x:|j�D].}|jt�r&djt	t
|tt�d�j���Sq&WWdQRXdS)N�r�)
�get_kernel_hash�open�get_cache_pathr�
PATCH_INFO�	readlines�
startswith�UNAME_LABEL�join�filterr�len�strip)�patch_level�khash�f�liner
r
r�parse_unames
.r!cCsJtjjtj�rFy"ttjd�}|j|�|j�dStk
rDYnXdS)N�wTF)	�os�path�existsr�KCARE_UNAME_FILEr�write�close�	Exception)�new_versionrr
r
r�kcare_update_effective_version%s
r+c
Cs.ttjd�}ztj|j��j�S|j�XdS)N�rb)rr�KERNEL_VERSION_FILE�hashlib�sha1�read�	hexdigestr()rr
r
rr1srcCs�tjjtjd�}tjj|�r�t|d��V}|j�j�}yt	|�Wn6t
k
rdtt	tjj|���St
k
rvdSX|SQRXdS)z:Returns timestamp from PATCH_CACHE/stoped.at if its exsitsz
stopped.atr�errorNz-1)r#r$rr�PATCH_CACHEr%rr0�rstrip�int�
ValueErrorr
�getctimer))Zstopped_at_filenameZfh�valuer
r
r�
get_last_stop<s
r9cCsPtjpd}tjpd}dj||t|�|g�}tjd|f}|rD||f7}tjj|�S)N�none�default�-�patches)	r�PREFIX�
PATCH_TYPErr
rr3r#r$)r�plevel�fname�prefix�ptypeZ	patch_dir�resultr
r
rrMs


rcGstjtjf|��S)N)r�get_patch_server_urlrr>)�partsr
r
r�get_kernel_prefixed_urlWsrGc@seZdZdd�Zdd�ZdS)�BaseKernelPatchLevelcGst|jt|�f|��S)N)rrr
)�selfrFr
r
r�
cache_path\szBaseKernelPatchLevel.cache_pathcCs|j|j|j|jd�S)N)�levelr�baseurl�release)rKrrLrM)rIr
r
r�as_dict_szBaseKernelPatchLevel.as_dictN)�__name__�
__module__�__qualname__rJrNr
r
r
rrH[srHcs8eZdZd
�fdd�	Zddd�Zdd�Zdd	�Z�ZS)�KernelPatchLevelNcst||�j||�S)N)�super�__new__)�clsrrKrLrM)�	__class__r
rrTiszKernelPatchLevel.__new__cCs||_||_||_||_dS)N)rKrrLrM)rIrrKrLrMr
r
r�__init__lszKernelPatchLevel.__init__cGstj|j|jf|��S)N)rrErLr)rIrFr
r
r�kmod_urlrszKernelPatchLevel.kmod_urlcGstj|j|jt|�f|��S)N)rrErLrr
)rIrFr
r
r�file_urluszKernelPatchLevel.file_url)N)N)rOrPrQrTrWrXrY�
__classcell__r
r
)rVrrRhs
rRcs<eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Z�ZS)�LegacyKernelPatchLevelcsByt||�j||�Stk
r<}zt|��WYdd}~XnXdS)N)rSrTr6r)rUrrK�exc)rVr
rrTzszLegacyKernelPatchLevel.__new__cCs||_||_d|_d|_dS)N)rKrrLrM)rIrrKr
r
rrW�szLegacyKernelPatchLevel.__init__cGs0dtjkr t|jt|�f|��St|jf|��S)Nzpatches.resellercenter.ir)r�PATCH_SERVERrGrr
)rIrFr
r
rrX�s
zLegacyKernelPatchLevel.kmod_urlcGst|jt|�f|��S)N)rGrr
)rIrFr
r
rrY�szLegacyKernelPatchLevel.file_urlcCst|jt|�|�S)N)rRrr5)rIrLr
r
r�upgrade�szLegacyKernelPatchLevel.upgrade)	rOrPrQrTrWrXrYr^rZr
r
)rVrr[ys
r[cCs^y6ttjjtjd�d��}tj|j�|�WdQRXWn"t	k
rXt
jddd�YnXdS)Nzkernel_patch_level.jsonr"z!failed to dump kernel patch levelF)�	print_msg)rr#r$rrr3�json�dumprNr)r�logexc)Zkernel_patch_levelrr
r
r�dump_kernel_patch_level�s
rccCsTy,ttjjtjd���}t|j��SQRXWn"tk
rNt	j
ddd�YnXdS)Nzkernel_patch_level.jsonz(failed to read dumped kernel patch levelF)r_)rr#r$rrr3r	r0r)rrb)rr
r
r�read_dumped_kernel_patch_level�s
rdcCstdd�|D�dd�dd�S)NcSsg|]}|tjj|�f�qSr
)r#r$r7)�.0�itr
r
r�
<listcomp>�sz'sort_files_by_ctime.<locals>.<listcomp>cSs|dS)Nrr
)�pairr
r
r�<lambda>�sz%sort_files_by_ctime.<locals>.<lambda>T)�key�reverse)�sorted)Z
files_listr
r
r�sort_files_by_ctime�srmcCs\d}tjjd�s|Std��6}x.|D]&}|j�}|jd�r$|jdd�\}}q$WWdQRX|S)Nz
/var/crashz/etc/kdump.confzpath r)r#r$�isfilerrr�split)Z
kdump_pathZ
kdump_confr �_r
r
r�get_kdump_root�s


rqcCs*t�}tjj|�sgStjtjj|d��S)Nz*/vmcore)rqr#r$�isdir�globr)�
kdump_rootr
r
r�list_kdump_vcore_files�srucCs*t�}tjj|�sgStjtjj|d��S)Nz*/*.txt)rqr#r$rrrsr)rtr
r
r�list_kdump_txt_files�srvcCs(tjjtj�sgStjtjjtjd��S)Nz*.log)r#r$rrr�
KDUMPS_DIRrsrr
r
r
r�list_crashreporter_log_files�srxcCs(tjjtj�sgSdd�tjtj�D�S)NcSsg|]}tjjtj|��qSr
)r#r$rrrw)rerfr
r
rrg�sz0list_crashreporter_artifacts.<locals>.<listcomp>)r#r$rrrrw�listdirr
r
r
r�list_crashreporter_artifacts�srzcCst�}|sdSt|�ddS)Nrr)rurm)Zkdumpsr
r
r�kdumps_latest_event_timestamp�sr{cCs>tjstjjtj�r:tjtjddgddd�\}}}|j�SdS)Nz	is-active�kdumpT)�catch_stdout�catch_stderrzsystemd-absent)	r�SKIP_SYSTEMCTL_CHECKr#r$rn�	SYSTEMCTLr�run_commandr)rp�stdoutr
r
r�kdump_status�sr�cCst�}|sdSt|�ddS)Nrr)rzrm)Z	artifactsr
r
r�$crashreporter_latest_event_timestamp�sr�c	Cs:d}tjj|�sdSt|d��}|j�j�}WdQRX|S)Nz/sys/module/kcare/versionr)r#r$r%rr0r)Zkmod_version_filer�versionr
r
r�get_current_kmod_version�sr�cCs6t�}|sdStjdddt||tj�g�j�}||kS)NTz
/sbin/modinfoz-Fr�)r�r�check_outputrr�KMOD_BINr)rr@Zold_versionr*r
r
r�is_kmod_version_changed�sr�cCst�}|stj�St|�S)N)�loaded_patch_level�platformrMr!)rr
r
r�kcare_uname_susr�cCs,tjjtj�r"ttjd�j�j�St�SdS)Nr)	r#r$r%rr&rr0rr�r
r
r
r�kcare_unamesr�cCs`tt��d}|r\yt|�Wn0tk
rN}zt|dt���WYdd}~XnXtt�|�SdS)Nzpatch-levelzUnexpected patch state)�parse_patch_description�loaded_patch_descriptionr5r6r�_patch_infor[r)�pl�er
r
rr�s r�cCsJytjtjdgdd�Stjk
rD}z|jtjkr6�dSd}~XnXdS)N�infoT)�checkr)	rr�r�
KPATCH_CTL�
subprocess�CalledProcessError�
returncode�errnoZEBUSY)r�r
r
rr�!sr�cCsRydd�td�D�Sttfk
rL}ztjdt|�dd�gSd}~XnXdS)NcSsg|]}|j�d�qS)r)ro)rer r
r
rrg-sz&get_loaded_modules.<locals>.<listcomp>z
/proc/modulesz#Error getting loaded modules list: F)r_)r�OSError�IOErrorr�logerrorr
)�exr
r
r�get_loaded_modules*s
r�cCsdt�krdStt�d�S)N�kcarezkpatch-description)r��get_patch_valuer�r
r
r
rr�3s
r�cCstj|�j|�S)N)r�data_as_dict�get)r�Zlabelr
r
rr�;sr�c	Csrddddd�}|s|S|jd�\}}}|jd�\}}}|jd�\}}}|pLd|d<|pXd|d<||d	<||d
<|S)Nr;r)zpatch-levelz
patch-typezlast-updatezkernel-version�;�:r<zpatch-levelz
patch-typezlast-updatezkernel-version)�	partition)	�descrDZlevel_type_timestamprp�kernelZ
level_type�	timestamprZ
patch_typer
r
rr�?sr�cCshtjjtjd�}tjj|�rdt|d��8}y|j�}tj	|�St
ttt
tfk
rXYnXWdQRXdS)Nzkcare.stater)r#r$rrr3r%rr0�astZliteral_eval�SyntaxErrorr�r6�	TypeError�UnicodeDecodeError)Z
state_filer�stater
r
r�	get_stateSs
r�)5r�r�rsr.r`r#r�r�rrrrrr�errorsr�py23r	rrr!r+rr9rrGr5rHrRr[rcrdrmrqrurvrxrz�cachedr{r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
r�<module>sV