MINI MINI MANI MO

Path : /lib/python2.7/site-packages/yum/
File Upload :
Current File : //lib/python2.7/site-packages/yum/drpm.pyc

ó
µ¢ß[c@sëddlmZddlmZddlmZmZddlmZddlm	Z	m
Z
mZddlm
Z
mZee
dƒZddlmZdd	lZdd	lZd
Zddd„ƒYZd
d„Zddd„ƒYZd	S(iÿÿÿÿ(t	TS_UPDATE(t	RepoError(t
exception2msgt_(t	MiscError(tchecksumtrepo_gen_decompresstunlink_f(tgrabbertprogresst
parallel_wait(t	iterparseNs/usr/bin/applydeltarpmtDeltaPackagecBsPeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	RS(cCs±||_|j|_|j|_|j|_|j\|_|_|_|_|_d|_
||_||_t
jj|jƒdt
jj|ƒ|_||_||_dS(Nt/(trpmtrepotbasepathtpkgtuptnametarchtepochtversiontreleasetNonet_hashtsizetrelativepathtostpathtdirnamet	localpathtbasenametcsumtoldrpm(tselfRRtremoteR R!((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__init__!s	'			,	cCsd|jS(NsDelta RPM of %s(R(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__str__2scCsw|dkrdSt|j|jƒpvt|j|jƒpvt|j|jƒpvt|j|jƒpvt|j|jƒS(Ni(RtcmpRRRRR(R"tother((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__cmp__5scCsY|jdkrRd|jj|j|j|j|j|jf}t	|ƒ|_n|jS(Ns%s - %s:%s-%s-%s.%s(
RRRtidRRRRRthash(R"tmystr((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__hash__@s
cCs|jS(N(R(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pytlocalPkgGscCsdS(N(R(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt
getDiscNumJscCsytjj|jƒ}Wntk
r-tSX||jkrAtS|j\}}yt||jƒ}Wnt	k
rztSX||kr‹tSt
S(N(RRtgetsizeRtOSErrortFalseRR RRtTrue(R"tfsizetctypeR tfsum((s,/usr/lib/python2.7/site-packages/yum/drpm.pytverifyLocalPkgMs

cCs|jS(N(R (R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pytreturnIdSum\s(
t__name__t
__module__R$R%R(R,R-R.R6R7(((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR s							icCs`ttdƒs|Stjjdƒs)|Stjdƒ}yt|ƒdkrQ|SWnnX|S(NtsysconftSC_NPROCESSORS_ONLNi(thasattrRt
sysconf_namesthas_keyR:tint(tunknowntncpus((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt_num_cpus_online_st	DeltaInfocBsPeZd„Zdd„Zed„Zd„Zd„Zd„Z	e
d„ZRS(c+sŸ|jˆ_|ˆ_iˆ_gˆ_dˆ_|jjˆ_ˆjdkrjt	ƒ}ˆj|9_nˆjswdSi}i}i}xÁt
|ƒD]³\}}	|	jj}
|
dkr|	jj
}|jj}
t|ƒdkr|djdƒrd}
qn|
dkrq–n|	jtkr'nã|	j|jjkr?nË|j|	jƒ}|dkrìi}||	j<x{tj|	jjƒD]a}
tjd|
ƒ}|r„|jƒ\}}}}|j||ftƒƒj||fƒq„q„Wn|	j|	jf|kr
q–n||j|	jiƒ|	j<|j|	jdƒ|	j ||	j<q–W|r†tj!t"tj#ƒr†ˆjj$t%dƒt"ƒdSi‰xˆ|D]€}xKd D]'}y|j&j'|ƒ}PWq q Xq Wˆjj$t%dƒ|ƒq“|j(d	tj)j*|j+dƒ}|j,}
t-|j ƒ|
d
}|
r•tj)j.|ƒr•|||kr•t%dƒ}ˆjj$||tj/|ƒtj/||ƒƒq“n||‡‡fd†}i}t0rÙ|j1rÙ||d
<t2|d<ny|j3||ˆ|<Wq“t4k
r}||ƒq“Xq“Wt0r*t5j6ƒnxnˆj7ƒD]`\}}||}t8|dd|j9ƒ}x/t:|ƒD]!\}}|j;dkr“qrn|jdƒ}|jdƒ} || |jdƒ|jdƒ|jdƒf}!|j|!ƒ}|dk	r‰||}	|j}
|
dkr*|jj}
n|	j |
d
}"|j|iƒj|| fiƒ}#x'|j<dƒD]}t-|j=dƒj>ƒ}$|$|"krŸqon|jdƒ}%|jdƒ}&|jdƒ}'|&|'f|#krýd|j||&|'| f}(n*|j?j@||%|&|'| ƒs!qond}(|$}"|j=dƒj>})|j=dƒ}*|*jdƒ|*j>f}*tA|	|$|)|*|(ƒ||<qoWn|jBƒqrWq7WdS(!Niisfile:s^(.+)-(.+)-(.+)\.(.+)\.rpm$s-Delta RPMs disabled because %s not installed.tprestodeltat	deltainfos#No Presto metadata available for %sR
gY@s:Not downloading deltainfo for %s, MD is %s and rpms are %scsTˆj|dƒt|dƒr+|j}nˆjjtdƒ||t|ƒƒdS(Nt	exceptions+Failed to download %s for repository %s: %s(tpopRR<RFtverbose_loggertwarnRR(teRR(tmdpathR"(s,/usr/lib/python2.7/site-packages/yum/drpm.pytfailfunc´s
RLtasyncsprestodelta.xmltcachedt
newpackageRRRRRtdeltaRtoldepocht
oldversiont
oldreleases%s/%s-%s-%s.%s.rpmtfilenameRttype(RDRE(CRHtadderrortjobst_future_jobsRR	tconftdeltarpmtlimitRBt	enumerateRtdeltarpm_percentageturlstlent
startswithtstateRRtinstallonlypkgstgetRtlistdirtpkgdirtretmatchtgroupst
setdefaulttsettaddRRRtaccesst
APPLYDELTAtX_OKtinfoRtrepoXMLtgetDatatcachedirRRtlocationtdeltarpm_metadata_percentageR?texistst
format_numberRMt_asyncR2t_retrieveMDRRR
titemsRtcacheRttagtfindalltfindttexttrpmdbtsearchNevraRtclear(+R"tayumtpkgsRVtnprocstoldrpmstpinfotreposizetindextpotpercR^tnamestrpmfntmtntvtrtaRRtdataRt	data_sizetmsgRLtkwargsRJtcpatht
pinfo_repotevtelRtnewtbestthaveRRtvertrelR!R#R ((RKR"s,/usr/lib/python2.7/site-packages/yum/drpm.pyR$psØ						%2'

$	)



0
	$#cCsX|dkrt|jƒ}nx3|dkrS|js:dS||jdtƒ8}q!WdS(sB Wait for "num" number of jobs to finish, or all of them. Blocks. iNtblock(RR_RWt_waitR2(R"tnum((s,/usr/lib/python2.7/site-packages/yum/drpm.pytwaitës	cCs`d}xS|jr[|r-tjƒ\}}n%tjdtjƒ\}}|sRPn||jksgt‚|jj|ƒ}|jr­|j|j	j
7_|jj|jƒn|dkrât|j	j
ƒ|j|tdƒƒnb|j	jƒs
|j|tdƒƒn:|j
j|jjƒr5tj|j
ƒn|j	j
|_
|d7}|r	Pq	q	W|S(NiiÿÿÿÿsDelta RPM rebuild faileds(Checksum of the delta-rebuilt RPM failedi(RWRR¢twaitpidtWNOHANGtAssertionErrorRGR	tdoneRRtupdateRRRVRR6R`RRetunlink(R"RŸR¡tpidtcodeR‰((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR ös0	
cCs|jj|ƒ|jƒdS(sa Turn a drpm into an rpm, by adding it to the queue and trying to
            service the queue. N(RXtappendtdequeue_max(R"R‰((s,/usr/lib/python2.7/site-packages/yum/drpm.pytrebuildsc	Csd}}x8|jjƒ|jD] }|d7}||jj7}q!W|rû|jjtdƒ|tj	|ƒƒ|j
jrûttdƒr›tj
dƒn|j
j|_yd|jj_WnnX|jjdddddd	d
|ƒd|_qûnx|jr|jƒqþWdS(s> De-Queue all delta rebuilds and spawn the rebuild processes. iis.Finishing delta rebuilds of %d package(s) (%s)ttext_meter_total_sizeiRTturlR~s<locally rebuilding deltarpms>RN(RWtvaluesRXRRRHRoRR	RvRtcallbackR<R®Rft	timescaletstartRR¦tdequeue(R"tcountttotalR‰((s,/usr/lib/python2.7/site-packages/yum/drpm.pytdequeue_alls(


cCsA|js|jƒdSx#|jr<|jdtƒsPqqWdS(sQ De-Queue all delta rebuilds we can and spawn the rebuild
            processes. NRŸ(RXR R´R1(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR¬7s	
cCsâ|jƒ|jstS|jt|jƒkr]|s9tS|jt|jƒ|jdƒn|jjdƒ}d|jf}|j	r|d|j	f7}n||j
|jj
f7}tj
tjtt|Œ}||j|<tS(s@ Try to De-Queue a delta rebuild and spawn the rebuild process. iis-as-r(R RXR1R[R_RWR¢RGRR!RRRtspawnltP_NOWAITRmR2(R"RŸR‰targsR©((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR´Ds
	$	
N(R8R9R$RR¢R1R R­R·R¬R2R´(((s,/usr/lib/python2.7/site-packages/yum/drpm.pyRCos	{#			
(((t
yum.constantsRt
yum.ErrorsRtyum.i18nRRRtyum.miscRRRt
urlgrabberRR	R<RMtxml.etree.cElementTreeRRRfRmRRBRC(((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt<module>s?

OHA YOOOO