v_c@sddlmZddlmZddlmZmZddlmZddlm Z m Z m Z ddl m Z mZee dZddlmZdd lZdd lZd Zd dd YZd dZdddYZd S(i(t TS_UPDATE(t RepoError(t exception2msgt_(t MiscError(tchecksumtrepo_gen_decompresstunlink_f(tgrabbertprogresst parallel_wait(t iterparseNs/usr/bin/applydeltarpmt DeltaPackagecBsPeZdZdZdZdZdZdZdZdZ RS(cCs||_|j|_|j|_|j|_|j\|_|_|_|_|_d|_ ||_ ||_ t jj|jdt jj||_||_||_dS(Nt/(trpmtrepotbasepathtpkgtuptnametarchtepochtversiontreleasetNonet_hashtsizet relativepathtostpathtdirnamet localpathtbasenametcsumtoldrpm(tselfRRtremoteR R!((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__init__!s    '   , cCs d|jS(NsDelta RPM of %s(R(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt__str__2scCsw|dkrdSt|j|jpvt|j|jpvt|j|jpvt|j|jpvt|j|jS(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||krtSt 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.pyt returnIdSum\s( t__name__t __module__R$R%R(R,R-R.R6R7(((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR s      icCs`ttds|Stjjds)|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 DeltaInfocBsPeZdZddZedZdZdZdZ e dZ RS(c+ s|j_|_i_g_d_|jj_jdkrjt }j| 9_njswdSi}i}i}xt |D]\}} | j j } | dkr| j j } |jj } t| dkr| djdrd} qn| dkrqn| jtkr'n| j|jjkr?n|j| j } | dkri} || j }$|$|"krqon|jd}%|jd}&|jd}'|&|'f|#krd|j||&|'| f}(n*|j?j@||%|&|'| s!qond}(|$}"|j=dj>})|j=d}*|*jd|*j>f}*tA| |$|)|*|(|| De-Queue all delta rebuilds and spawn the rebuild processes. iis.Finishing delta rebuilds of %d package(s) (%s)ttext_meter_total_sizeiRTturlR~sRN(RWtvaluesRXRRRHRoRR RvRtcallbackR<RRft timescaletstartRRtdequeue(R"tcountttotalR((s,/usr/lib/python2.7/site-packages/yum/drpm.pyt dequeue_all#s(     cCsA|js|jdSx#|jr<|jdtsPqqWdS(sQ De-Queue all delta rebuilds we can and spawn the rebuild processes. NR(RXRRR1(R"((s,/usr/lib/python2.7/site-packages/yum/drpm.pyR;s    cCs|j|jstS|jt|jkr]|s9tS|jt|j|jdn|jjd}d|jf}|j r|d|j f7}n||j |j j f7}t j t jtt|}||j|s?