Your IP : 216.73.216.104


Current Path : /proc/self/root/usr/libexec/kcare/python/kcarectl/__pycache__/
Upload Files:
Current File: //proc/self/root/usr/libexec/kcare/python/kcarectl/__pycache__/platform_utils.cpython-39.pyc

a

`��i�"�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
dZdZdd�Ze
jdd	��Zd
d�Zd=d
d�ZdZddd�Zd>dd�Zdd�Zdd�Zdd�Ze
jdd��Ze
jdd��Z e
jd d!��Z!d"d#�Z"d$d%�Z#d&d'�Z$d(d)�Z%e
j&e
j'd*�d+d,��Z(e
j&e
j'd*�d-d.��Z)e
je
j&e
j'd*�d/d0���Z*e
j&e
j'dd1�d2d3��Z+e
j&e
j'dd1�d4d5��Z,e
j&e
j'd*�d6d7��Z-e
j&e
j'd8d1�d9d:��Z.d;d<�Z/dS)?�N�)�config�	constants�	log_utils�
process_utils�selinux�utilsz/usr/libexec/kcare/virt-whatz/proccCs2tjdd�dkrt��Sddl}|jdd�SdS)N�)��rF)Zfull_distribution_name)�sys�version_info�platformZlinux_distribution�distro)r�r�4/usr/libexec/kcare/python/kcarectl/platform_utils.py�
get_distrosrcCst��dS)Nr	)r�unamerrrr�get_system_unamesrcCsdtjdtjdfS)Nz%s.%srr)rr
rrrr�get_python_version$srFc	Cs�t�tjd�}t��r^tjddddtt�	��gdd�\}}}|sN|�
�d}nd	|}||d
<|rlt�|�St
|�}d}|D]}|d|||f7}q||��S)
N)�python_version�
agent_versionZpsz-Zz--no-headersz--pidT)�catch_stdoutrz	error: %s�selinux_context�z%s: %s
)rr�VERSIONrZis_selinux_enabledr�run_command�str�os�getpid�split�json�dumps�sorted�rstrip)	�is_json�info�rc�stdout�stderrrZ	info_keysZinfo_strZinfo_keyrrr�app_info(s �&
r*z/sys/firmware/efi/efivarsz$8be4df61-93ca-11d2-aa0d-00e098032b8cz$605dab50-e046-4300-abb6-3dd810dd8b23)�global�shim�cCs^tj�td||f�}tj�|�s&dSt|d��}|�|�Wd�S1sP0YdS)Nz%s-%s�rb)r�path�join�EFIVARS_PATH�exists�open�read)�name�vendorZ	max_bytesZvar_path�varrrr�_read_uefi_varIs
r8cCs@z(tdtd�}|r&|dd�dkWSWnty:Yn0dS)N�
SecureBootr+����F)r8�EFI_VENDORS�	Exception)Zsecure_boot_varrrr�is_secure_bootRsr>c
Cs^zt||�}|durWdSWn0tyL}zt|���}WYd}~n
d}~00t�t�|��S�N)r8r=r�encoder�nstr�base64�urlsafe_b64encode)r5r6Zvalue_bytes�errr�_get_uefi_var_encoded]s

"rEc
Cst�tj�td��}|r0t|�dkr0|dd�}|tj�tj�t	��d�}|dsV|Sz�t
dd�dD��|d<td	d
�t�t	�D��}d|i|d<t
gd
��}|D]4}|dvs�|�d�r�||vr�t|td�|d|<q�Wn4t�y}zt�t|��WYd}~n
d}~00|S)N�cmdlinei)rF�has_efirGcss |]}|t|td�fVqdS)r+N)rEr<��.0r7rrr�	<genexpr>r�z#secure_boot_info.<locals>.<genexpr>)r9Z	SetupModer+cSs4g|],}|�td�r|dttd�d��qS)r,rr)�endswithr<�lenrHrrr�
<listcomp>trKz$secure_boot_info.<locals>.<listcomp>�varsr,)Z	MokListRTZ
MokListXRTZMokListTrustedRTZSbatLevelRT)Z	HSIStatusZMokIgnoreDBZRT)r�try_to_readrr/r0�PROC_DIRrMr2�dirnamer1�dictr#�listdir�setrLrEr<r=r�logwarnr)rFr&Z	shim_varsZshim_exclude_varsr7�errrrr�secure_boot_infohs&�$rXc
Csttjrhz&t�t��ddddtj�dd}Wqptjyd}zt�|�t	�
�}WYd}~qpd}~00nt	�
�}|S)Nrr
)r�REPORT_FQDN�socket�getaddrinfo�gethostname�AI_CANONNAME�gaierrorr�logerrorr�node)�hostname�gerrr�get_hostname�s&
 rccCsTtj�td�}tj�|�rPt|d�}|��}ttt	|�
�d���}|��|SdS)N�uptime�rrz-1)rr/r0rQ�isfiler3�readliner�int�floatr �close)Zuptime_file�f�line�resultrrr�
get_uptime�s
rncCs tj�t�rt�tg���SdS)Nzno-virt-what)rr/rf�VIRTWHATr�check_output�striprrrr�get_virt�srrcCstj�d�S)Nz/usr/local/cpanel/cpanel�rr/rfrrrr�	is_cpanel�srtcCs2tj�tj�tdd��o0tj�tj�tdd��S)NZvzZveinfo�version)rr/r2r0rQrrrr�inside_vz_container�srvcCsdttj�tdd����vS)Nz/lxc/�1Zcgroup)r3rr/r0rQr4rrrr�inside_lxc_container�srxcCstj�d�S)Nz/.dockerenvrsrrrr�inside_docker_container�sry)�loggercCsFt�tj�td��}|sdS|�dd�\}}}}t|�t|�t|�fS)N�loadavg� r
)rrPrr/r0rQr ri)r{Zm1Zm5Zm15�_rrr�get_load_average�s
r~csDt�tj�td��}|sdSd�t�fdd�dd�|��D�D��S)z!Returns dict of memory info in kB�meminfoN)ZMemTotalZMemFreeZ	SwapTotalZSwapFreec3s&|]\}}|�vr|t|�fVqdSr?)rh)rI�k�v�Z
filter_paramsrrrJ�rKzget_mem_info.<locals>.<genexpr>css"|]}t�d|�dd�VqdS)z[\s:]+Nr	��rer �rIrlrrrrJ�rK)rrPrr/r0rQrS�
splitlines)rrr�r�get_mem_info�s
r�cCs�t�tj�td��}|sdSdd�|�d�D�}t|�ttdd�|D���|d�	d�t
|d�	d	d��|d�	d
�t
|d�	dd��t
|d�	dd��|d�	d
�|d�	dd���d�	S)N�cpuinfocSs&g|]}|rtdd�|��D���qS)css|]}t�d|�VqdS)z\s*:\s*Nr�r�rrrrJ�rKz*get_cpu_info.<locals>.<listcomp>.<genexpr>)rSr�)rIZ	cpu_linesrrrrN�s�z get_cpu_info.<locals>.<listcomp>z

css"|]}|�d�|�d�fVqdS)zphysical idzcore idN)�get)rIZcpurrrrJ�rKzget_cpu_info.<locals>.<genexpr>r�	vendor_id�modelz
model namez
cpu family�stepping�	microcode�flagsr)	Z
logical_coresZphysical_coresr�r�Z
model_nameZ
cpu_familyr�r�r�)rrPrr/r0rQr rMrUr�rh)r�Zcpusrrr�get_cpu_info�s ��r�)rz�default_returncCstdd�t�t�D��S)NcSsg|]}|��r|�qSr)�isdigit)rI�drrrrN�rKz%get_process_count.<locals>.<listcomp>)rMrrTrQrrrr�get_process_count�sr�cCs(t�tj�td��}t|pd��d�S)Nzsys/fs/file-nr�0r)rrPrr/r0rQrhr )Zfd_inforrr�get_opened_files_count�sr�cCs$t�d�D]\}}}t|�SdS)Nz/sys/kernel/debug/kvm)r�walkrM)�_root�dirs�_filesrrr�get_vm_count_kvm�sr�)rrcCs(dd�}|d�|d�|d�|d�fS)z8Return tuple of total numbers of TCP and UDP connectionscSs4t�tj�td|��}|sdStt|���dd�S)N�netrr)	rrPrr/r0rQ�maxrMr�)�proto�recordsrrr�conn_records_count�sz9get_network_connections_count.<locals>.conn_records_countZtcpZtcp6ZudpZudp6r)r�rrr�get_network_connections_count�sr�c	Cs,t�\}}t�t�t�t�t�t�||d�S)N)Zload_averageZmem_infoZcpu_infoZvm_countZ	processesZ
open_filesZtcp_connectionsZudp_connections)r�r~r�r�r�r�r�)Zconn_tcpZconn_udprrr�get_performance_metricss
�r�)F)r-)0rBr!rrr�rZrrrrrrrr�Any�Dict�Optional�TuplerorQr�cachedrrr*r1r<r8r>rErXrcrnrrrtrvrxry�catch_errorsrVr~r�r�r�r�r�r�r�rrrr�<module>s` 	

�