%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/utils/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/utils/timed_subprocess.pyc

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZ	ddl
Z	ddlmZde
fd��YZdS(u5
For running command line executables with a timeout
i(tabsolute_importtprint_functiontunicode_literalsN(tsixt	TimedProccB@s eZdZd�Zd�ZRS(uY
    Create a TimedProc object, calls subprocess.Popen with passed args and **kwargs
    cK@s�|jdt�|_|jdd�|_|jd|j�|_|jdd�|_|jdt�|_|js�d|_|d<t|_nR|jdk	r�|js�tj	j
j|jjdd��|_nt
j|d<n|jsd|_|d<d|_|d	<n|jrVt|jttf�rVtjjd
j|j���n|jdt�r�tj	jj|dt�}nyt
j||�|_Wn�ttfk
r�|jdt�svt|tt f�syt!j"|�}Wqtk
rt!j"t#j$|��}qXng}xF|D]>}t|t#j%�s\|j&t#j$|��q+|j&|�q+W|}n-t|tt t#j%f�s�t#j$|�}nx�t#j'|jd
i��D]q\}}t|t#j%�s�t#j$|�|d
|<nt|t#j%�s�|d
j|�|d
t#j$|�<q�q�Wt#j(rid
|kritj	jj)|d
�|d
<ntj	jj|�}t
j||�|_nX||_*dS(Nubgustdinuwith_communicateutimeoutustdin_raw_newlinesu\nu
ustdoutustderru#Error: timeout {0} must be a numberushelltto_struenv(+tpoptFalsetwaittNonetstdintwith_communicatettimeouttstdin_raw_newlinestsalttutilststringutilstto_bytestreplacet
subprocesstPIPEtstdouttstderrt
isinstancetinttfloatt
exceptionstTimedProcTimeoutErrortformattgettdatatdecodetTruetPopentprocesstAttributeErrort	TypeErrortlistttupletshlextsplitRt	text_typetstring_typestappendt	iteritemstPY2tencode_dicttcommand(tselftargstkwargststr_argstargtkeytval((s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pyt__init__s\		*	"!

	(+ c@s��fd�}�js"|�n�tjd|���j��j�j��j�r��jj���fd�}tjd|�j�t	j
jdj�j
tj�j����n�jjS(u�
        wait for subprocess to terminate and return subprocess' return code.
        If timeout is reached, throw TimedProcTimeoutError
        c@sM�jr0�jjd�j�\�_�_n�jrI�jj�ndS(Ntinput(RR"tcommunicateR
RRR((R0(s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pytreceiveWs	'	ttargetc@s �j�r�jj�ndS(N(tisAliveR"t	terminate((trtR0(s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pyR=gsi
u!{0} : Timed out after {1} seconds(Rt	threadingtThreadtstarttjoinR<R"tkilltTimerRRRRR/RR)t
returncode(R0R:R=((R>R0s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pytrunRs	


	(t__name__t
__module__t__doc__R7RF(((s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pyRs	?(RIt
__future__RRRR'RR?tsalt.exceptionsRtsalt.utils.datatsalt.extRtobjectR(((s?/usr/lib/python2.7/site-packages/salt/utils/timed_subprocess.pyt<module>s

Zerion Mini Shell 1.0