%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/cli/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/cli/batch.pyo

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlmZm	Z	ddl
ZddlZddl
ZddlZddlmZddlmZddlZeje�Zdefd��YZdS(	u
Execute batch runs
i(tabsolute_importtprint_functiontunicode_literalsN(tdatetimet	timedelta(tsix(trangetBatchcB@sDeZdZdedd�Zd�Zd�Zd�Zd�Z	RS(u,
    Manage the execution of batch runs
    cC@s�||_|r|ni|_|r*|ni|_||_tjj|d�|_|j�\|_	|_
|_||_dS(Nu	conf_file(
toptsteautht
pub_kwargstquiettsalttclienttget_local_clienttlocalt_Batch__gather_minionstminionstping_gentdown_minionstoptions(tselfRR	Rtparser((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyt__init__!s		c	C@s�|jddg|jdg}|jjdd
�}|d
k	rQ|j|�n|j|jjdd��t|jd<|jjd|jd	||j�}t�}t�}x�|D]�}d
o�d|kr�x|d
D]}|j	|�q�Wq�q�yt
tj|��}Wn1t
k
rD|js@tjjjd�nPnX|d
k	r�|j	|�q�q�Wt|�||j|�fS(uC
        Return a list of minions to use for the batch run
        utgtu	test.pingutimeoutuselected_target_optionutgt_typeuglobuyield_pub_datatgather_job_timeoutugather_job_timeoutuminionsujiduNo minions matched the target.N(RtgettNonetappendtTrueR
Rtcmd_itertsettaddtnextRtiterkeyst
StopIterationRRtutilststringutilst	print_clitlistt
difference(	Rtargstselected_target_optionRtfrettnrettrettminiontm((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyt__gather_minions*s8


		

	c@s��fd�}y�t�jdtj�r�d�jdkr�|t�jdjd���}|dkrttj|��St|�Snt�jd�SWn@t	k
r��j
s�tjj
jdj�jd��q�nXdS(uA
        Return the active number of minions to maintain
        c@st|�dt�j�S(NgY@(tfloattlenR(tx(R(s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyt<lambda>Vsubatchu%iuFInvalid batch data sent: {0}
Data must be in the form of %10, 10% or 3N(t
isinstanceRRtstring_typesR0tstriptinttmathtceilt
ValueErrorRRR#R$R%tformat(Rt	partitiontres((Rs2/usr/lib/python2.7/site-packages/salt/cli/batch.pytget_bnumRs,"

	cC@sYtj�}d}x0|t|�krD|||krD|d7}qW|rU||4ndS(Nii(RtnowR1(RtwaitR?ti((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyt
__update_waites%cc@s�g|jd|jd|jddg}|j�}|jsCdStj|j�}g}i}g}|jjdd�}g}|jr�|jj}	|jj}
nt	}	t	}
i}|j
s�x0|jD]"}tj
jjdj|��q�Wnx�t|�t|j�kr�g}
|r4|r4|j|�nt|�|t|�krz|rzx�|rv|
j|j��qZWnvxst|t|�t|��D]Q}|r�|j�}t|t�r�|
j|j�d�q�|
j|�q�q�W||
7}|
|d<|
r�|j
s8tj
jjd	jt|
���n|jjd
|jjdt	�d|jjd
d�d|	d|
d|jd||j�}|j|�i||<|
||d<t||d<n
tjd�i}xe|j D]Z}|dkr�Pnt"t#j$|��}||jkr�|jj|�|j|�q�q�Wx�|D]�}yOd}xBtr�t"|�}|dkr�tjd�|d7}|dkr]Pq]q]n|jjd�r5|j%i||dd6�|dd||dkr||dj&|dd�q�tj
jjdj|d��q]|j%|�xV|D]N}|||dkr{||dj&|�qItj
jjdj|��qIWq]WWqKt'k
r||krt	||d<x@||dD]-}||kr�i||<i||d<q�q�WqqKXqKWx�t#j(|�D]�\}}||krv|j&|�|rv|jt)j*�t+d|��qvnt	}d|kr�t|dt�r�d|dkr�|d|dd<|jjd�r|dddkrt}qn+|jjd�r|ddkrt}n|jjd�r>|||<|Vn|d||<i|d|6V|j
s�|d||<|jd�||<d |kr�|jd �}nd}tj,j-|||j�n|r%t.j/d!|�t'�q%q%Wx�|D]�}||dr�||kr�|j&|�x^||dD]K}||kr-|j&|�|rx|jt)j*�t+d|��qxq-q-Wq�q�Wq�WdS("u'
        Execute the batch run
        ufunuargutimeoutulistNu
batch_waitiu0Minion {0} did not respond. No job will be sent.u
Executing run on {0}
trawurawR,ureturnutshow_jidtverboseRugather_job_timeoutuminionsuactiveg{�G�z�?g{�G�z�?iiudatauiduEminion {0} was already deleted from tracker, probably a duplicate keyurettsecondsuretcodeufailharduoutuMMinion %s returned with non-zero exit code. Batch run stopped due to failhard(0RR>RtcopytdeepcopyRRRDREtFalseRRRR#R$R%R;R1t_Batch__update_waitRtpopRR4tdicttkeystsortedRtcmd_iter_no_blockR	RttimetsleepRRR RR!tupdatetremoveR"t	iteritemsRR?Rtoutputtdisplay_outputtlogterror(RR(tbnumtto_runtactiveR,titerstbwaitR@RDtshow_verbosetminion_trackertdown_miniontnext_RAt	minion_idtnew_itertpartstping_retR.tqueuetncnttparttidR-tdatatfailhardtout((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pytrunms


				##	'

	%




	

 #

(

 
&/&"	
		




N(
t__name__t
__module__t__doc__RRIRRR>RJRm(((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyRs		(		(Rpt
__future__RRRR8RPRGRRtsalt.utils.stringutilsRtsalt.clienttsalt.outputtsalt.exceptionstsalt.extRtsalt.ext.six.movesRtloggingt	getLoggerRnRWtobjectR(((s2/usr/lib/python2.7/site-packages/salt/cli/batch.pyt<module>s

Zerion Mini Shell 1.0