Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/_psaix.cpython-35.opt-1.pyc



Cs[K@sAdZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZdgZ e!edZ"ej#dZ$ej%Z%ej&ej'ej(ej)ej*ej+ej,ej+ej-ej.iZ/ej0ej1ej2ej3ej4ej5ej6ej7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAejBejCejDejEejFejGiZHeIdddddddddd d!d"d#d$d%d&ZJed'ddgZKeKZLed(d)d*d+d,gZMed-d.d/d0d1d2gZNed3d4dd5d6gZOed7d8d9jPeOjQZRd:d;ZSd<d=ZTd>d?ZUd@dAZVdBdCZWdDdEZXdFdGZYdHdIZZej[Z[e
j\Z\dJdKdLZ]ej^Z^ej_Z_d]dMdNZ`dOdPZadQdRZbdSdTZcdUdVZddWdXZedYdZZfGd[d\d\egZhdS)^zAIX platform implementation.N)
namedtuple)AF_INET)_common)_psposix)_psutil_aix)
_psutil_posix)AF_INET6)memoize_when_activated)NIC_DUPLEX_FULL)NIC_DUPLEX_HALF)NIC_DUPLEX_UNKNOWN)sockfam_to_enum)socktype_to_enum)
usage_percent)PY3)AccessDenied)
NoSuchProcess)
ZombieProcessPROCFS_PATHproc_threadsSC_PAGE_SIZEppidrssvmscreate_timenicenum_threadsstatusttynrpmem	scputimesusersystemZidleZiowaitsvmemtotalZ	availablepercentusedfree
pmmap_groupedpathZanonlocked	pmmap_extzaddr perms  cCstjdjS)z+Return updated psutil.PROCFS_PATH constant.Zpsutil)sysmodulesrr6r6
/_psaix.pyget_procfs_pathlsr8cCsJtj\}}}}}t|||dd}t|||||S)Nround_r)cextZvirtual_memrr*)r+Zavailr.ZpinnedZinuser,r6r6r7virtual_memoryvsr;cCsStj\}}}}||}t||dd}tj||||||S)z=Swap system memory as a (total, used, free, sin, sout) tuple.r9r)r:Zswap_memrrZsswap)r+r.sinZsoutr-r,r6r6r7swap_memory|s
r=cCs)tj}tddt|DS)z-Return system-wide CPU times as a named tuplecSsg|]}t|qSr6)sum).0xr6r6r7
<listcomp>s	zcpu_times.<locals>.<listcomp>)r:
per_cpu_timesr'zip)retr6r6r7	cpu_timessrEcCstj}dd|DS)z5Return system per-CPU times as a list of named tuplescSsg|]}t|qSr6)r')r?r@r6r6r7rAs	z!per_cpu_times.<locals>.<listcomp>)r:rB)rDr6r6r7rBsrBcCs.ytjdSWntk
r)dSYnXdS)z0Return the number of logical CPUs in the system.SC_NPROCESSORS_ONLNN)ossysconf
ValueErrorr6r6r6r7cpu_count_logicals
rJcCsd}tj|dddtjdtj}|j\}}trddd||fD\}}|jdkrtd	||f|jj}t	|pdS)
Nzlsdev -Cc processorshellTstdoutstderrcSs%g|]}|jtjjqSr6)decoder4rLencoding)r?r@r6r6r7rAs	z&cpu_count_physical.<locals>.<listcomp>rz%r command error
%s)

subprocessPopenPIPEcommunicater
returncodeRuntimeErrorstrip
splitlineslen)cmdprLrMZ
processorsr6r6r7cpu_count_physicals	r[cCs.tj\}}}}tj||||S)z*Return various CPU stats as a named tuple.)r:	cpu_statsrZ	scpustats)Zctx_switchesZ
interruptsZsoft_interruptsZsyscallsr6r6r7r\sr\Fc	Csg}tj}xo|D]g}|\}}}}|dkrCd}|s[t|js[qtj||||}|j|qW|S)zReturn system disk partitions.Znone)r:disk_partitions
disk_usager+rZ	sdiskpartappend)	allretlistZ
partitions	partitionZdeviceZ
mountpointZfstypeZoptsntupler6r6r7r^s
r^c	Csytj}||krAtd|djdd|Dftj|\}}tj|}t}x|D]}|\}}	}
}}}
}|	|krqs|
|krqst|
}
|	tt	fkr|rtj
|}|rtj
|}t|	}	t|
}
|dkr@tj
||	|
|||
|}ntj||	|
|||
}|j|qsWt|S)zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    z+invalid %r kind argument; choose between %sz, cSsg|]}t|qSr6)repr)r?r@r6r6r7rAs	z#net_connections.<locals>.<listcomp>r)rZ	conn_tmaprIjoinr:net_connectionssetTCP_STATUSESrr	addrrrZsconnZpconnaddlist)kind_pidZcmapfamiliestypesrawlistrDitemfdZfamZtype_laddrraddrr"pidntr6r6r7rhs4	&	

$rhcCsJdtdti}tddtD}i}x|D]}tj|\}}d}d}tjdd|gd	tjd
tj}|j	\}	}
t
rdd|	|
fD\}	}
|jdkrtj
d|	}|d
k	rt|jd}|jd}|j|t}tj||||||<q;W|S)z)Get NIC stats (isup, duplex, speed, mtu).FullZHalfcSsg|]}|dqS)rr6)r?r@r6r6r7rAs	z net_if_stats.<locals>.<listcomp>r]rz/usr/bin/entstatz-drLrMcSs%g|]}|jtjjqSr6)rNr4rLrO)r?r@r6r6r7rA
s	z"Running: (\d+) Mbps.*?(\w+) DuplexNrr)rrrinet_if_addrsr:net_if_statsrPrQrRrSrrTresearchintgroupgetr
rZ	snicstats)Z
duplex_mapnamesrDnameZisupZmtuduplexZspeedrZrLrMZ	re_resultr6r6r7r{s.
	 r{cCs
tjS)z:The system boot time expressed in seconds since the epoch.)r:	boot_timer6r6r6r7r srcCsg}tj}d}xi|D]a}|\}}}}}}	|sFq||krXd}tj|||||	}
|j|
qW|S)z:Return currently connected users as a list of namedtuples.:0.0:0	localhost)rr)r:usersrZsuserr`)rbrrrrsr(ZttyhostnameZtstampZuser_processrwrxr6r6r7r%s
rcCsddtjtDS)z7Returns a list of PIDs currently running on the system.cSs(g|]}|jrt|qSr6)isdigitr~)r?r@r6r6r7rA?s	zpids.<locals>.<listcomp>)rGlistdirr8r6r6r6r7pids=srcCs+tjjtjjtt|dS)z&Check for the existence of a unix pid.Zpsinfo)rGr0existsrgr8str)rwr6r6r7
pid_existsBsrcsfdd}|S)zCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    csy|||SWntk
r}ztdksMtdksMtdkrP|jtjtjfkrt|jst|j|j	nt|j|j	|j
|jtjtjfkrt|j|j	WYdd}~XnXdS)N)
EnvironmentErrorrrrerrnoENOENTZESRCHrrw_name_ppidEPERMZEACCES)selfargskwargserr)funr6r7wrapperLsz wrap_exceptions.<locals>.wrapperr6)rrr6)rr7wrap_exceptionsGsrc@seZdZdZddddgZddZdd	Zd
dZedd
Z	eddZ
eddZeddZ
eddZeddZeddZeddZereddZeddd Zed!d"Zed#d$Zed%d&Zed'd(Zed)d*Zed+d,Zed-d.Zed/d0Zed1d2ZeZed3d4Zd5d6Z ed7d8Z!ed9d:Z"ed;d<d=Z#ed>d?Z$d;S)@Processz1Wrapper class around underlying C implementation.rwrr_procfs_pathcCs+||_d|_d|_t|_dS)N)rwrrr8r)rrwr6r6r7__init__gs			zProcess.__init__cCs+|jj|jj|jjdS)N)_proc_name_and_argsZcache_activate_proc_basic_info
_proc_cred)rr6r6r7
oneshot_enterms

zProcess.oneshot_entercCs+|jj|jj|jjdS)N)rZcache_deactivaterr)rr6r6r7oneshot_exitrs

zProcess.oneshot_exitcCstj|j|jS)N)r:Zproc_name_and_argsrwr)rr6r6r7rwszProcess._proc_name_and_argscCstj|j|jS)N)r:Zproc_basic_inforwr)rr6r6r7r{szProcess._proc_basic_infocCstj|j|jS)N)r:Z	proc_credrwr)rr6r6r7rszProcess._proc_credcCs*|jdkrdS|jdjdS)NrZswapper)rwrrstrip)rr6r6r7rszProcess.namecCs|jd}tjj|krtjj|s[tjjtjj|j|}tjj|rtjj|rtj	|tj
r|Stjj|}xjtjdj
dD]R}tjjtjj||}tjj|rtj	|tj
r|SqWdS)NrPATH:r])cmdlinerGr0sepisabsabspathrgcwdisfileaccessX_OKbasenameenvironsplit)rexer0Zpossible_exer6r6r7rs'!zProcess.execCs|jdjdS)Nrr3)rr)rr6r6r7rszProcess.cmdlinecCs|jtdS)Nr)r
proc_info_map)rr6r6r7rszProcess.create_timecCs|jtdS)Nr )rr)rr6r6r7r szProcess.num_threadscCs{tj|j}g}x9|D]1\}}}tj|||}|j|qW|swtjd|j|jf|S)Nz%s/%s)	r:rrwrZpthreadr`rGstatr)rrrrbZ	thread_idutimeZstimerdr6r6r7threadsszProcess.threadsZinetcCs<t|d|j}|s8tjd|j|jf|S)Nroz%s/%s)rhrwrGrr)rrnrDr6r6r7connectionsszProcess.connectionscCstj|jS)N)
cext_posixgetpriorityrw)rr6r6r7nice_getszProcess.nice_getcCstj|j|S)N)rsetpriorityrw)rvaluer6r6r7nice_setszProcess.nice_setcCs|jtd|_|jS)Nr)rrr)rr6r6r7rszProcess.ppidcCs1|j\}}}}}}tj|||S)N)rrpuids)rreal	effectivesaved_r6r6r7uidsszProcess.uidscCs1|j\}}}}}}tj|||S)N)rrr)rrrrrr6r6r7gidsszProcess.gidscCs%tj|j|j}tj|S)N)r:Zproc_cpu_timesrwrrZ	pcputimes)rrEr6r6r7rEszProcess.cpu_timescCsd|jtd}|d@d?|d@B}x3tjdD]"}tj|j|kr:|Sq:WdS)Nr$liz	/dev/**/*)rrglobrGrst_rdev)rZttydevZdevr6r6r7terminalszProcess.terminalcCs|j}y-tjd||jf}|jdSWnXtk
r}z8|jtjkr{tjd||jfdSWYdd}~XnXdS)Nz	%s/%s/cwd/z%s/%s)	rrGreadlinkrwrOSErrorrrr)rZprocfs_pathresultrr6r6r7rs	zProcess.cwdcCs=|j}|tdd}|tdd}t||S)Nrir)rrr&)rrDrrr6r6r7memory_infoszProcess.memory_infocCs$|jtd}tj|dS)Nr"?)rr
PROC_STATUSESr)rcoder6r6r7r"	szProcess.statuscCs#tjddt|jgdtjdtj}|j\}}trjdd||fD\}}d|jkrt|j|j	t
jd|}g}xs|D]k\}}|j}|j
d	r|d
d}|jdkrq|jtj|t|qW|S)Nz/usr/bin/procfilesz-nrLrMcSs%g|]}|jtjjqSr6)rNr4rLrO)r?r@r6r6r7rAs	z&Process.open_files.<locals>.<listcomp>zno such processz (\d+): S_IFREG.*\s*.*name:(.*)\nz//rzcannot be retrieved)rPrQrrwrRrSrlowerrrr|findallrV
startswithr`rZ	popenfiler~)rrZrLrMZ	procfilesrbrtr0r6r6r7
open_filess$	#zProcess.open_filescCs6|jdkrdSttjd|j|jfS)Nrz%s/%s/fd)rwrXrGrr)rr6r6r7num_fds%szProcess.num_fdscCstjtj|jS)N)rZpctxswr:Zproc_num_ctx_switchesrw)rr6r6r7num_ctx_switches+szProcess.num_ctx_switchesNcCstj|j||jS)N)rZwait_pidrwr)rtimeoutr6r6r7wait0szProcess.waitc
Csty"tj|j\}}}}Wn9tk
r]t|jsVt|j|jYnXtj||||S)N)	r:Zproc_io_countersrwrrrrrZpio)rrcZwcrbwbr6r6r7io_counters4s"
zProcess.io_counters)%__name__
__module____qualname____doc__	__slots__rrrr
rrrrrrrrr HAS_THREADSrrrrrrrrErrrZmemory_full_infor"rrrrrr6r6r6r7rbsDrrf)irrrrGr|rPr4collectionsrsocketrr]rrrr:rrr	r
rrr
rrrZ_compatr_exceptionsrrrZ__extra__all__hasattrrrHZ	PAGE_SIZEZAF_LINKZSIDLZSTATUS_IDLEZSZOMBZ
STATUS_ZOMBIEZSACTIVEZSTATUS_RUNNINGZSSWAPZSSTOPZSTATUS_STOPPEDrZTCPS_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_NONEZ	CONN_NONErjdictrr&Zpfullmemr'r*r/rg_fieldsr2r8r;r=rErBrJr[r\Zdisk_io_countersr_r^rzZnet_io_countersrhr{rrrrrobjectrr6r6r6r7<module>s				

					!%
Back to Directory File Manager