%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/daemons/test/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyo

�
���^c@@s�dZddlmZmZmZddlZddlmZejddfkrbddl	Z
nddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZdd	lmZdd
lmZe�ZddlmZmZddlmZmZdd
l m!Z!ddl"j#j$Z$ddl%Z&d�Z'd�Z(de
j)fd��YZ*d�Z+d�Z,d�Z-e.dko�e/e0kr�e-�ndS(u9
Tests to try out salt key.RaetKey Potentially ephemeral
i(tabsolute_importtprint_functiontunicode_literalsN(tmapii(todict(t
StoreTimer(tstoring(t
getConsole(traetingtnacling(testatingtstacking(tsaltingcC@stjdtjj�dS(Nt	verbosity(tconsoletreinittWordagetconcise(((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytsetUpModule$scC@sdS(N((((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyttearDownModule(st
BasicTestCasecB@seZd�Zd�Zejejjdee	d�Z
ejejjdd�Zeeeed�Z
edd�Zdd	�Zd
d�Zdd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cC@s^tjdd�|_td|jdd�|_tjdddd	d
d�|_d|_	dS(Ntstampgtstoretdurationg�?tprefixusalttsuffixukeeptdiru/tmp(
RtStoreRRttimerttempfiletmkdtempttempDirpathtNonetmaxDiff(tself((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytsetUp.s!cC@s,tjj|j�r(tj|j�ndS(N(tostpathtexistsRtshutiltrmtree(R"((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyttearDown5su/tmpcC@s�tjj|d|d�}tjj|�s=tj|�ntjj|d�}tjj|�sttj|�ntjj|d�}tjj|�s�tj|�ntjj|d�}	tjj|	�s�tj|	�ntjj|d�}
tjj|
�rFtj|
�j}t|�tj|
|tj	Btj	B�ntjj|d|�}tjj|d|�}
t
d	|d
|d|
d|d
|d|ddd|�}|S(u�
        Create associated pki directories for stack and return opts

        os.path.join(cache, 'raet', name, 'remote')
        upkiuraetuacceptedupendingurejectedu	local.keyucacheusocktidtpki_dirtsock_dirtcachedirt	open_modetauto_acceptt	transportt__role(R$R%tjoinR&tmakedirststattst_modetprinttchmodtS_IWUSRtdict(R"troletkindtdirpathtopenModet
autoAcceptt
pkiDirpathtacceptedDirpathtpendingDirpathtrejectedDirpatht
localFilepathtmodetcacheDirpathtsockDirpathtopts((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyt
createOpts9s:
!	ucC@s�t�}dj||�|d<||d<tj||d<tjj|d�|d<tj�}|j	|d<|j
|d<tj�}|j	|d	<|j|d
<|S(u8
        Creates odict and populates with data to setup road stack
        {
            name: stack name local estate name
            dirpath: dirpath for keep files
            sighex: signing key
            verhex: verify key
            prihex: private key
            pubhex: public key
        }
        u{0}_{1}unameuroleukinduraetubasedirpathusighexuverhexuprihexupubhex(
Rtformattkindst
APPL_KINDSR$R%R2R	tSignertkeyhextverhext	Privateertpubhex(R"R:R;tcachedirpathtdatatsignert	privateer((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytcreateRoadDatais	




cC@sitjd|jd|dd|d|d|d|d|d	|d
d|dd
|dd|d�}|S(u2
        Creates stack and local estate from data with
        local estate.uid = uid
        stack.main = main
        stack.mutable = mutable
        stack.auto = auto
        stack.name = data['name']
        local estate.name = data['name']
        local estate.ha = ha

        returns stack

        RtnameunametkeeptuidthatmaintmutableR:uroleR;ukindtsigkeyusighextprikeyuprihex(Rt	RoadStackR(R"RRRWRXRZRYR[tstack((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytcreateRoadStack�s




g�?c
C@stjd�|jsU|jtjd|ddddd|jj��}|j}n|j	d|�|j
||d|�d	S(
uC
        Utility method to do join. Call from test method.
        u!
Join Transaction **************
R_tfuiditsidRYRXRN(Rttersetremotest	addRemoteR
tRemoteEstatetlocalRYRXR2tservice(R"t	initiatort
correspondenttdeidRtremote((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR2�s
	cC@s1tjd�|j�|j||d|�dS(uD
        Utility method to do allow. Call from test method.
        u"
Allow Transaction **************
RN(RRctallowRh(R"totherRZR((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyRm�s

g@cC@sVx|D]}|j|�qWx|D]}|j|�q%W|j||d|�dS(u4
        Utility to send messages both ways
        RN(ttransmitRh(R"RZRntmainstothersRtmsg((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytmessage�s


cC@sq|jjd|�xW|jjsl|j�|j�|jpE|jsLPn|jjd�tjd�qWdS(uJ
        Utility method to service queues. Call from test method.
        Rg�������?N(	Rtrestarttexpiredt
serviceAllttransactionsRtadvanceStampttimetsleep(R"RZRnR((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyRh�s

cC@sR
tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|d	d|d
d|d�}t
jd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|dtddGd|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6dGd6dGd6t&j'd�d 6dGd!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d|d	�}|j-t.j/d*|d+|dd|d,ddHd|d&d.|d/d0|d1��|jdd2dtjtjj,d|d	�}|j-t.j/d*|d+|dd|d,ddId|d&d.|d/d0|d1��|j0�|j%|jj�ii|dd6d4d6d"d56dd-gd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d&d&6d"d76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d86i|dd6d9d6d"d56dd3gd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d&d&6d"d76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d:6�|j1j2�t
jd|d
|dd|d�}t3j4d+|dd;|j5d|dt�}|j|j6j7j8|d(�|j|j6j9j8|d'�|jt:|j;�d4�|jdd<dtjtjj,d|j
dtdt�}|jd|d
d|dd|d	�}t
jd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|ddGdd=tj<fd|�}	tjd>j|	j|	jj��|j|	jjjtjjd<dd?���|j|	jdtj<f�|j |	jj!tj"j#j$�|j%|	jj�i
|dd6dd6dd@gd6dGd6dGd6t&j'd�d 6dGd!6d"d#6dd$6dd@gd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jddAdtjtjj,d|d	�}
|	j-t.j/d*|	d+|
dd|
d,ddJd|
d&d.|
d/d0|
d1��|jddCdtjtjj,d|d	�}|	j-t.j/d*|	d+|dd|d,ddKd|d&d.|d/d0|d1��|	j0�|j%|	jj�ii|
dd6d4d6d"d56ddBgd6dGd6dGd6t&j'd�d 6dGd!6td6|
d,d,6d"d#6dGd66|
d&d&6d"d76t(j)j*j+|
d/�d/6t(j)j*j+|
d1�d16dE6i|dd6d9d6d"d56ddDgd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d&d&6d"d76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16dF6�|j1j2�|	j1j2�dGS(LuZ
        Basic keep setup for stack keep persistence load and dump in normal mode
        u{0}
R:umainR;R<R=R>RQucachediruidu__roleRGtbasedirpathubasedirpatht	stacknameunameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuremote1R_RVukindiltverkeyuverhextpubkeyupubhexuremote2imiufuidujoinedu
acceptanceuremote1_minioniuremote2_minionRuotheruu{0} keep dirpath = {1}
uother_minionikuremote3inuremote4iouremote3_minionuremote4_minionN(u	127.0.0.1il(u	127.0.0.1im(u	127.0.0.1in(u	127.0.0.1io(=RRcRIt	testBasict__doc__RHRJtAPPL_KIND_NAMESt	applKindstmasterRtFalseRURtSaltKeeptassertEqualt
loadLocalDataR tloadAllRemoteDataR`tTrueRVRWR<t
assertTruetendswithR$R%R2RYRt	RAET_PORTtassertIstautotAutoModetnevertvaluetassertDictEqualtsockettgetfqdntsalttutilststringutilstto_strtminionReR
RftdumpRemotestservertcloseRR^RRgtpriverRMRStlenRdtRAET_TEST_PORT(R"RGtmainDatatmainKeepRZtdata1tdata2t	otherDatat	otherKeepRntdata3tdata4((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR�s�		



	














"


				



	.














"
cC@sN
tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|dtddGd|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j|jj tj!j"j#�|j$|jj�i
|dd6dd6ddgd6dGd6dGd6t%j&d�d 6dGd!6d"d#6dd$6ddgd%6|d&d&6t'j(j)j*|d'�d'6t'j(j)j*|d(�d(6�|jdd)dtjtjj+d
|d�}|j,t-j.d*|d+|dd|d,ddHd|d&d.|d/d0|d1��|jdd2dtjtjj+d
|d�}|j,t-j.d*|d+|dd|d,ddId|d&d.|d/d0|d1��|j/�|j$|jj�ii|dd6d4d6d"d56dd-gd6dGd6dGd6t%j&d�d 6dGd!6t0d6|d,d,6d"d#6dGd66|d&d&6dd76t'j(j)j*|d/�d/6t'j(j)j*|d1�d16d86i|dd6d9d6d"d56dd3gd6dGd6dGd6t%j&d�d 6dGd!6t0d6|d,d,6d"d#6dGd66|d&d&6dd76t'j(j)j*|d/�d/6t'j(j)j*|d1�d16d:6�|j1j2�t
jd|d
|dd|d�}t3j4d+|dd;|j5d|dt�}|j|j6j7j8|d(�|j|j6j9j8|d'�|jt:|j;�d4�|jdd<dtjtjj+d|j
dtdt�}|jdd<d|d	d
|d�}t
jd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|ddGdd=tj<fd|�}	tjd>j|	j|	jj��|j|	jjjtjjd<dd?���|j|	jdtj<f�|j|	jj tj!j"j#�|j$|	jj�i
|dd6dd6dd@gd6dGd6dGd6t%j&d�d 6dGd!6d"d#6dd$6dd@gd%6|d&d&6t'j(j)j*|d'�d'6t'j(j)j*|d(�d(6�|jddAdtjtjj+d
|d�}
|	j,t-j.d*|	d+|
dd|
d,ddJd|
d&d.|
d/d0|
d1��|jddCdtjtjj+d
|d�}|	j,t-j.d*|	d+|dd|d,ddKd|d&d.|d/d0|d1��|	j/�|j$|	jj�ii|
dd6d4d6d"d56ddBgd6dGd6dGd6t%j&d�d 6dGd!6t0d6|
d,d,6d"d#6dGd66|
d&d&6dd76t'j(j)j*|
d/�d/6t'j(j)j*|
d1�d16dE6i|dd6d9d6d"d56ddDgd6dGd6dGd6t%j&d�d 6dGd!6t0d6|d,d,6d"d#6dGd66|d&d&6dd76t'j(j)j*|d/�d/6t'j(j)j*|d1�d16dF6�|j1j2�|	j1j2�dGS(LuX
        Basic keep setup for stack keep persistence load and dump in open mode
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuremote1R_RVukindilR}uverhexR~upubhexuremote2imiufuidujoinedu
acceptanceuremote1_minioniuremote2_minionRuotheruu{0} keep dirpath = {1}
uother_minionikuremote3inuremote4iouremote3_minionuremote4_minionN(u	127.0.0.1il(u	127.0.0.1im(u	127.0.0.1in(u	127.0.0.1io(=RRcRIt
testBasicOpenR�RHRJR�R�R�RR�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�talwaysR�R�R�R�R�R�R�R�R�ReR
RfR�R�R�R�RR^RRgR�RMRSR�RdR�(R"RGR�R�RZR�R�R�R�RnR�R�((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�		



	.














"


				



	.














"
cC@sW
tjdj|jj��|jdddtjtjj	d|j
dtdt�}|j
d|dd|d	d
|d�}tjd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|dtddGd|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6dGd6dGd6t&j'd�d 6dGd!6d"d#6dd$6ddgd%6t(j)j*j+|d&�d&6t(j)j*j+|d'�d'6|d(d(6�|j
dd)dtjtjj,d
|d�}|j-t.j/d*|d+|dd|d,ddHd|d(d.|d/d0|d1��|j
dd2dtjtjj,d
|d�}|j-t.j/d*|d+|dd|d,ddId|d(d.|d/d0|d1��|j0�|j%|jj�ii|dd6d4d6d"d56dd-gd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d(d(6dd76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d86i|dd6d9d6d"d56dd3gd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d(d(6dd76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d:6�|j1j2�tjd|d
|dd|d�}t3j4d+|dd;|j5d|dt�}|j|j6j7j8|d'�|j|j6j9j8|d&�|jt:|j;�d4�|jdd<dtjtjj,d|j
dtdt�}|j
dd<dtjtjj,d
|d�}tjd|d
|dd|d�}|j|j�dG�|j|j�i�|jd|ddGdd=tj<fd|�}	tjd>j|	j|	jj��|j|	jjjtjjd<dd?���|j|	jdtj<f�|j |	jj!tj"j#j$�|j%|	jj�i
|dd6dd6dd@gd6dGd6dGd6t&j'd�d 6dGd!6d"d#6dd$6dd@gd%6|d(d(6t(j)j*j+|d&�d&6t(j)j*j+|d'�d'6�|j
ddAdtjtjj,d
|d�}
|	j-t.j/d*|	d+|
dd|
d,ddJd|
d(d.|
d/d0|
d1��|j
ddCdtjtjj,d
|d�}|	j-t.j/d*|	d+|dd|d,ddKd|d(d.|d/d0|d1��|	j0�|j%|	jj�ii|
dd6d4d6d"d56ddBgd6dGd6dGd6t&j'd�d 6dGd!6td6|
d,d,6d"d#6dGd66|
d(d(6dd76t(j)j*j+|
d/�d/6t(j)j*j+|
d1�d16dE6i|dd6d9d6d"d56ddDgd6dGd6dGd6t&j'd�d 6dGd!6td6|d,d,6d"d#6dGd66|d(d(6dd76t(j)j*j+|d/�d/6t(j)j*j+|d1�d16dF6�|j1j2�|	j1j2�dGS(Lu\
        Basic keep setup for stack keep persistence load and dump with auto accept
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahausighexuprihexuroleuremote1R_RVukindilR}uverhexR~upubhexuremote2imiufuidujoinedu
acceptanceuremote1_minioniuremote2_minionRuotheruu{0} keep dirpath = {1}
uother_minionikuremote3inuremote4iouremote3_minionuremote4_minionN(u	127.0.0.1il(u	127.0.0.1im(u	127.0.0.1in(u	127.0.0.1io(=RRcRIt
testBasicAutoR�RHRJR�R�R�RR�R�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�tonceR�R�R�R�R�R�R�R�R�ReR
RfR�R�R�RR^RRgR�RMRSR�RdR�(R"RGR�R�RZR�R�R�R�RnR�R�((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�		



	.














"


				


	.














"
c	C@s�tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d;�|j|j�i�|jd|dtdd;d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6d;d6d;d6t&j'd�d 6d;d!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d
|d�}|j-t.j/d*|d+|dd|d,dd<d|d&d.|d/d0|d1��|jdd)dtjtjj0d
|d�}|j-t.j/d*|d+|dd|d,dd=d|d&d.|d/d0|d1��|j1�|j%|jj�ii|dd6d3d6d"d46dd-gd6d;d6d;d6t&j'd�d 6d;d!6td6|d,d,6d"d#6d;d56|d&d&6d"d66t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d76i|dd6d8d6d"d46dd2gd6d;d6d;d6t&j'd�d 6d;d!6td6|d,d,6d"d#6d;d56|d&d&6d"d66t(j)j*j+|d/�d/6t(j)j*j+|d1�d16d96�|j2j3�t
jd|d
|dd|d�}t4j5d+|dd:|j6d|dt�}|j|j7j|d�|j|j7j8d�|j|j9t�|j|j7j:|d&�|j |jj!tj"j#j$�|j|jdtjf�|j|j7j;j<|d(�|j|j7j=j<|d'�|jt>|j?�d3�x�||gD]y}|j@|d}|j|j|d�|j|j:|d&�|j|jAj<|d1�|j|jBj<|d/�q!W|j2j3�d;S(>u\
        Basic keep setup for stack keep persistence load and dump with shared role
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuprimaryR_RVukindilR}uverhexR~upubheximiufuidujoinedu
acceptanceuprimary_minioniuprimary_callerRN(u	127.0.0.1il(u	127.0.0.1im(CRRcRIt
testBasicRoleR�RHRJR�R�R�RR�RURR�R�R�R R�R`R�RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�ReR
RftcallerR�R�R�RR^RRgRXRZR:R�RMRSR�RdtnameRemotestpubbertverfer(	R"RGR�R�RZR�R�RRRl((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�		



	. 














"


		c	C@s�tjdj|jj��|jddd|jdtdt�}|jd|dd|d	d
|d�}t	j
d|d
|dd|d�}|j|j�d<�|j|j�i�|jd|dtdd<d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j|jjtjjj�|j |jj�i
|dd6dd6ddgd6d<d6d<d6t!j"d�d 6d<d!6d"d#6dd$6ddgd%6|d&d&6t#j$j%j&|d'�d'6t#j$j%j&|d(�d(6�|jdd)dt'j(t'j)j*d
|d�}|j+t,j-d*|d+|dd|d,dd=d|d&d.|d/d0|d1��|jdd)dd2d
|d�}|j+t,j-d*|d+|dd|d,dd>d|d&d.|d/d0|d1��|j.�|j |jj�ii|dd6d4d6d"d56dd-gd6d<d6d<d6t!j"d�d 6d<d!6t/d6|d,d,6d"d#6d<d66|d&d&6dd76t#j$j%j&|d/�d/6t#j$j%j&|d1�d16d86i|dd6d9d6d"d56dd3gd6d<d6d<d6t!j"d�d 6d<d!6t/d6|d,d,6d"d#6d<d66|d&d&6dd76t#j$j%j&|d/�d/6t#j$j%j&|d1�d16d:6�|j0j1�t	j
d|d
|dd|d�}t2j3d+|dd;|j4d|dt�}|j|j5j|d�|j|j5j6d�|j|j7t�|j|j5j8|d&�|j|jjtjjj�|j|jdtjf�|j|j5j9j:|d(�|j|j5j;j:|d'�|jt<|j=�d4�x�||gD]y}|j>|d}|j|j|d�|j|j8|d&�|j|j?j:|d1�|j|j@j:|d/�qW|j0j1�d<S(?u\
        Basic keep setup for stack keep persistence load and dump with shared role
        u{0}
R:umainR<R=R>uidR;u__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuprimaryR_RVukindilR}uverhexR~upubhexusyndicimiufuidujoinedu
acceptanceuprimary_minioniuprimary_syndicRN(u	127.0.0.1il(u	127.0.0.1im(ARRcRIttestBasicRoleOpenR�RHRR�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�RJR�R�R�ReR
RfR�R�R�R�RR^RRgRXRZR:R�RMRSR�RdR�R�R�(	R"RGR�R�RZR�R�RRRl((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR�1s�		



	.














"


		c	C@s�tjdj|jj��d<|_|jddd|jdt	dt
�}|jd|dd|d	d
|d�}tj
d|d
|dd|d�}|j|j�d<�|j|j�i�|jd|dt
dd<d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j|jjtjj j!�|j"|jj�i
|dd6dd6ddgd6d<d6d<d6t#j$d�d 6d<d!6d"d#6dd$6ddgd%6|d&d&6t%j&j'j(|d'�d'6t%j&j'j(|d(�d(6�|jdd)dt)j*t)j+j,d
|d�}|j-t.j/d*|d+|dd|d,dd=d|d&d.|d/d0|d1��|jdd)dd2d
|d�}|j-t.j/d*|d+|dd|d,dd>d|d&d.|d/d0|d1��|j0�|j"|jj�ii|dd6d4d6d"d56dd-gd6d<d6d<d6t#j$d�d 6d<d!6t	d6|d,d,6d"d#6d<d66|d&d&6dd76t%j&j'j(|d/�d/6t%j&j'j(|d1�d16d86i|dd6d9d6d"d56dd3gd6d<d6d<d6t#j$d�d 6d<d!6t	d6|d,d,6d"d#6d<d66|d&d&6dd76t%j&j'j(|d/�d/6t%j&j'j(|d1�d16d:6�|j1j2�tj
d|d
|dd|d�}t3j4d+|dd;|j5d|dt
�}|j|j6j|d�|j|j6j7d�|j|j8t
�|j|j6j9|d&�|j|jjtjj j!�|j|jdtjf�|j|j6j:j;|d(�|j|j6j<j;|d'�|jt=|j>�d4�x�||gD]�}|j?|d}|j|j|d�|j|j9|d&�|j|j@d�|j|jAj;|d1�|j|jBj;|d/�q
W|j1j2�d<S(?u\
        Basic keep setup for stack keep persistence load and dump with shared role
        u{0}
R:umainR<R=R>uidR;u__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuprimaryR_RVukindilR}uverhexR~upubhexusyndicimiufuidujoinedu
acceptanceuprimary_minioniuprimary_syndicRN(u	127.0.0.1il(u	127.0.0.1im(CRRcRIttestBasicRoleAutoR�R R!RHRR�R�RURR�R�R�R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�RJR�R�R�ReR
RfR�R�R�RR^RRgRXRZR:R�RMRSR�RdR�t
acceptanceR�R�(	R"RGR�R�RZR�R�RRRl((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�			



	.














"


		cC@s�tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d3�|j|j�i�|jd|dtdd3d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6d3d6d3d6t&j'd�d 6d3d!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d3�|j|j�i�|jd|dd3dd*tj-fd|�}tjd+j|j|jj��|j|jjjtjjd)dd,���|j|jdtj-f�|j |jj!tj"j.j$�|j%|jj�i
|dd6dd6dd-gd6d3d6d3d6t&j'd�d 6d3d!6d"d#6dd$6dd-gd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|j||�|jt/|j0�d�|jj1|j2|j3j�|j4||d.d/�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|j:||�|jt/|j0�d"�t5t6|j7j8���}|j|j;�|jt/|j0�d"�t5t6|j7j8���}|j|j;�xi|j7j8�D]X}tjj|jj<d0j|jj=|j|jj>��}	|jtjj?|	��q�W|jj@jAd1|j3jB�|j7d2}tjj|jj<d0j|jj=|j|jj>��}	|jCtjj?|	��x+||gD]}
|
jDjE�|
jF�q�Wd3S(4u=
        Bootstap to allowed with never mode on main
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuotheruu{0} keep dirpath = {1}
uother_minionikRg�?u{0}.{1}.{2}tmatchiN(GRRcRIttestBootstrapNeverR�RHRJR�R�R�RR�RURR�R�R�R R�R`R�RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RwtacceptRemoteR�RgRhtnexttiterRdtvaluestjoinedRmtallowedt
remotedirpathRtextR&tsaltRaetKeyt
delete_keyR:tassertFalseR�R�t
clearAllKeeps(R"RGR�R�RZR�R�RnRlR%R_((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR�Xs�		



	.

		



	.

'
'
cC@s�tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d1�|j|j�i�|jd|dtdd1d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j|jj tj!j"j#�|j$|jj�i
|dd6dd6ddgd6d1d6d1d6t%j&d�d 6d1d!6d"d#6dd$6ddgd%6|d&d&6t'j(j)j*|d'�d'6t'j(j)j*|d(�d(6�|jdd)dtjtjj+d|j
dt,dt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d1�|j|j�i�|jd|dd1dd*tj-fd|�}tjd+j|j|jj��|j|jjjtjjd)dd,���|j|jdtj-f�|j|jj tj!j.j#�|j$|jj�i
|dd6dd6dd-gd6d1d6d1d6t%j&d�d 6d1d!6d"d#6dd$6dd-gd%6|d&d&6t'j(j)j*|d'�d'6t'j(j)j*|d(�d(6�|j||�|jt/|j0�d"�t1t2|j3j4���}|j|j5�|jt/|j0�d"�t1t2|j3j4���}|j|j5�|j6||�|jt/|j0�d"�t1t2|j3j4���}|j|j7�|jt/|j0�d"�t1t2|j3j4���}|j|j7�xi|j3j4�D]X}tjj|jj8d.j|jj9|j|jj:��}	|jtjj;|	��q�W|jj<j=d/|j>j?�|j3d0}tjj|jj8d.j|jj9|j|jj:��}	|j@tjj;|	��x+||gD]}
|
jAjB�|
jC�q�Wd1S(2u<
        Bootstap to allowed with open mode on main
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuotheruu{0} keep dirpath = {1}
uother_minioniku{0}.{1}.{2}R�iN(DRRcRIttestBootstrapOpenR�RHRJR�R�R�RR�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RwR�R�RdR�R�RmR�R�RR�R&R�R�RgR:R�R�R�R�(R"RGR�R�RZR�R�RnRlR%R_((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�		



	.

		



	.

'
'
cC@s�tjdj|jj��|jdddtjtjj	d|j
dtdt�}|j
d|dd|d	d
|d�}tjd|d
|dd|d�}|j|j�d1�|j|j�i�|jd|dtdd1d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6d1d6d1d6t&j'd�d 6d1d!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d|j
dtdt�}|j
d|dd|d	d
|d�}tjd|d
|dd|d�}|j|j�d1�|j|j�i�|jd|dd1dd*tj-fd|�}tjd+j|j|jj��|j|jjjtjjd)dd,���|j|jdtj-f�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6dd-gd6d1d6d1d6t&j'd�d 6d1d!6d"d#6dd$6dd-gd%6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6|d&d&6�|j||�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|j5||�|jt.|j/�d"�t0t1|j2j3���}|j|j6�|jt.|j/�d"�t0t1|j2j3���}|j|j6�xi|j2j3�D]X}tjj|jj7d.j|jj8|j|jj9��}	|jtjj:|	��q�W|jj;j<d/|j=j>�|j2d0}tjj|jj7d.j|jj8|j|jj9��}	|j?tjj:|	��x+||gD]}
|
j@jA�|
jB�q�Wd1S(2u>
        Bootstap to allowed with auto accept on main
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuotheruu{0} keep dirpath = {1}
uother_minioniku{0}.{1}.{2}R�iN(CRRcRIttestBootstrapAutoR�RHRJR�R�R�RR�R�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RwR�R�RdR�R�RmR�R�RR�R&R�R�RgR:R�R�R�R�(R"RGR�R�RZR�R�RnRlR%R_((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR�Ns�		



	.

		



	.

'
'
cC@s&tjdj|jj��|jdddtjtjj	d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d7�|j|j�i�|jd|dtdd7d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6d7d6d7d6t&j'd�d 6d7d!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d|j
dtdt�}|jd|dd|d	d
|d�}t
jd|d
|dd|d�}|j|j�d7�|j|j�i�|jd|dd7dd*tj-fd|�}tjd+j|j|jj��|j|jjjtjjd)dd,���|j|jdtj-f�|j |jj!tj"j.j$�|j%|jj�i
|dd6dd6dd-gd6d7d6d7d6t&j'd�d 6d7d!6d"d#6dd$6dd-gd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|j||�|jt/|j0�d�|jj1|j2|j3j�|j4||d.d/�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|j:||�|jt/|j0�d"�t5t6|j7j8���}|j|j;�|jt/|j0�d"�t5t6|j7j8���}|j|j;�xi|j7j8�D]X}tjj|jj<d0j|jj=|j|jj>��}	|jtjj?|	��q�W|jdd)dtjtjj@d|j
dtdt�}|jd|dd|d	d
|d�}
t
jd|d
|
dd|
d�}|j|j�d7�|j|j�i�|jd|
dd7dd8d|�}tjd+j|j|jj��|j|jjjtjjd)dd2���|j|jd9�|j |jj!tj"j.j$�|j%|jj�i
|
dd6dd6dd1gd6d7d6d7d6t&j'd�d 6d7d!6d"d#6dd$6dd1gd%6t(j)j*j+|
d'�d'6t(j)j*j+|
d(�d(6|
d&d&6�|j||�|jt/|j0�d"�|jt/|j7�d"�|jt/|j7�d�|jAjB�|jjC�tjj|jj<d0j|jj=|j3j|jj>��}	|jDtjj?|	��|jjE�|jDtjj?|d3��|jdd)dtjtjj@d|j
dtdt�}|jd|dd|d	d
|d�}
|d'|
d'<|d(|
d(<t
jd|d
|
dd|
d�}|j|j�d7�|j|j�i�|jd|
dd7dd:d|�}tjd+j|j|jj��|j|jjjtjjd)dd2���|j|jd;�|j |jj!tj"j.j$�|j%|jj�i
|
dd6dd6dd1gd6d7d6d7d6t&j'd�d 6d7d!6d"d#6dd$6dd1gd%6|
d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|j||�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|jt/|j0�d"�t5t6|j7j8���}|j|j9�|j:||�|jt/|j0�d"�t5t6|j7j8���}|j|j;�|jt/|j0�d"�t5t6|j7j8���}|j|j;�xi|j7j8�D]X}tjj|jj<d0j|jj=|j|jj>��}	|jtjj?|	��q�W|jjFjGd4|j3jH�|j7d5}tjj|jj<d0j|jj=|j|jj>��}	|jDtjj?|	��|j7d6}tjj|jj<d0j|jj=|j|jj>��}	|jDtjj?|	��x.|||gD]}
|
jAjB�|
jI�qWd7S(<u[
        Bootstap to allowed with multiple remotes using same role with never main
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuprimaryuu{0} keep dirpath = {1}
uprimary_minionikRg�?u{0}.{1}.{2}iluprimary_callerupki_dirR�iiN(uil(u0.0.0.0il(uil(u0.0.0.0il(JRRcRIttestBootstrapRoleNeverR�RHRJR�R�R�RR�RURR�R�R�R R�R`R�RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RwR�R�RgRhR�R�RdR�R�RmR�R�RR�R&R�R�R�tclearAllDirR�tclearRoleDirR�R�R:R�(R"RGR�R�RZt
other1Datat
other1Keeptother1RlR%t
other2Datat
other2Keeptother2R_((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��s�		



	.

		



	.

'		



	.



*
		



	.

'
'
'
cC@s�
tjdj|jj��|jdddtjtjj	d|j
dtdt�}|j
d|dd|d	d
|d�}tjd|d
|dd|d�}|j|j�d4�|j|j�i�|jd|dtdd4d|�}tjdj|j|jj��|j|jjjtjjddd���|j|jdtjf�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6ddgd6d4d6d4d6t&j'd�d 6d4d!6d"d#6dd$6ddgd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|jdd)dtjtjj,d|j
dtdt�}|j
d|dd|d	d
|d�}tjd|d
|dd|d�}|j|j�d4�|j|j�i�|jd|dd4dd*tj-fd|�}tjd+j|j|jj��|j|jjjtjjd)dd,���|j|jdtj-f�|j |jj!tj"j#j$�|j%|jj�i
|dd6dd6dd-gd6d4d6d4d6t&j'd�d 6d4d!6d"d#6dd$6dd-gd%6|d&d&6t(j)j*j+|d'�d'6t(j)j*j+|d(�d(6�|j||�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|j5||�|jt.|j/�d"�t0t1|j2j3���}|j|j6�|jt.|j/�d"�t0t1|j2j3���}|j|j6�xi|j2j3�D]X}tjj|jj7d.j|jj8|j|jj9��}	|jtjj:|	��q�W|jdd)dtjtjj;d|j
dtdt�}|j
d|dd|d	d
|d�}
|d'|
d'<|d(|
d(<tjd|d
|
dd|
d�}|j|j�d4�|j|j�i�|jd|
dd4dd5d|�}tjd+j|j|jj��|j|jjjtjjd)dd0���|j|jd6�|j |jj!tj"j#j$�|j%|jj�i
|
dd6dd6dd/gd6d4d6d4d6t&j'd�d 6d4d!6d"d#6dd$6dd/gd%6|
d&d&6t(j)j*j+|
d'�d'6t(j)j*j+|
d(�d(6�|j||�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|jt.|j/�d"�t0t1|j2j3���}|j|j4�|j5||�|jt.|j/�d"�t0t1|j2j3���}|j|j6�|jt.|j/�d"�t0t1|j2j3���}|j|j6�xi|j2j3�D]X}tjj|jj7d.j|jj8|j|jj9��}	|jtjj:|	��qh	W|jj<j=d1|j>j?�|j2d2}tjj|jj7d.j|jj8|j|jj9��}	|j@tjj:|	��|j2d3}tjj|jj7d.j|jj8|j|jj9��}	|j@tjj:|	��x.|||gD]}
|
jAjB�|
jC�q�
Wd4S(7uZ
        Bootstap to allowed with multiple remotes using same role with auto main
        u{0}
R:umainR;R<R=R>uidu__roleRQucachedirRGR{ubasedirpathR|unameRRRZRYRWu{0}
keep dirpath = {1}
uraetumain_masteru0.0.0.0iuuidu	127.0.0.1ijuhauihaunattedufqdnudynediusidupuiduahauroleusighexuprihexuprimaryuu{0} keep dirpath = {1}
uprimary_minioniku{0}.{1}.{2}iluprimary_callerR�iiN(uil(u0.0.0.0il(DRRcRIttestBootstrapRoleAutoR�RHRJR�R�R�RR�R�RURR�R�R�R R�R`RVRWR<R�R�R$R%R2RYRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RwR�R�RdR�R�RmR�R�RR�R&R�R�R�RgR:R�R�R�R�(R"RGR�R�RZR�R�R�RlR%R�R�R�R_((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR��sB		



	.

		



	.

'		



	.

'
'
'
(t__name__t
__module__R#R)RJR�R�R�R�R�RHRUR R`R2RmRsRhRR�R�R�R�R�R�R�R�R�R�(((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyR,s.		+
	�	�	�	�	�	�	}	y	y	�cC@s;t|�}tj|g�}tjdd�j|�dS(u
    Unittest Runner
    R
iN(Rtunittestt	TestSuitetTextTestRunnertrun(ttesttsuite((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytrunOne�scC@sug}ddddddddd	d
dg}|jttt|���tj|�}tjdd
�j|�dS(u
    Unittest runner
    u	testBasicu
testBasicOpenu
testBasicAutou
testBasicRoleutestBasicRoleOpenutestBasicRoleAutoutestBootstrapNeverutestBootstrapOpenutestBootstrapAutoutestBootstrapRoleNeverutestBootstrapRoleAutoR
iN(textendtlistRRR�R�R�R�(tteststnamesR�((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytrunSome�s	cC@sEtj�}|jtj�jt��tjdd�j|�dS(u
    Unittest runner
    R
iN(R�R�taddTestt
TestLoadertloadTestsFromTestCaseRR�R�(R�((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pytrunAll�su__main__(1R�t
__future__RRRtsystsalt.ext.six.movesRtversion_infot	unittest2R�R$R'R�R4RRytioflo.aid.odictingRtioflo.aid.timingRt
ioflo.baseRtioflo.base.consolingRRtraetRR	t	raet.roadR
Rtsalt.daemonsRtsalt.utils.kindsR�RJtsalt.utils.stringutilsR�RRtTestCaseRR�R�R�R�t__package__R (((sC/usr/lib/python2.7/site-packages/salt/daemons/test/test_saltkeep.pyt<module>sL			��������e				


Zerion Mini Shell 1.0