Current File : //proc/3/task/3/cwd/proc/3/cwd/usr/lib/python2.7/site-packages/yum/repos.pyc
�
�v_c@s�ddlZddlZddlZddlZddlZddlZddlmZddlZ ddl
mZ
dfd��YZdfd��YZ
dfd ��YZdS(
i����N(tMetaSack(tproxyt_wrap_ayum_getKeyForRepocBs&eZdZed�Zdd�ZRS(sc This is a wrapper for calling YumBase.getKeyForRepo() because
otherwise we take a real reference through the bound method and
that is d00m (this applies to YumBase and RepoStorage, hence why
we have a separate class).
A "better" fix might be to explicitly pass the YumBase instance to
the callback ... API change! cCst|�|_||_dS(N(tweakreftayumtca(tselfRR((s-/usr/lib/python2.7/site-packages/yum/repos.pyt__init__$scCs/|jr|jj||�S|jj||�S(N(RRtgetCAKeyForRepot
getKeyForRepo(Rtrepotcallback((s-/usr/lib/python2.7/site-packages/yum/repos.pyt__call__'s N(t__name__t
__module__t__doc__tFalseRtNoneR(((s-/usr/lib/python2.7/site-packages/yum/repos.pyRstRepoStoragecBs�eZdZd�Zd�Zdd�Zd�Zd�Zd�Z d�Z
d�Zd �Zd
�Z
eed�Zd�Zd
�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Zddddd�ZRS(sXThis class contains multiple repositories and core configuration data
about them.cCs�i|_d|_d|_t�|_tjd�|_t |_
t|�|_t
|�|_t
|dt�|_d|_g|_i|_t |_dS(Nisyum.RepoStorageR(treposRRtcacheRtpkgSacktloggingt getLoggertloggerRt_setupRRRtgpg_import_functTruetgpgca_import_functconfirm_funct_cache_enabled_repostquick_enable_disablet_list_enabled_hasrun(RR((s-/usr/lib/python2.7/site-packages/yum/repos.pyR0s c Cs�ttjd�sdSg}x�|j�D]�}|jr>q)ny|joV|j|�}Wn;tjk
r�}|j s~�n|j
|j�t}nX|r)|j
�}|j|�}|j||tgf�q)q)Wx�ttfD]�}xk|D]c\}}}|d�} xE|D]=\}
}|
jdk|kr|j|dtd| �qqWq�Wtjj�q�Wx;|D]3\}}}|dr�|j�qr|j|�qrWdS(sX Download metadata for all enabled repositories,
based on mdpolicy.
t
parallel_waitNcSst|d<dS(Ni(R(tobjterror((s-/usr/lib/python2.7/site-packages/yum/repos.pytfailfuncfstasyncR$i(thasattrt
urlgrabbertgrabbertlistEnabledRt_asynct_commonLoadRepoXMLtErrorst RepoErrortskip_if_unavailabletdisableRepotidRt_mdpolicy2mdtypest_commonRetrieveDataMD_listtappendRtsizeRt_retrieveMDR!t_revertOldRepoXMLt_commonRetrieveDataMD_done(RRR
tdltetmdtypestdownloadingtno_sizeR#R$tndatatnmdtype((s-/usr/lib/python2.7/site-packages/yum/repos.pyt
retrieveAllMDKs8
$
c
Cs�|dkr|j�n|jjjd�|dkrG|j�}n|j|�}t|�dkr{|jjd�nt t
jd�ri}x{|j�D]j}|jr�t
jj|j�}|j||�}|j|jkr
d}tj|||f�q
q�q�Wnx�|D]�}|j|jjj|jjd|jd|jd|j�|jst|j|j�qt|jjd d�}|r||_qqWt|_ |j!�|jjjd
�dS(Ntprereposetupis#No Repositories Available to Set Uptpycurls/sslclientcert basename shared between %s and %sRRRtdownloaddirt
postreposetup("RR)Rtpluginstrunt findRepostlenRtdebugR&R'R(t
sslclientcerttostpathtbasenamet
setdefaultR,tConfigErrortsetuptconfRtmediagrabberRRRtenabledR/R0tgetattrtpkgdirRRR?( RtthisrepoRtcert_basenamesR
tbntothertmsgRT((s-/usr/lib/python2.7/site-packages/yum/repos.pytdoSetupts:
#
cCst|jj��S(N(tstrRtkeys(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyt__str__�scCsWy|j�WnBtjk
rR}|jjdt|�t|�|jf�nXdS(NsException %s %s in %s ignored(tcloseR,R-RRHtreprR[t__del__(RR9((s-/usr/lib/python2.7/site-packages/yum/repos.pyR`�scCs(x!|jj�D]}|j�qWdS(N(RtvaluesR^(RR
((s-/usr/lib/python2.7/site-packages/yum/repos.pyR^�scCs�|j|jkr(tjd|j�n||j|j<t|d�ri|jj|j�|j|_n d|_t|j d�s�t
|_n|j j|_dS(Ns;Repository %s is listed more than once in the configurationRt_override_sigchecks(R0RR,tDuplicateRepoErrorR&RtupdateRRRRRb(Rtrepoobj((s-/usr/lib/python2.7/site-packages/yum/repos.pytadd�s cCs7||jkr3|j|}|j�|j|=ndS(N(RR^(RtrepoidRU((s-/usr/lib/python2.7/site-packages/yum/repos.pytdelete�s
cCs|jj�}|j�|S(N(RRatsort(Rtrepolist((s-/usr/lib/python2.7/site-packages/yum/repos.pyRi�s
cCs9y|j|SWn#tk
r4}tjd|�nXdS(Ns:Error getting repository data for %s, repository not found(RtKeyErrorR,R-(RRgR9((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetRepo�s
c Cs�||jkr|j|gSg}x�|jd�D]�}|j�}tj|j�|�}xs|jj�D]b\}}||jks�t�||�r�|j|�qm|rm||j �rm|j|�qmqmWq3W|S(s� Find all repositories matching fnmatch `pattern` on the repo.id,
can also do case insensitive searches and/or search on the name.t,(
Rtsplittstriptmisctcompile_patterntitemsR0tAssertionErrorR3tname( Rtpatternt
name_matchtignore_casetresulttitemtmatchRtR
((s-/usr/lib/python2.7/site-packages/yum/repos.pyRF�scCs�g}tj|�s*|jd�dkrax]|j|�D] }|j|j�|j�q:Wn)|j|�}|j|j�|j�|S(s�disable a repository from use
fnmatch wildcards may be used to disable a group of repositories.
returns repoid of disabled repos as list
Rmi����(Rptre_globtfindRFR3R0tdisableRl(RRgRR
RU((s-/usr/lib/python2.7/site-packages/yum/repos.pyR/�s$
cCs�g}tj|�s*|jd�dkrax]|j|�D] }|j|j�|j�q:Wn)|j|�}|j|j�|j�|S(s�enable a repository for use
fnmatch wildcards may be used to enable a group of repositories.
returns repoid of enables repos as list
Rmi����(RpR{R|RFR3R0tenableRl(RRgRR
RU((s-/usr/lib/python2.7/site-packages/yum/repos.pyt
enableRepo�s$
cCs�|js(|jjjd�t|_n|jdk rH|jrH|jSg}x3|jj �D]"}|j
�r^|j|�q^q^W|j�|jdk r�||_|jj
�n|S(s#return list of enabled repo objectstprelistenabledreposN(R RRDRERRRRRRat isEnabledR3Ritclear(Rt
returnlistR
((s-/usr/lib/python2.7/site-packages/yum/repos.pyR)s
cCs:g}x-|j�D]}|jr|j|�qqW|S(s6return a list of repo objects that have groups enabled(R)tenablegroupsR3(RR�R
((s-/usr/lib/python2.7/site-packages/yum/repos.pytlistGroupsEnableds
cCs0||_x |jj�D]}||_qWdS(ssets cache value in all reposN(RRRa(RtcachevalR
((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetCache(s cCsN||_x>|jj�D]-}||jkr|j|_||_qqWdS(s$sets the cachedir value in all reposN(t _cachedirRRatbasecachedirtold_base_cache_dir(RtcachedirR
((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetCacheDir.s
cCs.x'|jj�D]}|j||�qWdS(s6sets the progress bar for downloading files from reposN(RRatsetCallback(RR"t multi_objR
((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetProgressBar8scCs+x$|jj�D]}|j|�qWdS(s'sets the failure callback for all reposN(RRat
setFailureObj(RR"R
((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetFailureCallback>scCs+x$|jj�D]}|j|�qWdS(s)sets the failure callback for all mirrorsN(RRatsetMirrorFailureObj(RR"R
((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetMirrorFailureCallbackDscCs+x$|jj�D]}|j|�qWdS(N(RRatsetInterruptCallback(RRR
((s-/usr/lib/python2.7/site-packages/yum/repos.pyR�JscCs|jS(N(R(R((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetPackageSackNsRRtmetadataicCs�|js|j�n|s(|j}ng}|dkrI|j�}n�|dkrg|jj�}n�t|�tjkr�x�|D]A}t |t
�r�|j|�q�|j|�}|j|�q�Wn4t|�tj
kr�|j|�}|j|�n|dkrdddg}n |g}ttjd�r�xE|D]=}|jrTq?n|jr?|j�} | j||�q?q?Wtjj�nx�|D]�}|j�} y| j||||�Wn�tk
r2}
|
jdjd�s��n|d
kr|jr|j|j�q�tj|
jd��q�tjk
rr}
|dkrl|jrl|j|j�q��q�X|jj |j| �q�Wd S(s�
This populates the package sack from the repositories, two optional
arguments:
- which='repoid, enabled, all'
- mdtype='metadata, filelists, otherdata, all'
RRtallR�t filelistst otherdataR!itParsingN(sallR�(sallR�(!RRZRR)RRattypettypestListTypet
isinstancet
RepositoryR3Rlt
StringTypeR&R'R(RR*R�t_retrieve_asyncR!tpopulatet TypeErrortargst
startswithR.R/R0R,R-RtaddSack(RtwhichtmdtypeRt cacheonlytmyreposR
trepobjtdatatsackR9((s-/usr/lib/python2.7/site-packages/yum/repos.pytpopulateSackRsX
N(R
RRRR?RRZR]R`R^RfRhRiRlRRFR/RR)R�R�R�R�R�R�R�R�R�(((s-/usr/lib/python2.7/site-packages/yum/repos.pyR,s0 ),
R�cBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Ze e�Z
d�Zd�Zd �Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdded�Zdded�ZRS(s#this is an actual repository objectcCs)||_i|_|j�t|_dS(N(R0RR}Rt_xml2sqlite_local(RRg((s-/usr/lib/python2.7/site-packages/yum/repos.pyR�s
cCs4|j|jkrdS|j|jkr,dSdSdS(sf Sort base class repos. by alphanumeric on their id, also
see __cmp__ in YumRepository(). ii����iN(R0(RRX((s-/usr/lib/python2.7/site-packages/yum/repos.pyt__cmp__�s
cCs|jS(N(R0(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyR]�scCs
t|j�S(N(thashR0(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyt__hash__�scCsWy|j�WnBtjk
rR}|jjdt|�t|�|jf�nXdS(NsException %s %s in %s ignored(R^R,R-RRHR_R[R`(RR9((s-/usr/lib/python2.7/site-packages/yum/repos.pyR`�scCs|jS(s1 Show self.id, so we can use it and override it. (R0(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyt_ui_id�scCsdS(N((R((s-/usr/lib/python2.7/site-packages/yum/repos.pyR^�scCst|||�dS(s+sets a generic attribute of this repositoryN(tsetattr(Rtkeytvalue((s-/usr/lib/python2.7/site-packages/yum/repos.pytsetAttribute�scCst||d�S(N(RSR(RR�((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetAttribute�scCs|jd�}|dk o|S(NRR(R�R(RRR((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��scCs$|jdd�t|j|j<dS(NRRi(R�RRR0(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyR~�scCs$|jdd�t|j|j<dS(NRRi(R�RRR0(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyR}�scCs|jd�}|pgS(Ntexclude(R�(RtexcludeList((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetExcludePkgList�scCs|jd�}|pgS(Ntincludepkgs(R�(RtincludeList((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetIncludePkgList�scCs
t��dS(N(tNotImplementedError(R((s-/usr/lib/python2.7/site-packages/yum/repos.pytready�scCs
t��dS(N(R�(R((s-/usr/lib/python2.7/site-packages/yum/repos.pytgetGroupLocation�scCs
t��dS(N(R�(R((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��scCs
t��dS(N(R�(RR((s-/usr/lib/python2.7/site-packages/yum/repos.pyRO�scCs
t��dS(N(R�(RR((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��scCs
t��dS(N(R�(RR"((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��scCs
t��dS(N(R�(RR"((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��scCs
t��dS(N(R�(Rtpackaget checkfuncttextR((s-/usr/lib/python2.7/site-packages/yum/repos.pyt
getPackage�stsimplecCs
t��dS(N(R�(RR�R�tregetR((s-/usr/lib/python2.7/site-packages/yum/repos.pyt getHeader�sN(R
RRRR�R]R�R`R�tpropertytui_idR^R�R�R�R~R}R�R�R�R�R�ROR�R�R�RRR�R�(((s-/usr/lib/python2.7/site-packages/yum/repos.pyR��s2
(treR�RRpRJR,tpackageSackRturlgrabber.grabberR'RRRRR�(((s-/usr/lib/python2.7/site-packages/yum/repos.pyt<module>s�h