Current File : //lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pyo
�
��Xc@s�ddlZddlZddlZddlZddlZddlZddlZdd�Z	de
d�Zde
d�Zdd�Z
de
d�Zde
d�ZdS(i����Nc	CsLtjdtd|fdi|d6�}|j�tjjj|j�dS(Nttargettargstkwargst
out_mpconn(	tmultiprocessingtProcesst_delete_part_fileststartt	euca2oolstbundletutiltwaitpid_in_threadtpid(t	in_mpconnRtdel_p((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pytcreate_bundle_part_deleter$s
	
c	Cs�tjdt�\}}tjdtd||||fdi|d6|d6�}|j�|j�|j�tjj	j
|j�|S(NtduplexRRRtpart_write_semtdebug(RtPipetFalseRt_write_partsRtcloseRR	R
RR(tinfiletpart_prefixt	part_sizeRRtpartinfo_result_rtpartinfo_result_wtwriter_p((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pytcreate_bundle_part_writer,s	


c	Csxtjdt�\}}tjdtd||fdi|d6|d6�}|j�|j�tjj	j
|j�|S(NRRRRRR(RRRRt_aggregate_mpconn_itemsRRRR	R
RR(R
RRtresult_mpconn_rtresult_mpconn_wtagg_p((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pytcreate_mpconn_aggregator;s	

cCs�tjjjd||f�zbyIxBtrf|j�}tj|j�|dk	r%|j
|�q%q%WWntk
r|dSXWd|j�|dk	r�|j�nXdS(Nt
except_fds(
RR	R
t
close_all_fdstTruetrecvtostunlinktfilenametNonetsendtEOFErrorR(R
Rtpart((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pyRFs	
	
cCstjjjd|||f�g}z�yFx?trl|j�}|j|�|dk	r.|j|�q.q.WWn`t	k
r�y|j|�Wq�t
k
r�|s�dS�q�Xnt
k
r�|s�dS�nXWd|j�|j�|dk	r|j�nXdS(NR#(RR	R
R$R%R&tappendR*R+R,tIOErrorR(R
t
result_mpconnRRtresultstnext_result((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pyRVs2	






cCs�||g}|dk	rwtjdkrwy|jt|jj��Wqwtk
r]d}qwtk
rsd}qwXnt	j
jjd|�xbt
j�D]T}|dk	r�|j�ndj||�}tj�}	t|d���}
d}|}x�|dkr�y|jt|t	j��}
Wn(tk
rM|sG|j�dS�nX|
r�|
j|
�|	j|
�|t|
�8}|t|
�7}q�Pq�Wt	j
j||	j�d|�}|j|�WdQX||kr�|j�|j�dSq�WdS(NtdarwinR#s{0}.part.{1:02}twitSHA1(R*tsystplatformR.tintt_semlockthandletAttributeErrort
ValueErrorRR	R
R$t	itertoolstcounttacquiretformatthashlibtsha1topentreadtmintBUFSIZERtwritetupdatetlent
BundlePartt	hexdigestR+(RRRtpartinfo_mpconnRRR#tpart_not
part_fnametpart_digestR-t
bytes_writtentbytes_to_writetchunktpartinfo((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pyRusL	
	






	

(RAR=RR'R6teuca2ools.bundle.pipesRteuca2ools.bundle.utilR*RRRR"RRR(((sC/usr/lib/python2.7/site-packages/euca2ools/bundle/pipes/fittings.pyt<module>s