Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/UpdateManager/Core/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyc


RSc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZm
Z
mZdefdYZdefdYZedkreeeZndS(iN(tget_langtget_disttget_ubuntu_flavortDistcBseZdZRS(cCsU||_||_||_||_d|_d|_d|_d|_d|_	dS(N(
tnametversiontdatet	supportedtNonetreleaseNotesURItreleaseNotesHtmlUritupgradeTooltupgradeToolSigtupgrade_broken(tselfRRRR((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyt__init__%s								(t__name__t
__module__R(((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyR$stMetaReleaseCorecBs}eZdZdejkZdZdZeeeedZ	dZ
dZdZdZ
d	Zd
ZdZRS(sU
    A MetaReleaseCore object astracts the list of released 
    distributions. 
    tDEBUG_UPDATE_MANAGERs$/etc/update-manager/release-upgradess /etc/update-manager/meta-releasec
Cs|jd||f||_t|_d|_t|_d|_d|_	d|_
d|_d|_t
j
}tjj|jrpy|j|jWn4t
jk
r}tjjd|j|fdSX|jdrpd}x~ddd	d
gD]g}|j||r|jd|j|j||ft|d||f|j||qqWqpnt
j
}tjj|jrLy|j|jWn4t
jk
r}tjjd|j|fdSX|jd
drL|jd
dj}	|	dks|	dkr+t|_dS|	dkrI|j
|_	qIqLn|ra|j
|_	n|r||j	|j7_	n|r|j	|j7_	n|jd|j	d|_|js|jddSt j!|j"ddS(Ns1MetaRelease.__init__() useDevel=%s useProposed=%ss)http://changelogs.ubuntu.com/meta-releases-http://changelogs.ubuntu.com/meta-release-ltss-developmentsERROR: failed to read '%s':
%stMETARELEASEtURItURI_LTStURI_UNSTABLE_POSTFIXtURI_PROPOSED_POSTFIXs%s: %s s%s_%stDEFAULTtPrompttnevertnotltssmetarelease-uri: %ss_buildMetaReleaseFile failed((#t_debugt
forceDownloadtTruetdownloadingRtnew_distRtcurrent_dist_nametno_longer_supportedtMETARELEASE_URItMETARELEASE_URI_LTSt METARELEASE_URI_UNSTABLE_POSTFIXt METARELEASE_URI_PROPOSED_POSTFIXtConfigParsertostpathtexiststCONF_METARELEASEtreadtErrortsyststderrtwritethas_sectiont
has_optiontgettsetattrtCONFtlowertFalsetmetarelease_informationt_buildMetaReleaseFiletthreadtstart_new_threadtdownload(
RtuseDevelopmentReleasetuseProposedtforceLTSRtparsertetsectkttype((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyR=sn								
3		
cCsHtjjdtjj|j|_yt|jdWntk
r}tjdtjj	d}tjj|d}tjj
|sytj|Wqtk
r}t
jjd|tSXntjj|tjj|j|_nXy2tjj|jdkr-tj|jnWntk
rC}nXtS(Ns/var/lib/update-manager/tatXDG_CACHE_HOMEs~/.cachesupdate-manager-coresmkdir() failed: '%s'i(R*R+tjointbasenameR%tMETARELEASE_FILEtopentIOErrortgetenvt
expanduserR,tmkdirtOSErrorR0R1R2R9tgetsizetunlinkt	ExceptionR (RRCt	cache_dirR+((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyR;s*+cCs
||_dS(s\ virtual function that is called when the distro is no longer
            supported
        N(R$(Rtdist((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pytdist_no_longer_supportedscCs
||_dS(s\ virtual function that is called when a new distro release
            is available
        N(R"(RRV((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pytnew_dist_availablescCs|jd|j}|jd|d}g}tj|j}|j}x|rd|jkr|jd}|jd||jd}tj	t
j|}t|jd}	|jd}
t
||
||	}d|jkr(|jd|_t}|r(|jd	|7_q(nd
|jkrq|jd
|_|j|}
|
rq|j|
7_qqnd|jkr|jd|_nd|jkr|jd|_nd
|jkr|jd
|_n|j|||kr|}qn|j}qTW|dkr)|jdtSd}x;|D]3}|j|jkr6|}|jd|Pq6q6W|dkr|jr|j|n|dkr|j|ntS(NsMetaRelease.parse()scurrent dist name: '%s'Rsfound distro name: '%s'tDatet	SupportedtVersiontReleaseNotess?lang=%stReleaseNotesHtmltUpgradeTooltUpgradeToolSignaturet
UpgradeBrokens,current dist not found in meta-release file
tsnew dist: %s(RR#Rtapt_pkgtTagFileR:tsteptsectionttimetmktimetrfc822t	parsedatetintRR	RR
t#_get_release_notes_uri_query_stringRRR
tappendR9RRRWRXR (RR#tcurrent_disttdistst	index_tagtstep_resultRtrawdateRRRRVtlangtqueryt
upgradable_to((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pytparsesd
		


	


cCs|jdd}tj|j}|jdd|jddtj|jtjrytj	|jj
}Wqtk
r}qXn|dkr|jr|jdt
jt
j|nytj|dd	}tjj|jrOtj|jtjrOytj|jWqOtk
rK}d
|j|fGHqOXny]t|jd}x!|jD]}|j|qqW|j|jdd||_Wntk
r}nX|jWntjk
rF}|jdkr2tjj|jr2|jd
|jt|jd|_q||jd|n6tjtj t!j"fk
r{}|jd|nX|jdkr|jdy|j$Wn+t%j&d|jtj'|jnX|j(r|j(j)rtj'|jqn
|jdt*|_+dS(NsMetaRelease.download()is
Cache-ControlsNo-CachetPragmasno-cachesIf-Modified-SincettimeoutisCan't unlink '%s' (%s)sw+i0sreading file '%s'trs%result of meta-release download: '%s's!have self.metarelease_informationsparse failed for '%s'sNO self.metarelease_information(,Rturllib2tRequestR%t
add_headerR*taccessRKtW_OKtstattst_mtimeRQRRftasctimetgmtimeturlopenR+R,RSRLt	readlinesR2tflushtseekR:RMtcloset	HTTPErrortcodetURLErrorthttplibt
BadStatusLinetsocketRwRRutloggingt	exceptiontremoveR"R
R9R!(RtlastmodifiedtreqRCturitftline((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyR>s`
%

$!

cCsRd}t}|r&|d|7}nt}|d|7}|d|j7}|S(Nt?slang=%s&sos=%s&sver=%s(RRR(RRVtqRrR*((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyRk8s		cCs$|jr tjj|dndS(Ns
(tDEBUGR0R1R2(Rtmsg((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyREs	(RRt__doc__R*tenvironRR7R-R9RR;RWRXRuR>RkR(((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyR1sK				D	B	
t__main__(RbR)RRRhR*RR0RfR<RytutilsRRRtobjectRRRR9tmeta(((sB/usr/lib/python2.7/dist-packages/UpdateManager/Core/MetaRelease.pyt<module>s