HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/psutil/__pycache__/_psbsd.cpython-310.pyc
o

;jOr�@stdZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddl
mZ
dd	l
mZdd
l
mZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZgZer�ejejej ej!ej"ej#ej$ej%ej&ej'ej(ej)ej*ej+iZ,n=er�ejejej"ej#ej$ej%ej-ej'ej&ej'ej ej.ej/ej!iZ,ner�ejejej"ej#ej$ej%ej&ej'ej ej.ej/ej!iZ,ej0ej1ej2ej3ej4ej5ej6ej7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAejBejCejDejEejFejGiZHe�I�ZJejKZKeLed�ZMeNdzidd�dd�dd�dd�dd�d d!�d"d#�d$d%�d&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG��ZOdHdI�ZPdJdK�ZQeLedL��r�ejRZRejSZSdMdN�ZTdOdP�ZUdQdR�ZVe�s�e�r�dSdT�ZWndUdT�ZWdVdW�ZXe�r�dXdY�ZYne�r�dZdY�ZYd{d\d]�ZZej[Z[ej\Z\ej]Z]ej^Z^d^d_�Z_d`da�Z`e�r�dbdc�Zaddde�Zbdfdg�Zce�rzec�ZdWnee�yZfzedhef���dZdWYdZf[fndZf[fwwdidj�Zgdkdl�Zhedmdn��Zidodp�Zje�rdqdr�Zkne�r#dsdr�ZknejkZkdtdu�Zlejmdvdw��ZnGdxdy�dy�ZodS)|z5FreeBSD, OpenBSD and NetBSD platforms implementation.�N)�defaultdict)�
namedtuple)�ElementTree�)�_common)�_ntuples)�_psposix)�_psutil_bsd)�FREEBSD)�NETBSD)�OPENBSD)�AccessDenied)�
NoSuchProcess)�
ZombieProcess)�	conn_tmap)�conn_to_ntuple)�debug)�memoize)�memoize_when_activated)�
usage_percent�proc_num_threads�ppid�status�real_uid��
effective_uid��	saved_uid��real_gid��
effective_gid��	saved_gid��ttynr��create_time�	�ctx_switches_vol�
�ctx_switches_unvol��
read_io_count��write_io_count�
�	user_time��sys_time��ch_user_time��ch_sys_time��rss��vms��memtext��memdata��memstack��cpunum��name�c
Cs�t��}trP|\}}}}}}tdd��,}|D]!}|�d�r(t|��d�d}	q|�d�r7t|��d�d}
qWd�n1sBwY||}||}n|\}}}}}}}	}
|||}|||}t|||dd�}
t�	|||
|||||	||
|�S)Nz
/proc/meminfo�rbsBuffers:ris
MemShared:�Zround_)
�cextZvirtual_memr�open�
startswith�int�splitr�ntpZsvmem)Zmem�total�freeZactiveZinactiveZwired�cached�f�line�buffersZshared�usedZavail�percent�rW�A/opt/saltstack/salt/lib/python3.10/site-packages/psutil/_psbsd.py�virtual_memory�s>

���
�rYcCs4t��\}}}}}t||dd�}t�||||||�S)z@System swap memory as (total, used, free, sin, sout) namedtuple.rrH)rIZswap_memrrNZsswap)rOrUrP�sinZsoutrVrWrWrX�swap_memory�sr[�	heap_infocCs$t��\}}}}}t�|||||�S)z,Return system per-CPU times as a namedtuple.)rI�	cpu_timesrN�	scputimes)�user�nice�system�idle�irqrWrWrXr]�sr]cCs@g}t��D]}|\}}}}}t�|||||�}|�|�q|S)z(Return system CPU times as a namedtuple.)rI�
per_cpu_timesrNr^�append)�retZcpu_tr_r`rarbrc�itemrWrWrXrd�srdcC�t��S)z0Return the number of logical CPUs in the system.)rI�cpu_count_logicalrWrWrWrXri��ricCst�dkrdSdS)Nr)rirWrWrWrX�cpu_count_cores�srkcCs�d}t��}|dur5|�d�}|dkr5|d|d�}t�|�}zt|�d��p)d}W|��n|��w|s>t�dkr>dS|S)z-Return the number of CPU cores in the system.Nz	</groups>���r(zgroup/children/group/cpur)	rIZcpu_topology�rfindrZ
fromstring�len�findall�clearri)rf�s�index�rootrWrWrXrk�s


c	Cs�trt��\}}}}}nBtrAt��\}}}}}}}tdd��}|D]}|�d�r0t|��d�}q!Wd�n1s;wYn
trNt��\}}}}}}}t	�
||||�S)z*Return various CPU stats as a named tuple.z
/proc/statrGsintrrN)r
rI�	cpu_statsrrJrKrLrMrrNZ	scpustats)	ZctxswZintrsZ
soft_intrsZsyscallsZ_trapsZ_faultsZ_forksrRrSrWrWrXrts"�
�����rtc
Cs�g}t�}t|�D]]}z	t�|�\}}Wn	tyYq	w|r\zt|�d�d�d�d�}Wn
ttfy=d}Ynwzt|�d�d�d�d�}Wn
ttfy[d}Ynw|�	t
�|||��q	|S)z�Return frequency metrics for CPUs. As of Dec 2018 only
        CPU 0 appears to be supported by FreeBSD and all other cores
        match the frequency of CPU 0.
        � rl�/rN)ri�rangerI�cpu_freq�NotImplementedErrorrLrM�
IndexError�
ValueErrorrerN�scpufreq)rf�num_cpus�cpu�currentZavailable_freqZmin_freqZmax_freqrWrWrXrx#s*� � �rxcCstt���}t�|dd�gS)Ng)�floatrIrxrNr|)�currrWrWrXrx=sFc	Cs@g}t��}|D]}|\}}}}t�||||�}|�|�q|S)z�Return mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906.
    )rI�disk_partitionsrNZ	sdiskpartre)	�all�retlistZ
partitions�	partitionZdeviceZ
mountpointZfstype�opts�ntuplerWrWrXr�Gsr�c
Cs�t���}i}|D]M}zt�|�}t�|�}t�|�\}}Wnty7}z
|jtjkr-�WYd}~q	d}~wwt	t
d�rBt
�|�}d�|�}d|v}	t
�|	||||�||<q	|S)z)Get NIC stats (isup, duplex, speed, mtu).N�	NicDuplex�,Zrunning)�net_io_counters�keysrIZ
net_if_mtuZnet_if_flagsZnet_if_duplex_speed�OSError�errnoZENODEV�hasattrrr��joinrNZ	snicstats)
�namesrfrEZmtu�flagsZduplexZspeed�errZoutput_flagsZisuprWrWrX�net_if_statsbs&


���


r�c
Cs�t|\}}t�}trt�d||�}ntrt�d|�}nt�||�}|D]}|\}}}}	}
}}t||||	|
|t|�}
|�|
�q$t	|�S)z System-wide network connections.rl)
r�setrrI�net_connectionsrr�TCP_STATUSES�add�list)�kind�families�typesrf�rawlistrg�fd�fam�type�laddr�raddrr�pid�ntrWrWrXr�xs�r�cCsbz	t��\}}}Wn
tyYdSw|dk}|rtj}n|dkr&tj}n|d}t�|||�S)zReturn battery info.Nrrl�<)rI�sensors_batteryryrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNrNZsbattery)rVZminsleftZ
power_pluggedZsecsleftrWrWrXr��s�r�c	Csttt�}t�}t|�D],}z!t�|�\}}|dkrd}d|��}|d�t�||||��Wqt	y7Yqw|S)z?Return CPU cores temperatures if available, else an empty dict.rNzCore Zcoretemp)
rr�rirwrIZsensors_cpu_temperaturererNZshwtempry)rfr}r~r�highrErWrWrX�sensors_temperatures�s
�r�cCrh)z:The system boot time expressed in seconds since the epoch.)rI�	boot_timerWrWrWrXr��rjr�zignoring exception on import: cCsNtdkr|Stt�}|dkst|�dkr|Std�|dkr#||S||S)z!Account for system clock updates.rrz9system clock was updated; adjusting process create_time())�INIT_BOOT_TIMEr��absr)�ctime�diffrWrWrX�adjust_proc_create_time�s
r�c	CsRg}t��}|D]}|\}}}}}|dkrqt�||pd|||�}|�|�q|S)z:Return currently connected users as a list of namedtuples.�~N)rI�usersrNZsuserre)	r�r�rgr_Ztty�hostnameZtstampr�r�rWrWrXr��sr�cCs:z	td���WdStyYdStyYdSw)NrFT)�ProcessrErr
rWrWrWrX�
_pid_0_exists�s��r�cCs*t��}trd|vrt�r|�dd�|S)z7Returns a list of PIDs currently running on the system.r)rI�pidsrr��insert)rfrWrWrXr��sr�cCst�|�}|s|t�vSdS)NT�r�
pid_existsr��r��existsrWrWrXr�s

r�cCst�|�}|s	dS|t�vS)NFr�r�rWrWrXr�s

cst����fdd��}|S)z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c
s�|j|j|j}}}z�|g|�Ri|��WSty5}zt�|�r+t|||�|�t||�|�d}~wtyF}zt	||�|�d}~wtj
yY}zt|||�|�d}~wtyv}z|dkrodt�vrot	||�|�|d�d}~ww)Nr)
r��_ppid�_name�ProcessLookupErrorrI�proc_is_zombierr�PermissionErrorr
ZZombieProcessErrorr�r�)�self�args�kwargsr�rrEr���funrWrX�wrappers(
�����z wrap_exceptions.<locals>.wrapper)�	functools�wraps)r�r�rWr�rX�wrap_exceptionssr�c
cs��|j|j|j}}}zdVWdSttfy3}zt�|j�r)t|||�|�t||�|�d}~wt	yD}zt
||�|�d}~ww)z8Same as above, for routines relying on reading /proc fs.N)r�r�r�r��FileNotFoundErrorrIr�rrr�r
)�instr�rErr�rWrWrX�wrap_exceptions_procfs3s����r�c@s�eZdZdZgd�Zdd�Zdd�Zeedd���Z	d	d
�Z
dd�Zed
d��Zedd��Z
edd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zer`edd ��Zed!d"��ZeZedKd$d%��Zed&d'��Zed(d)��Zed*d+��ZedLd-d.��ZedMd0d1��Zed2d3��Zed4d5��Z ed6d7��Z!ed8d9��Z"ed:d;��Z#e$d<d=�Z%e$d<d>�Z&ed?d@��Z'edAdB��Z(er�edCdD��Z)edEdF��Z*edGdH��Z+edMdIdJ��Z,d/Sd/S)Nr�z1Wrapper class around underlying C implementation.)�_cacher�r�r�cCs||_d|_d|_dS�N)r�r�r�)r�r�rWrWrX�__init__Js
zProcess.__init__cCst�|j�dS)z+Raise NSP if the process disappeared on us.N)rI�	proc_namer��r�rWrWrX�
_assert_aliveOszProcess._assert_alivecCs$t�|j�}t|�tt�ksJ�|S)z;Retrieves multiple process info in one shot as a raw tuple.)rIZproc_oneshot_infor�rn�kinfo_proc_map�r�rfrWrWrX�oneshotUszProcess.oneshotcC�|j�|�dSr�)r�Zcache_activater�rWrWrX�
oneshot_enter]�zProcess.oneshot_entercCr�r�)r�Zcache_deactivater�rWrWrX�oneshot_exit`r�zProcess.oneshot_exitcCs(|��td}|dur|St�|j�S)NrE)r�r�rIr�r�)r�rErWrWrXrEcszProcess.namecCs�tr|jdkr	dSt�|j�Str8|jdkrdSt|��t�d|j�d��Wd�S1s1wYdSddl}|�	�}|rK|�
|d�pJdSdS)Nr�z/proc/z/exe)r
r�rIZproc_exerr��os�readlink�shutil�cmdline�which)r�r�r�rWrWrX�exehs


$�zProcess.exec
Cs�tr	|jdkr	gStrZzt�|j�WStyY}z;|jtjkrT|j|j|j	}}}t�
|j�r8t|||�|�t|j�sDt
|||�|�td|�d��gWYd}~S�d}~wwt�|j�S)Nrz	ignoring z and returning an empty list)rr�rrIZproc_cmdliner�r��EINVALr�r�r�rr�rr)r�r�r�rErrWrWrXr��s$
��zProcess.cmdlinecC�t�|j�Sr�)rIZproc_environr�r�rWrWrX�environ��zProcess.environcCs8|��td}t��}z||WStyYdSw)Nr%)r�r�rZget_terminal_map�KeyError)r�Ztty_nrZtmaprWrWrX�terminal�s
�zProcess.terminalcCs|��td|_|jS)Nr)r�r�r�r�rWrWrXr�szProcess.ppidcC�.|��}t�|td|td|td�S)Nrrr)r�rNZpuidsr��r�ZrawtuplerWrWrX�uids��


�zProcess.uidscCr�)Nrr!r#)r�rNZpgidsr�r�rWrWrX�gids�r�zProcess.gidscCs8|��}t�|td|td|td|td�S)Nr1r3r5r7)r�rNZ	pcputimesr�r�rWrWrXr]�s



�zProcess.cpu_timescCs|��tdS)NrC)r�r�r�rWrWrX�cpu_num�szProcess.cpu_numc	CsB|��}t�|td|td|td|td|td�S)Nr9r;r=r?rA)r�rNZpmemr�r�rWrWrX�memory_info�s




�zProcess.memory_infoFcCs$|��td}tr|st|�}|S)Nr')r�r�rr�)r��	monotonicr�rWrWrXr'�szProcess.create_timecCstrt�|j�St|���Sr�)�HAS_PROC_NUM_THREADSrIrr�rn�threadsr�rWrWrX�num_threads�szProcess.num_threadscCs$|��}t�|td|td�S)Nr)r+)r�rNZpctxswr�r�rWrWrX�num_ctx_switches�s


�zProcess.num_ctx_switchescCsHt�|j�}g}|D]\}}}t�|||�}|�|�q
tr"|��|Sr�)rIZproc_threadsr�rNZpthreadrerr�)r�r�r�Z	thread_id�utimeZstimer�rWrWrXr��szProcess.threads�inetc	Cs�t|\}}g}trt�|j|�}ntrt�|j||�}nt�|j||�}|D](}|dd�\}}}	}
}}tr@||vs?|	|vr@q't|||	|
||t	�}
|�
|
�q'|��|S)Nr")rrrIr�r�rZproc_net_connectionsr
rr�rer�)r�r�r�r�rfr�rgr�r�r�r�r�rr�rWrWrXr�s$�zProcess.net_connectionsNcC�t�|j|�Sr�)rZwait_pidr�)r��timeoutrWrWrX�wait�zProcess.waitcCr�r�)rIZproc_priority_getr�r�rWrWrX�nice_getr�zProcess.nice_getcCr�r�)rIZproc_priority_setr�)r��valuerWrWrX�nice_set#r�zProcess.nice_setcCs|��td}t�|d�S)Nr�?)r�r��
PROC_STATUSES�get)r��coderWrWrXr'szProcess.statuscCs(|��}t�|td|tddd�S)Nr-r/rl)r�rNZpior�r�rWrWrX�io_counters-s

�zProcess.io_counterscCstr	|jdkr	dSt�|j�S)z)Return process current working directory.rr�)rr�rIZproc_cwdr�rWrWrX�cwd7szProcess.cwdZmmapz*path rss, private, ref_count, shadow_countz6addr, perms path rss, private, ref_count, shadow_countcCst�|j�}dd�|D�S)z8Return files opened by process as a list of namedtuples.cSsg|]
\}}t�||��qSrW)rNZ	popenfile)�.0�pathr�rWrWrX�
<listcomp>Ksz&Process.open_files.<locals>.<listcomp>)rIZproc_open_filesr�)r�r�rWrWrX�
open_filesGszProcess.open_filescCst�|j�}tr|��|S)z=Return the number of file descriptors opened by this process.)rIZproc_num_fdsr�rr�r�rWrWrX�num_fdsMszProcess.num_fdscCr�r�)rIZproc_cpu_affinity_getr�r�rWrWrX�cpu_affinity_getYr�zProcess.cpu_affinity_getc
Cs�tttt����}|D]}||vrd|�d|�d�}t|��qz
t�|j|�WdStyV}z!|j	t	j
t	jhvrQ|D]}||vrPd|�d|�d�}t|�|�q<�d}~ww)Nzinvalid CPU z (choose between �))r�rwrnrdr{rIZproc_cpu_affinity_setr�r�r�r�ZEDEADLK)r�ZcpusZallcpusr~�msgr�rWrWrX�cpu_affinity_set]s*���
���zProcess.cpu_affinity_setcCr�r�)rIZproc_memory_mapsr�r�rWrWrX�memory_mapsxr�zProcess.memory_mapscCsN|durt�|j|�St|�dkrd|��}t|��|\}}t�|j|||�S)Nrz2second argument must be a (soft, hard) tuple, got )rIZproc_getrlimitr�rnr{Zproc_setrlimit)r�ZresourceZlimitsrZsoftZhardrWrWrX�rlimit|s��zProcess.rlimit�F)r�r�)-�__name__�
__module__�__qualname__�__doc__�	__slots__r�r�r�rr�r�r�rEr�r�r�r�rr�r�r]r
r�r�Zmemory_full_infor'r�r�r�r�r�r�r�rr�r�rZnt_mmap_groupedZnt_mmap_extrrrrrr	rWrWrWrXr�Es�








	









	
��

	


�r�rWr
)pr�
contextlibr�r�r��collectionsrrZ	xml.etreerr�rrrNrr	rIr
rrr
rrrrrrrrZ__extra__all__ZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDZSZOMBZ
STATUS_ZOMBIEZSWAITZSTATUS_WAITINGZSLOCKZ
STATUS_LOCKEDr�ZSDEADZ
STATUS_WAKINGZSONPROCZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ
TCPS_SYN_SENTZ
CONN_SYN_SENTZTCPS_SYN_RECEIVEDZ
CONN_SYN_RECVZTCPS_FIN_WAIT_1ZCONN_FIN_WAIT1ZTCPS_FIN_WAIT_2ZCONN_FIN_WAIT2ZTCPS_TIME_WAITZCONN_TIME_WAITZTCPS_CLOSEDZ
CONN_CLOSEZTCPS_CLOSE_WAITZCONN_CLOSE_WAITZ
TCPS_LAST_ACKZ
CONN_LAST_ACKZTCPS_LISTENZCONN_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEZ	CONN_NONEr�ZgetpagesizeZPAGESIZEZAF_LINKr�r��dictr�rYr[r\Z	heap_trimr]rdrirkrtrxr��
disk_usageZdisk_io_countersr�Znet_if_addrsr�r�r�r�r�r��	Exceptionr�r�r�r�r�r�r��contextmanagerr�r�rWrWrWrX�<module>sN�	��
�
��������	�
���
�������������"/

 



��