HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/libexec/kcare/python/kcarectl/__pycache__/platform_utils.cpython-38.pyc
U

n�h�#�@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'd1d2�d3d4��Z+e
j&e
j'd*�d5d6��Z,e
j&e
j'd1d2�d7d8��Z-d9d:�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�c
CsRtj�td||f�}tj�|�s&dSt|d��}|�|�W5QR�SQRXdS)Nz%s-%s�rb)r�path�join�EFIVARS_PATH�exists�open�read)�name�vendorZ	max_bytesZvar_path�varrrr�_read_uefi_varIs
r8cCsBz(tdtd�}|r&|dd�dkWSWntk
r<YnXdS)N�
SecureBootr+����F)r8�EFI_VENDORS�	Exception)Zsecure_boot_varrrr�is_secure_bootRsr>c
Cs\zt||�}|dkrWdSWn.tk
rJ}zt|���}W5d}~XYnXt�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
d
dddg�}|D]4}|dks�|�d�r�||kr�t|td�|d|<q�Wn.tk
�r}zt�|�W5d}~XYnX|S)N�cmdlinei)rF�has_efirGcss |]}|t|td�fVqdS)r+N)rEr<��.0r7rrr�	<genexpr>rsz#secure_boot_info.<locals>.<genexpr>)r9Z	SetupModer+cSs4g|],}|�td�r|dttd�d��qS)r,rr)�endswithr<�lenrHrrr�
<listcomp>tsz$secure_boot_info.<locals>.<listcomp>�varsr,Z	MokListRTZ
MokListXRTZMokListTrustedRTZSbatLevelRT)Z	HSIStatusZMokIgnoreDBZRT)r�try_to_readrr/r0�PROC_DIRrLr2�dirnamer1�dictr#�listdir�setrKrEr<r=r�logwarn)rFr&Z	shim_varsZshim_exclude_varsr7�errrrr�secure_boot_infohs&�rWc
Csrtjrfz&t�t��ddddtj�dd}Wqntjk
rb}zt�|�t	�
�}W5d}~XYqnXnt	�
�}|S)Nrr
)r�REPORT_FQDN�socket�getaddrinfo�gethostname�AI_CANONNAME�gaierrorr�logerrorr�node)�hostname�gerrr�get_hostname�s&
rbcCsTtj�td�}tj�|�rPt|d�}|��}ttt	|�
�d���}|��|SdS)N�uptime�rrz-1)rr/r0rP�isfiler3�readliner�int�floatr �close)Zuptime_file�f�line�resultrrr�
get_uptime�s
rmcCs tj�t�rt�tg���SdS)Nzno-virt-what)rr/re�VIRTWHATr�check_output�striprrrr�get_virt�srqcCstj�d�S)Nz/usr/local/cpanel/cpanel�rr/rerrrr�	is_cpanel�srscCs2tj�tj�tdd��o0tj�tj�tdd��S)NZvzZveinfo�version)rr/r2r0rPrrrr�inside_vz_container�srucCsdttj�tdd����kS)Nz/lxc/�1Zcgroup)r3rr/r0rPr4rrrr�inside_lxc_container�srwcCstj�d�S)Nz/.dockerenvrrrrrr�inside_docker_container�srx)�loggercCsFt�tj�td��}|sdS|�dd�\}}}}t|�t|�t|�fS)N�loadavg� r
)rrOrr/r0rPr rh)rzZm1Zm5Zm15�_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&|]\}}|�kr|t|�fVqdSr?)rg)rI�k�v�Z
filter_paramsrrrJ�szget_mem_info.<locals>.<genexpr>css"|]}t�d|�dd�VqdS)z[\s:]+Nr	��rer �rIrkrrrrJ�s)rrOrr/r0rPrR�
splitlines)r~rr�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�sz*get_cpu_info.<locals>.<listcomp>.<genexpr>)rRr�)rIZ	cpu_linesrrrrM�s�z get_cpu_info.<locals>.<listcomp>z

css"|]}|�d�|�d�fVqdS)zphysical idzcore idN)�get)rIZcpurrrrJ�szget_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�)rrOrr/r0rPr rLrTr�rg)r�Zcpusrrr�get_cpu_info�s ��r�)rr)ry�default_returncCszd}}t�t�D]^\}}}|D]N}|��s.q z*|tt�tj�t|d���7}|d7}Wq tk
rlYq Xq q||fS)z6Return tuple of total processes and total opened filesr�fdr)	r�walkrP�isdigitrLrSr/r0r=)Ztotal_processesZtotal_opened_files�_root�dirs�_filesZpid_dirrrr�get_proc_files_count�s
r�cCs$t�d�D]\}}}t|�SdS)Nz/sys/kernel/debug/kvm)rr�rL)r�r�r�rrr�get_vm_count_kvm�sr�cCs(dd�}|d�|d�|d�|d�fS)z8Return tuple of total numbers of TCP and UDP connectionscSs4t�tj�td|��}|sdStt|���dd�S)N�netrr)	rrOrr/r0rP�maxrLr�)�proto�recordsrrr�conn_records_countsz9get_network_connections_count.<locals>.conn_records_countZtcpZtcp6ZudpZudp6r)r�rrr�get_network_connections_count�sr�c	Cs0d\}}t�\}}t�t�t�t�||||d�S)N)r:r:)Zload_averageZmem_infoZcpu_infoZvm_countZ	processesZ
open_filesZtcp_connectionsZudp_connections)r�r}r�r�r�)Z
proc_countZfiles_countZconn_tcpZconn_udprrr�get_performance_metricss
�r�)F)r-)/rBr!rrr�rYrrrrrrrr�Any�Dict�Optional�TuplernrPr�cachedrrr*r1r<r8r>rErWrbrmrqrsrurwrx�catch_errorsrUr}r�r�r�r�r�r�rrrr�<module>s\ 	

�