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__/_pssunos.cpython-310.pyc
o

;j~]�@s�dZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddl
mZ
ddl
mZdd	l
mZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZgd�Ze��Zej Z ej!dkZ"dZ#dZ$ej%ej&ej'ej(ej)ej*ej+ej,ej-ej.ej/ej(ej0ej1iZ2ej3ej4ej5ej6ej7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAejBejCejDejEejFejGejHejIejJejKe#ejLe$iZMeNddddddddd d!d"d#d$�ZOd%d&�ZPd'd(�ZQd)d*�ZRd+d,�ZSd-d.�ZTd/d0�ZUd1d2�ZVejWZWejXZXdGd4d5�ZYejZZZej[Z[dHd7d8�Z\d9d:�Z]d;d<�Z^d=d>�Z_d?d@�Z`dAdB�ZadCdD�ZbGdEdF�dF�ZcdS)Iz'Sun OS Solaris platform implementation.�N)�
namedtuple)�AF_INET�)�_common)�_ntuples)�_psposix)�
_psutil_sunos)�AF_INET6)�ENCODING)�AccessDenied)�
NoSuchProcess)�
ZombieProcess)�debug)�get_procfs_path)�
isfile_strict)�memoize_when_activated)�sockfam_to_enum)�socktype_to_enum)�
usage_percent)�	CONN_IDLE�
CONN_BOUNDZPROCFS_PATHlZIDLEZBOUND��������	�
�)�ppid�rss�vms�create_time�nice�num_threads�status�ttynr�uid�euid�gid�egidcCsHt�d�t}t�d�t}}||}t||dd�}t�|||||�S)zReport virtual memory metrics.�
SC_PHYS_PAGES�SC_AVPHYS_PAGESr�Zround_)�os�sysconf�	PAGE_SIZEr�ntpZsvmem)�total�freeZavail�used�percent�r8�C/opt/saltstack/salt/lib/python3.10/site-packages/psutil/_pssunos.py�virtual_memory`s
r:c	Cst��\}}tjddtjd��ddgtjd�}|��\}}|�t	j
j�}|jdkr5d|j�d	�}t
|��|���d
�dd�}|sHd
}t
|��d}}|D]"}	|	��}	|	dd�\}
}|tt|
�d�7}|tt|�d�7}qN||}t||dd�}
t�||||
|t|t�S)zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:�PATHZswapz-l)�stdoutrz'swap -l' failed (retcode=�)�
rNzno swap device(s) configuredrrir/)�cextZswap_mem�
subprocess�Popenr0�environ�PIPE�communicate�decode�sysr<�encoding�
returncode�RuntimeError�strip�split�intrr3Zsswapr2)�sinZsout�pr<�_�msg�linesr4r5�line�t�fr6r7r8r8r9�swap_memoryks:��	
�rUcCs t��}tjdd�t|�D��S)z.Return system-wide CPU times as a named tuple.cSsg|]}t|��qSr8)�sum��.0�xr8r8r9�
<listcomp>�szcpu_times.<locals>.<listcomp>)r?�
per_cpu_timesr3�	scputimes�zip��retr8r8r9�	cpu_times�sr`cCst��}dd�|D�S)z6Return system per-CPU times as a list of named tuples.cS�g|]}tj|��qSr8)r3r\rWr8r8r9rZ��z!per_cpu_times.<locals>.<listcomp>)r?r[r^r8r8r9r[�sr[cCs"zt�d�WStyYdSw)z0Return the number of logical CPUs in the system.�SC_NPROCESSORS_ONLNN)r0r1�
ValueErrorr8r8r8r9�cpu_count_logical�s
�recC�t��S)z-Return the number of CPU cores in the system.)r?�cpu_count_coresr8r8r8r9rg��rgcCs$t��\}}}}d}t�||||�S)z*Return various CPU stats as a named tuple.r)r?�	cpu_statsr3Z	scpustats)Zctx_switchesZ
interruptsZsyscallsZ_trapsZsoft_interruptsr8r8r9ri�sriFc
Cs�g}t��}|D]C}|\}}}}|dkrd}|s>z	t|�js WqWnty=}ztd|�d|���WYd}~qd}~wwt�||||�}	|�|	�q|S)zReturn system disk partitions.�none�z	skipping z: N)	r?�disk_partitions�
disk_usager4�OSErrorrr3Z	sdiskpart�append)
�all�retlistZ
partitions�	partitionZdeviceZ
mountpointZfstype�opts�errZntupler8r8r9rl�s&
���rl���c
Cs�tj|\}}t�|�}t�}|D]T}|\}}}	}
}}}
||vr!q|	|vr&q|tthvr:|
r3tj|
�}
|r:tj|�}t	|}t
|�}t|	�}	|dkrVt�|||	|
|||
�}n
t�
|||	|
||�}|�|�qt|�S)z�Return socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    Only INET sockets are returned (UNIX are not).
    ru)rZ	conn_tmapr?�net_connections�setrr	r3�addr�TCP_STATUSESrrZsconn�pconn�add�list)�kind�_pidZfamilies�types�rawlistr_�item�fdZfam�type_�laddr�raddrr'�pid�ntr8r8r9rv�s,


rvcCsTt��}|��D]\}}|\}}}}ttd�rt�|�}t�||||d�||<q|S)z)Get NIC stats (isup, duplex, speed, mtu).�	NicDuplexrk)r?�net_if_stats�items�hasattrrr�r3Z	snicstats)r_�namer�ZisupZduplexZspeedZmtur8r8r9r�s

r�cCrf)z:The system boot time expressed in seconds since the epoch.)r?�	boot_timer8r8r8r9r�rhr�cCs\g}t��}d}|D]!}|\}}}}}}	|sq
||vrd}t�|||||	�}
|�|
�q
|S)z:Return currently connected users as a list of namedtuples.)z:0.0z:0�	localhost)r?�usersr3Zsuserro)rqr�r�r��user�tty�hostnameZtstampZuser_processr�r�r8r8r9r�sr�cCs t��t�}dd�t�|�D�S)z7Returns a list of PIDs currently running on the system.cSsg|]
}|��rt|��qSr8)�isdigitrLrWr8r8r9rZ5szpids.<locals>.<listcomp>)r�encoder
r0�listdir)�pathr8r8r9�pids2sr�cCs
t�|�S)z&Check for the existence of a unix pid.)r�
pid_exists)r�r8r8r9r�8s
r�cst����fdd��}|S)z�Call callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c
s�|j|j|j}}}z�|g|�Ri|��WSttfy6}zt|�s+t||�|�t|||�|�d}~wtyG}zt	||�|�d}~wt
yc}z|dkr^dt�vr]t	||�|���d}~ww�Nr)r��_ppid�_name�FileNotFoundError�ProcessLookupErrorr�rr
�PermissionErrorrrnr�)�self�args�kwargsr�r!r�rt��funr8r9�wrapperBs&��
��z wrap_exceptions.<locals>.wrapper)�	functools�wraps)r�r�r8r�r9�wrap_exceptions=sr�c@s�eZdZdZgd�Zdd�Zdd�Zdd�Zd	d
�Ze	e
dd���Ze	e
d
d���Ze	e
dd���Z
e	dd��Ze	dd��Ze	dd��Ze	dd��Ze	dd��Ze	dd��Ze	dd��Ze	dd ��Ze	d!d"��Ze	d#d$��Ze	d%d&��Ze	d'd(��Ze	d)d*��Ze	d+d,��Ze	d-d.��Ze	d/d0��ZeZe	d1d2��Ze	d3d4��Z e	d5d6��Z!d7d8�Z"e	dHd:d;��Z#e$d<d=�Z%e$d<d>�Z&e	d?d@��Z'e	dAdB��Z(e	dCdD��Z)e	dIdFdG��Z*dES)J�Processz1Wrapper class around underlying C implementation.)�_cacher�r��_procfs_pathr�cCs||_d|_d|_t�|_dS�N)r�r�r�rr�)r�r�r8r8r9�__init___szProcess.__init__cCst�|j�d|j���dS)z+Raise NSP if the process disappeared on us.�/N)r0�statr�r��r�r8r8r9�
_assert_aliveeszProcess._assert_alivecC�(|j�|�|j�|�|j�|�dSr�)�_proc_name_and_argsZcache_activate�_proc_basic_info�
_proc_credr�r8r8r9�
oneshot_enterk�zProcess.oneshot_entercCr�r�)r�Zcache_deactivater�r�r�r8r8r9�oneshot_exitpr�zProcess.oneshot_exitcC�t�|j|j�Sr�)r?Zproc_name_and_argsr�r�r�r8r8r9r�u�zProcess._proc_name_and_argscCsX|jdkrtj�|j�d|j�d��st|j��t�|j|j�}t|�tt	�ks*J�|S)Nrr�z/psinfo)
r�r0r��existsr�rr?Zproc_basic_info�len�
proc_info_map)r�r_r8r8r9r�zs�
zProcess._proc_basic_infocCr�r�)r?Z	proc_credr�r�r�r8r8r9r��r�zProcess._proc_credcC�|��dSr��r�r�r8r8r9r��szProcess.namecCs<zt�|j�d|j�d��WStyYnw|��dS)Nr�z/path/a.outrk)r0�readlinkr�r�rn�cmdliner�r8r8r9�exe�s�zProcess.execCr�)Nrr�r�r8r8r9r��szProcess.cmdlinecCr�r�)r?Zproc_environr�r�r�r8r8r9rB��zProcess.environcC�|��tdS)Nr$�r�r�r�r8r8r9r$�r�zProcess.create_timecCr�)Nr&r�r�r8r8r9r&�r�zProcess.num_threadscCr�)Nr%r�r�r8r8r9�nice_get�szProcess.nice_getcCs&|jdvrt|j|j��t�|j|�S)N>rr)r�rr�r?Zproc_priority_set)r��valuer8r8r9�nice_set�s
zProcess.nice_setcCs|��td|_|jS)Nr!)r�r�r�r�r8r8r9r!�szProcess.ppidcCs^z|��\}}}}}}Wnty'|��td}|��td}d}Ynwt�|||�S)Nr)r*�r�rr�r�r3Zpuids)r��real�	effective�savedrOr8r8r9�uids���zProcess.uidscCs^z|��\}}}}}}Wnty'|��td}|��td}d}Ynwt�|||�S)Nr+r,r�)r�rOr�r�r�r8r8r9�gids�r�zProcess.gidsc
Cs\z
t�|j|j�}Wnty(}z|jtjkrtsd}n�WYd}~nd}~wwtj	|�S)N)�r�r�r�)
r?Zproc_cpu_timesr�r�rn�errno�	EOVERFLOW�	IS_64_BITr3Z	pcputimes)r��timesrtr8r8r9r`�s���
zProcess.cpu_timescCr�r�)r?Zproc_cpu_numr�r�r�r8r8r9�cpu_num�r�zProcess.cpu_numc	Cs~|j}d}t|��td�}|tjkr5dD]}zt�|�d|j�d|���WSt	y4d}Yqw|r=|�
�dSdS)NFr()rrr�r��/path/T)r�r�r�r�r?ZPRNODEVr0r�r�r�r�)r��procfs_path�
hit_enoentr�rYr8r8r9�terminal�s
"��zProcess.terminalcCsL|j}z
t�|�d|j�d��WSty%t�|�d|j���YdSw)Nr�z	/path/cwdrk)r�r0r�r�r�r�)r�r�r8r8r9�cwd�s�zProcess.cwdcCs4|��}|tdd}|tdd}t�||�S)Nr"ir#)r�r�r3Zpmem)r�r_r"r#r8r8r9�memory_infoszProcess.memory_infocCs|��td}t�|d�S)Nr'�?)r�r��
PROC_STATUSES�get)r��coder8r8r9r'szProcess.statusc
Cs�|j}g}t�|�d|j�d��}d}|D]H}t|�}zt�|j||�\}}Wn)tyP}z|jtj	kr=t
s=WYd}~q|jtjkrKd}WYd}~q�d}~wwt�
|||�}	|�|	�q|rd|��|S)Nr�z/lwpFT)r�r0r�r�rLr?Zquery_process_threadrnr�r�r��ENOENTr3Zpthreadror�)
r�r�r_Ztidsr��tid�utimeZstimertr�r8r8r9�threadss0���zProcess.threadsc	Cs�g}d}|j}|�d|j�d�}t�|�d|j�d��D]1}tj�||�}tj�|�rMzt�|�}Wnty=d}Yqwt	|�rM|�
t�|t
|���q|rT|��|S)NFr�z/path�/fdT)r�r�r0r�r��join�islinkr�r�rror3Z	popenfilerLr�)r�rqr�r�Zpathdirr�r��filer8r8r9�
open_files8s&��zProcess.open_filesccs,�dt|�g}tj|tjtjd�}|��\}}dd�||fD�\}}|jdkrLd|��vr4t|j|j	��d|��vrAt
|j|j	��|�d|��}t|��|�d	�d
d�}t
|�D]:\}}	|	��}	|	�d�r�|	�d
d
�d
}
||d
��}|dkr~tj}n
|dkr�tj}nd}dtj||
dtjfVqYdS)z<Get UNIX sockets used by process by parsing 'pfiles' output.Zpfiles)r<�stderrcss�|]
}|�tjj�VqdSr�)rErFr<rGrWr8r8r9�	<genexpr>Vs�
�z,Process._get_unix_sockets.<locals>.<genexpr>rzpermission deniedzno such processz command error
r>rNzsockname: AF_UNIX� �SOCK_STREAM�
SOCK_DGRAMrurk)�strr@rArCrDrH�lowerrr�r�rrIrK�	enumerate�lstrip�
startswithrJ�socketr�r��AF_UNIXr�	CONN_NONE)r�r��cmdrNr<r�rPrQ�irRr��typer8r8r9�_get_unix_socketsMs<�
�
�

��zProcess._get_unix_sockets�inetcCsRt||jd�}|st�|j�d|j���|dvr'|�dd�|�|j�D��|S)N)r~r�>ZunixrpcSrar8)r3rz)rX�connr8r8r9rZ~rbz+Process.net_connections.<locals>.<listcomp>)rvr�r0r�r��extendr�)r�r}r_r8r8r9rvos�zProcess.net_connectionsZmmapzpath rss anon lockedzaddr perms path rss anon lockedcCs*dd�}|j}g}z	t�|j|�}Wnty/}z|jtjkr*ts*gWYd}~S�d}~wwd}|D]X}|\}}	}
}}}
}|||	�}|�d�s�zt	�
|�d|j�d|���}Wn'ty�}z|jtjkru|�d|j�d|��}d}n�WYd}~nd}~ww|�||
|||
|f�q4|r�|�
�|S)NcSs0d�t|�dd��d�t|�dd��d��S)Nz{}-{}r�L)�format�hexrJ)�start�endr8r8r9�toaddr�s(�z#Process.memory_maps.<locals>.toaddrF�[r�r�T)r�r?Zproc_memory_mapsr�rnr�r�r�r�r0r�r�ror�)r�rr�rqr�rtr�r�rxZaddrsize�permr�r"Zanon�lockedr8r8r9�memory_maps�s<��

 ���zProcess.memory_mapscCstt�|j�d|j�d���S)Nr�r�)r�r0r�r�r�r�r8r8r9�num_fds�szProcess.num_fdscCstjt�|j|j��Sr�)r3Zpctxswr?Zproc_num_ctx_switchesr�r�r�r8r8r9�num_ctx_switches�s�zProcess.num_ctx_switchesNcCst�|j|�Sr�)rZwait_pidr�)r��timeoutr8r8r9�wait�szProcess.wait)r�r�)+�__name__�
__module__�__qualname__�__doc__�	__slots__r�r�r�r�r�rr�r�r�r�r�r�rBr$r&r�r�r!r�r�r`r�r�r�r�Zmemory_full_infor'r�r�r�rvrZnt_mmap_groupedZnt_mmap_extrrrr
r8r8r8r9r�Zs�	







	

	
	






!
"


.

r�)F)ru)drr�r�r0r�r@rF�collectionsrrrkrrr3rrr?r	r
rrr
rrrrrrrZ__extra__all__Zgetpagesizer2ZAF_LINK�maxsizer�rrZSSLEEPZSTATUS_SLEEPINGZSRUNZSTATUS_RUNNINGZSZOMBZ
STATUS_ZOMBIEZSSTOPZSTATUS_STOPPEDZSIDLZSTATUS_IDLEZSONPROCZSWAITZSTATUS_WAITINGr�ZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ
TCPS_SYN_SENTZ
CONN_SYN_SENTZ
TCPS_SYN_RCVDZ
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_NONEr�Z	TCPS_IDLEZ
TCPS_BOUNDry�dictr�r:rUr`r[rergriZdisk_io_countersrmrlZnet_io_countersZnet_if_addrsrvr�r�r�r�r�r�r�r8r8r8r9�<module>s�
���.