
­­­­­­­­­­­­­­­­­­
<!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"< |rt	j% |d#< |rt	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rt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

