
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
Ö;jè  ã               @   s‚   d dl Z d dlZd dlZd dlZd dlZd dlZddlmZmZm	Z	m
Z
mZmZmZmZ ddd„Zddd„Zdd	d
„Zdd„ ZdS )é    Né   )ÚcapabilitiesÚ	constantsÚ
http_utilsÚkcareÚplatform_utilsÚserveridÚupdate_utilsÚutilsFc       	      C   sÌ  t ƒ }t|ptjƒ ƒ|d< | |d< tjƒ |d< tjƒ |d< tjƒ |d< tjƒ |d< tjƒ |d< t	j
ƒ }|d |d	< |d
 |d< tjƒ |d< tjtjƒ|d< tjƒ |d< t	jƒ |d< t	jƒ |d< t	jƒ |d< tjƒ |d< tjtjƒ ƒ}|d |d< |d |d< |d |d< tjƒ �pd|d< tjƒ |d< tjƒ |d< tjƒ |d< ytjƒ |d< W n tk
�rd   Y nX t j!ƒ }|�r|||d< tj"ƒ }|d k	�r–||d < t#j$d!ƒ|d"< |�r¶t	j%ƒ |d#< |�rÈt	j&ƒ |d$< |S )%NÚtsÚreasonÚmachineÚ	processorÚreleaseÚsystemÚversionr   Údistror   Údistro_versionZeunameÚkcare_versionÚ	last_stopÚnodeÚuptimeÚvirtÚproxyzlast-updateZ
ltimestampzpatch-levelÚpatch_levelz
patch-typeÚ
patch_typeÚ ÚkmodZcrashreporter_tsÚkdump_statusr   Zkdump_tsÚ	server_idÚstateÚkernelÚupdate_errorZsecure_bootÚperf_metrics)'ÚdictÚintÚtimeÚplatformr   r   r   r   r   r   Ú
get_distror   Úkcare_unamer
   Ústrip_version_timestampr   ÚVERSIONÚget_last_stopÚget_hostnameÚ
get_uptimeÚget_virtr   Úproxy_is_usedÚparse_patch_descriptionÚloaded_patch_descriptionÚget_current_kmod_versionÚ$crashreporter_latest_event_timestampr   r   Úget_kc_capabilites_bitsÚkdumps_latest_event_timestampÚ	Exceptionr   Úget_serveridÚ	get_stater	   Úread_update_errorÚsecure_boot_infoÚget_performance_metrics)	r   Únowr;   r#   Údatar   Údescriptionr   r    © r@   ú1/usr/libexec/kcare/python/kcarectl/server_info.pyÚserver_info   sT    
rB   c             C   sÌ   t ƒ }t|ptjƒ ƒ|d< | |d< ||d< tjƒ }|d |d< |d |d< tjƒ |d< tjt	j
ƒ|d	< tjƒ |d
< tjƒ |d< tjƒ |d< tjƒ |d< d}tjjdƒr²tjjdƒ}||d< tjdƒ|d< |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   g        z/var/lib/libcare/stopÚstop_tsÚlibcarer"   )r$   r%   r&   r   r(   r'   r   r
   r*   r   r+   r-   r.   r/   r   Úget_lc_capabilites_bitsÚosÚpathÚexistsÚgetctimer	   r:   )r   r   r=   r>   r   rC   r@   r@   rA   Úserver_lib_infoI   s&    rJ   c             C   s   t | ||d�}t|dd�S )N)r   r   r=   T)Úb64_encoding)rJ   Úencode_checkin_payload)r   r   r=   Úinfor@   r@   rA   Úencoded_server_lib_infod   s    rN   c             C   sP   |r2t j| ddd�}tjtjtjtj|dƒƒƒƒS tjtj	tjt
| ƒƒƒƒS d S )NFú,ú:)Úensure_asciiÚ
separatorszutf-8)rO   rP   )ÚjsonÚdumpsr
   ÚnstrÚbase64Úurlsafe_b64encodeÚzlibÚcompressÚbstrÚ	b16encodeÚstr)r>   rK   Zdata_strr@   r@   rA   rL   i   s    rL   )NFF)N)N)rV   rS   rF   r'   r&   rX   r   r   r   r   r   r   r   r	   r
   rB   rJ   rN   rL   r@   r@   r@   rA   Ú<module>   s   (
7

