%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/daemons/flo/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/daemons/flo/worker.pyc

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZddl	m
Z
ddlZddl
ZddlmZddlmZddlmZddljjZddlZddlZeje�ZgZejjj ejj!j"d�d	iejj!j"d
�d6ejj!j"d�d
6ejj!j"d�d6ejj!j"d�d6ejj!j"d�d6ejj!j"d�d6�d��Z#dej$fd��YZ%dejjj&fd��YZ'dejjj&fd��YZ(dS(u.
The core behaviors used by minion and master
i(tabsolute_importtprint_functiontunicode_literalsN(trange(traeting(t	LaneStack(t
RemoteYarduSaltRaetWorkerForktioinitsu
.salt.optsuoptsu.salt.usr.proc_mgruproc_mgru.salt.var.worker_verifyu
worker_verifyu.salt.access_keysuaccess_keysu.salt.var.zmq.master_keyumkeyu.salt.var.zmq.aesuaesc
C@s�x~tt|jjd��D]`}tjd�|jjjtd|jj|d|j	j|j
j|jj|jjf�qWdS(uY
    Fork off the worker procs
    FloScript:

    do salt raet worker fork at enter
    uworker_threadsg{�G�z�?targsiN(
Rtinttoptstvaluettimetsleeptproc_mgrtadd_processtWorkert
worker_verifytaccess_keystmkeytaes(tselftindex((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pytworker_fork$s#
				RcB@s eZdZd�Zd�ZRS(u6
    Create an ioflo worker in a separate process
    cC@sMtt|�j�||_||_||_||_||_||_dS(N(	tsuperRt__init__R
twindexRRRR(RR
RRRRR((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyRGs					cC@st|jd<dg}tjjjd�td|j�ftjjjd�td|j�fg}|jtjjjd�td|j	�f�|jtjjjd�td|j
�f�|jtjjjd�td|j�f�|jtjjjd	�td|j�f�|j
tjjj|j��|jjd
d�}|rztjj|dj|j	��}nd}tjjjd
dj|j	�dt|jd�ddd|jdd|jdd|dddddd!dd!dd!d|dt|jd�d |�d!S("u[
        Spin up a worker, do this in  multiprocess
        windex is worker index
        u__workerusalt.daemons.flou
.salt.optsRu.salt.var.worker_verifyu.salt.var.fork.worker.windexu.salt.var.zmq.master_keyu.salt.var.zmq.aesu.salt.access_keysuioflo_console_logdiruuworker_{0}.logtnameu	worker{0}tperioduioflo_periodtstampgtrealuioflo_realtimetfilepathuworker_floscriptt	behaviorstusernametpasswordtmodethousestmetastpreloadstverboseu
ioflo_verbosetconsolepathN(tTrueR
tsalttutilststringutilstto_strtdictRtappendRRRRtextendtdaemonstflotexplode_optstgettostpathtjointformattioflotapptruntstarttfloattNoneR	(RR R&tconsole_logdirR(((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyR;Ps@
	$.$

(t__name__t
__module__t__doc__RR;(((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyRCs		tSaltRaetWorkerSetupcB@s�eZdZiejjjd�d6ejjjd�d6ejjjd�d6ejjjd�d6ejjjd	�d
6ejjjd�d6ejjjd
�d
6iejjjd�d6idd6d6d6Zd�Zd�Z	RS(u=
    FloScript:

    do salt raet worker setup at enter

    u
.salt.optsuoptsu.salt.var.fork.worker.windexuwindexu.salt.access_keysuaccess_keysu.salt.loader.remoteu
remote_loaderu.salt.loader.localulocal_loaderu.salt.lane.manor.uinodeustackulocaluipathumasterulanenameuivalc	C@s
dj|jj�}|jjd}|tjkrcdj|�}tj|d�t|��n|tj	tj
jtj	tj
jgkr�d}n,dj|�}tj|d�t|��|jjd}t
d|d	|d
|�|j_tjjj|jj_td|jjddd	|d
|�}|jjj|�tjjj|jj�|j_tjjj|jj|jj�|j_i}id|jjjjdfd6d|jdfd6|d<|jjj ||jjj!|j��|jjj"�dS(u4
        Set up the uxd stack and behaviors
        u	worker{0}u__roleu3Invalid application kind = '{0}' for Master Worker.u
umasteru1Invalid application kind '{0}' for Master Worker.usock_dirRtlanenametsockdirpathtstackumanortdirpathusrcu
worker_requdsturouteN(#R8RRR
tkindst
APPL_KINDStlogterrort
ValueErrortAPPL_KIND_NAMESt	applKindstmastertsyndicRRFRtPackKindtpacktPkRt	addRemoteR*R1t	masterapitRemoteFuncst
remote_loadert
LocalFuncsRtlocal_loaderR>tlocalRttransmittfetchUidByNamet
serviceAll(RRtkindtemsgRDREt
manor_yardtinit((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pytaction�sF			(cC@s|jjj�dS(N(RFtservertclose(R((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyt__del__�s(
R@RARBR*R+R,R-tIoinitsRbRe(((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyRC{s	+tSaltRaetWorkerRoutercB@s�eZdZiejjjd�d6ejjjd�d6ejjjd�d6ejjjd�d6ejjjd	�d
6ejjjd�d6Zd
�ZRS(u5
    FloScript:

    do salt raet worker router

    u.salt.lane.manor.stacku
lane_stacku.salt.road.manor.stacku
road_stacku
.salt.optsuoptsu.salt.var.worker_verifyu
worker_verifyu.salt.loader.remoteu
remote_loaderu.salt.loader.localulocal_loadercC@sY|jjj�xB|jjjrT|jjjj�\}}y2|dd\}}}|dd\}}}Wn(ttfk
r�tjd|�dSXtj	d|�d|kr|dj
d�}	|	s�qn|	jd	�r�qni}
|d
kr:t|j
j|	�r�t|j
j|	�|d�|
d<q�nW|dkr�t|jj|	�r�t|jj|	�|d�|
d<q�n
id
d6}
|	dkr�d|
j
di�kr�d}|jj|
d<n|}|	tkrQid|jjjjdfd6|||fd6|
d<|jjj|
|jjjd��|jjj�qQqqWdS(un
        Read in a command and execute it, send the return back up to the
        main master process
        urouteusrcudstuReceived invalid message: %sNu**** Worker Router rxMsg
msg=%suloaducmdu__u
remote_cmdureturnu	local_cmduInvalid requestuerrorupublishupubupub_retu__worker_verifyumanor(t
lane_stackRR]trxMsgstpopleftRLt
IndexErrorRJRKtdebugR4t
startswiththasattrRWtgetattrRYRtINHIBIT_RETURNR>RZRR[R\(Rtmsgtsenderts_estatets_yardts_sharetd_estatetd_yardtd_sharetcmdtrettr_share((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyRb�sF))
$(	R@RARBR*R+R,R-RfRb(((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyRg�s()RBt
__future__RRRRR5tmultiprocessingtloggingtsalt.ext.six.movesRtsalt.daemons.floR*tsalt.daemons.masterapitraetRtraet.lane.stackingRtraet.lane.yardingRtsalt.utils.kindsR+RHtsalt.utils.stringutilstioflo.base.deedingR9t	getLoggerR@RJRptbasetdeedingtdeedifyR,R-RtProcessRtDeedRCRg(((s;/usr/lib/python2.7/site-packages/salt/daemons/flo/worker.pyt<module>s8%8B

Zerion Mini Shell 1.0