ruạṛ
a ��;j� � @ s� d dl Z d dlZd dlmZmZmZmZ ej ejd�dd� �Zdd� Z ej ejd�dd � �Zej ejd d�dd � �Zedkr�ei � dS )� N)�delivery_kit�kcare� log_utils�utils)�loggerc C s | � � S )a Send the DataPackage archive to the patch server. Upload errors are logged and swallowed (catch_errors), preserving the historical kernel-anomaly behavior. :param data_package: DataPackage instance to send :return: Upload name (package identifier) )�send)�data_package� r �-/usr/libexec/kcare/python/kcarectl/anomaly.py�send_data_package s r c C sR t � � }t�| �D ]:\}}|| dkr* qNd�||�dd��}|j||d� qdS )zZadds recent files for the last hour to the given data package starting from the newest onei z{0}/{1}�/�_�Zsrc_pathN)�timer Zsort_files_by_ctime�format�replace�add_file)�filesr Zarchive_prefix�now�path�ctimeZarcnamer r r �copy_recent_files s r c C s. t �� }|�� tj�d�r(|�dd� tj�d�r@|�dd� |�dd� |�d d � |�d d� tj�d�s|tj�d �r�d}n$tj�d�r�d}|jddd� nd}|�d|� td��(}|jdt� |� � �d� W d � n1 s�0 Y td��(}|jdt� |� � �d� W d � n1 �s*0 Y |jddd� |�d| � |jddd� |�d d!�t �� �� ztt �� |d"� W n6 t�y� } z|�d#�|�� W Y d }~n d }~0 0 ztt �� |d$� W n6 t�y } z|�d%�|�� W Y d }~n d }~0 0 W d � n1 �s 0 Y |S )&Nz/var/log/messages�messagesztail -n10000 /var/log/messagesz/var/log/syslogZsyslogztail -n10000 /var/log/syslogzkcarectl.logz"tail -n10000 /var/log/kcarectl.logZdmesgZls_var_cache_kcarezls -lR /var/cache/kcare/z/usr/bin/rpmz/bin/rpmzFrpm -q -a --queryformat="%{N}|%{V}-%{R}|%{arch}|%{INSTALLTIME:date}\n"z /usr/bin/dpkgzJ/usr/bin/dpkg-query -W -f "${binary:Package}|${Version}|${Architecture}\n"zdpkg.logz/var/log/dpkg.logr zecho "unknown package manager"z packages.listz /proc/versionZproc_version)Z data_bytesz /proc/modulesZproc_modulesz kcare.confz/etc/sysconfig/kcare/kcare.confzserver_info.jsonz kdump.confz/etc/kdump.confZls_kdumpz ls -lR {0}Zkdumpzfailed to copy kdumps: {0}Z crashreporterz+failed to copy crashreporter artifacts: {0})r ZKernelAnomalyPackage�osr �existsZ add_stdoutr �openr �bstr�readZadd_jsonr r Zget_kdump_rootr Zlist_kdump_txt_files� ExceptionZ log_errorZlist_crashreporter_log_files)�server_infor Zpackages_cmd�f�er r r �prepare_kernel_anomaly_report* sB 6 8&Fr"