%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/zero.pyo

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
Zddlm
Z
ddlZddlZddlZddlZddlZeje�Zdejjjfd��YZejjjejjjd�diejjjd	�d
6ejjjd�d6ejjjd
�d6ejjjd�d6�d��Zdej fd��YZ!dejjjfd��YZ"dejjjfd��YZ#dejjjfd��YZ$dS(u3
IoFlo behaviors for running a ZeroMQ based master
i(tabsolute_importtprint_functiontunicode_literalsN(tzmqtSaltZmqSetupcB@s_eZdZiejjjd�d6ejjjd�d6ejjjd�d6Zd�ZRS(u�
    do salt zmq setup at enter

    Setup shares
    .salt.var.zmq.master_key
    .salt.var.zmq.aet share

    This behavior must be run before any other zmq related
    u
.salt.optsuoptsu.salt.var.zmq.master_keyumkeyu.salt.var.zmq.aesuaescC@s8tjj|jj�|j_|jjd|j_dS(um
        Assign master key to .salt.var.zmq.master_key
        Copy opts['aes'] to .salt.var.zmq.aes
        uaesN(tsalttcryptt
MasterKeystoptstvaluetmkeytaes(tself((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pytaction*s(	t__name__t
__module__t__doc__Rtutilststringutilstto_strtIoinitsR
(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyRs
	uSaltZmqRetForktioinitsu
.salt.optsuoptsu.salt.usr.proc_mgruproc_mgru.salt.var.zmq.master_keyumkeyu.salt.var.zmq.aesuaescC@s8|jjjtd|jj|jj|jjf�dS(u;
    Create the forked process for the ZeroMQ Ret Port
    targsN(tproc_mgrR	tadd_processtZmqRetRR
R(R((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pytzmq_ret_fork3s
		RcB@s eZdZd�Zd�ZRS(u;
    Create the forked process for the ZeroMQ Ret Port
    cC@s2||_||_||_tt|�j�dS(N(RR
RtsuperRt__init__(RRR
R((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyRJs			cC@s�tj|jd�|_dj|j�|_tjd|j�|jjtj	�|_
|jdtkr�ttd�r�|j
j
tjd�ny!|j
j
tj|jd�WnKtk
r|j
j
tj|jd�|j
j
tj|jd�nX|j
j
tj|jd�|jjtj�|_d	jtjj|jd
d��|_tjd�|j
j|j�|jj|j�xatr�y tjtj|j
|j�Wq�tjk
r�}|jtjkr�q�n|�q�Xq�Wd
S(u,
        Start the ret port binding
        uworker_threadsutcp://{interface}:{ret_port}uZMQ Ret port binding to %suipv6uIPV4ONLYiurep_hwmuzmq_backlogu	ipc://{0}usock_diruworkers.ipcu*Setting up the master communication serverN( RtContextRtcontexttformatturitlogtinfotsockettROUTERtclientstTruethasattrt
setsockopttIPV4ONLYtHWMtAttributeErrortSNDHWMtRCVHWMtBACKLOGtDEALERtworkerstostpathtjointw_uritbindtdevicetQUEUEtZMQErrorterrnotEINTR(Rtexc((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pytrunPs2"!
!"
	 (RRRRR<(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyRFs	tSaltZmqCrypticleSetupcB@s_eZdZiejjjd�d6ejjjd�d6ejjjd�d6Zd�ZRS(uk
    Setup the crypticle for the salt zmq publisher behavior

    do salt zmq crypticle setup at enter
    u
.salt.optsuoptsu.salt.var.zmq.aesuaesu.salt.var.zmq.crypticleu	crypticlecC@s4tjj|jj|jjjd��|j_dS(un
        Initializes zmq
        Put here so only runs initialization if we want multi-headed master

        uaesN(RRt	CrypticleRR	tgett	crypticle(R((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyR
~s		(	RRRRRRRRR
(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyR=ts
tSaltZmqPublishercB@s�eZdZiejjjd�d6ejjjd�d6ejjjd�d6ejjjd�d6ejjjd	�d
6Zd�Zd�Z	RS(
u�
    The zeromq publisher

    do salt zmq publisher

    Must run the deed

    do salt zmq publisher setup

    before this deed
    u
.salt.optsuoptsu.salt.var.publishupublishu.salt.etc.zmq_behavioruzmq_behavioru.salt.var.zmq.aesuaesu.salt.var.zmq.crypticleu	crypticlecC@s2ts
dSt|_tjj|jj�|_dS(u*
        Set up tracking value(s)
        N(	RtFalsetcreatedRtpayloadtSerialRR	tserial(R((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyt_prepare�s	cC@s/|js
dS|js}tjd�|_|jjtj�|_y,|jjtj	|j
jjdd��Wnat
k
r�|jjtj|j
jjdd��|jjtj|j
jjdd��nX|j
jdtkrttd�r|jjtjd�n|jjtj|j
jdd��d	j|j
j�|_tjd
|j�|jj|j�t|_nyyxr|jjD]d}idd6}|jjj|d
d�|d<|j
jdrtjj|j
jdd�}tjd�t j!j"||d�|d<n|j#j|�}|j
jdr�|d
dddkr�x�|d
ddD]D}t$j%|�j&�}|jj'|dtj(�|jj'|�qjWq�|jj'ddtj(�|jj'|�q�|jj'|�q�WWn2tj)k
r*}|j*t*j+kr!dS|�nXdS(ul
        Create the publish port if it is not available and then publish the
        messages on it
        Niupub_hwmi�uipv6uIPV4ONLYiuzmq_backlogu tcp://{interface}:{publish_port}u(Starting the Salt ZeroMQ Publisher on %suaesuencureturnupubuloadusign_pub_messagesupki_diru
master.pemuSigning data packet for publishusigu
zmq_filteringutgt_typeulistutgttflagsu	broadcast(,tzmq_behaviorRCRRRR#tPUBtpub_sockR(R*RR	R?R+R,R-R&R'R)R.Rtpub_uriR!R"R5tpublishR@tdumpsR1R2R3tdebugRRtsign_messageRFthashlibtsha1t	hexdigesttsendtSNDMORER8R9R:(RtpackageRDtmaster_pem_pathtsend_payloadttopicthtopicR;((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyR
�sN		,
(,%%
!
 (
RRRRRRRRRGR
(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyRA�s		t
SaltZmqWorkercB@sheZdZiejjjd�d6ejjjd�d6ejjjd�d6Zd�Zd�Z	RS(	u-
    The zeromq behavior for the workers
    u
.salt.optsuoptsu.salt.access_keysukeyu.salt.var.zmq.aesuaescC@s
t|_dS(u@
        Create the initial seting value for the worker
        N(RBRC(R((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyRG�scC@s�|jsttjj|jj|jj�}tjj|jj|j	j�|_
|j
j�t|_t
jd�n|j
j�dS(u�
        Create the master MWorker if it is not present, then iterate over the
        connection with the ioflo sequence
        uStarted ZMQ workerN(RCRRR>RR	Rtmastert
FloMWorkertkeytworkertsetupR&R!R"thandle_request(RR@((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyR
�s	!		
	(
RRRRRRRRRGR
(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyR[�s	(%Rt
__future__RRRR1tloggingRQtmultiprocessingR9tioflo.base.deedingtioflotsalt.utils.zeromqRtsalt.masterRt
salt.crypttsalt.daemons.masterapitsalt.payloadtsalt.utils.stringutilst	getLoggerRR!tbasetdeedingtDeedRtdeedifyRRRRtProcessRR=RAR[(((s9/usr/lib/python2.7/site-packages/salt/daemons/flo/zero.pyt<module>s4%
.T

Zerion Mini Shell 1.0