403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python2.6/site-packages/yum/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python2.6/site-packages/yum/history.pyc
7Jc@sddkZddkZddkZddkZddklZddklZlZddk	i
Z
ddkZddkTddk
lZlZlZddklZdZhde6d	e6d
e6de6de6d
e6de6Zhed6ed	6ed
6ed6ed6ed6ed6ed6ed6ed
6ed6ZdZdZee dZ!defdYZ"dfdYZ#dfdYZ$dZ%dS(iN(tproxy(tsqlitet
executeSQL(t*(tYumInstalledPackagetYumAvailablePackaget
PackageObject(t
to_unicodes/var/lib/yum/historytUpdatetUpdatedtErasetInstallsTrue-Installt	Obsoletedt
ObsoletingsDep-Installt	Reinstallt	Downgradet
DowngradedcCsjd}d|jp
d|jo@d}|idd}|idd}|idd}n||fS(	s< Apply SQLite escaping, if needed. Returns pattern and esc. tt_t%s ESCAPE "!"t!s!!s!%s!_(treplace(tpatterntesc((s//usr/lib/python2.6/site-packages/yum/history.pyt_sql_esc;scCsvg}xi|D]a}d|jogSt|\}}|idd}|idd}|i||fq
W|S(sZ Converts patterns to SQL LIKE format, if required (or gives up if
        not possible). t[RRt?R(RRtappend(tpatternstretRR((s//usr/lib/python2.6/site-packages/yum/history.pyt
_sql_esc_globEs
cCsV|d
jo
g}ndddddddg}t}x,|D]$}tii|ot}Pq?q?Wt}|pdg}t}nt||jo
g}n|ot	|}ng}t}xN|D]F}ti
|o|i|dft}q|i|d	fqW|o |o|o|||tfS|}|||tfS(svSetup need_full and patterns for _yieldSQLDataList, also see if
       we can get away with just using searchNames(). tnametsql_nameArchtsql_nameVerRelArchtsql_nameVertsql_nameVerRelt	sql_envrat	sql_nevratglobt=N(tNonetFalsetyumtmisctre_full_search_neededtTruetPATTERNS_MAXtPATTERNS_INDEXED_MAXtlenRtre_globR(Rtignore_casetfieldst	need_fulltpattpat_maxttmpt	need_glob((s//usr/lib/python2.6/site-packages/yum/history.pyt_setupHistorySearchSQLTs>

			


tYumHistoryPackagecBseZdZRS(cCs||_||_||_||_||_|i|i|i|i|if|_|djo
g|_n-|id}|d|ddfg|_dS(Nt:ii(	RtversiontreleasetepochtarchtpkgtupR(t
_checksumstsplit(tselfRR?R>R<R=tchecksumtchk((s//usr/lib/python2.6/site-packages/yum/history.pyt__init__}s					

(t__name__t
__module__RF(((s//usr/lib/python2.6/site-packages/yum/history.pyR:{stYumHistoryTransactioncBseZdZdZdZdZdZeddZeddZ	dZ
d	Zedd
ZeddZ
RS(s# Holder for a history transaction. cCst||_|d|_|d|_|d|_|d|_|d|_|d|_|d|_d|_
d|_d|_d|_
d|_d|_dS(Niiiiiii(tweakreft_historyttidt
beg_timestamptbeg_rpmdbversiont
end_timestamptend_rpmdbversiontloginuidtreturn_codeR(t
_loaded_TWt
_loaded_TDt
_loaded_ERt
_loaded_OTtaltered_lt_rpmdbtaltered_gt_rpmdb(RCthistorytrow((s//usr/lib/python2.6/site-packages/yum/history.pyRFs






					cCso|djodSt|i|i}|o|St|i|i}|o|St|i|i}|S(Ni(R(tcmpRMRORL(RCtotherR((s//usr/lib/python2.6/site-packages/yum/history.pyt__cmp__s
cCs9|idjo"t|ii|i|_n|iS(N(RSR(tsortedRKt_old_with_pkgsRL(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt
_getTransWiths"cCs9|idjo"t|ii|i|_n|iS(N(RTR(R^RKt_old_data_pkgsRL(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt
_getTransDatas"tfgetcCs
|iS((R`(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt<lambda>scCs
|iS((Rb(RC((s//usr/lib/python2.6/site-packages/yum/history.pyRdscCs3|idjo|ii|i|_n|iS(N(RUR(RKt_load_errorsRL(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt
_getErrorsscCs3|idjo|ii|i|_n|iS(N(RVR(RKt_load_outputRL(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt
_getOutputscCs
|iS((Rf(RC((s//usr/lib/python2.6/site-packages/yum/history.pyRdscCs
|iS((Rh(RC((s//usr/lib/python2.6/site-packages/yum/history.pyRds(RGRHt__doc__RFR]R`Rbtpropertyt
trans_witht
trans_dataRfRhterrorstoutput(((s//usr/lib/python2.6/site-packages/yum/history.pyRIs		
				t
YumHistorycBseZdZdedZdZdZdZdZddZ
dZd	Zd
Z
edZdZd
ZdZdZdZdZdZdZddZdZdZgdedZdZdZedZ dZ!RS(s, API for accessing the history sqlite data. t/cCsd|_tii|_tii|d||i_	t
|i_tii|ii	pFyti
|ii	Wnttfj
o
}dSXt|i_n-ti|ii	tiot|i_ntid|ii	}d|_xtt|D]}tii|}|tdtd!}|idd}t|djoqnytt|Wntj
o
qnX||_PqW|idjo|indS(NRps%s/history-*-*-*.sqliteshistory-s.sqlitet-ii(R(t_connR*R+t
GenericHoldertconftostpathtnormpathtdb_pathR)twritabletexiststmakedirstIOErrortOSErrorR-taccesstW_OKR&t_db_filetreversedR^tbasenameR0RBtmaptintt
ValueErrort_create_db_file(RCtrootRxtetDBstdtfnametpieces((s//usr/lib/python2.6/site-packages/yum/history.pyRFs:	 		cCs|idS(N(tclose(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt__del__scCs6|idjoti|i|_n|iiS(N(RrR(RtconnectRtcursor(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt_get_cursorscCs
|iiS(N(Rrtcommit(RC((s//usr/lib/python2.6/site-packages/yum/history.pyt_commitscCs.|idj	o|iid|_ndS(N(RrR(R(RC((s//usr/lib/python2.6/site-packages/yum/history.pyRs
cCs@|i}t|d|xm|D]e\}}|djo|djo|S|djoq#n|djoq#n||jo|Sq#W|\}}}}	}
t|t|t|t|	t|
f\}}}}	}
|dj	o(t|d||||	|
|f}n"t|d||||	|
f}|iS(NsSELECT pkgtupid, checksum FROM pkgtups
                           WHERE name=? AND arch=? AND
                                 epoch=? AND version=? AND release=?sINSERT INTO pkgtups
                                (name, arch, epoch, version, release, checksum)
                                VALUES (?, ?, ?, ?, ?, ?)sINSERT INTO pkgtups
                                (name, arch, epoch, version, release)
                                VALUES (?, ?, ?, ?, ?)(RRR(Rt	lastrowid(RCR@RDtcurtsql_pkgtupidtsql_checksumtntaRtvtrtres((s//usr/lib/python2.6/site-packages/yum/history.pyt_pkgtup2pids.



	0
cCsT|i}|dj	o(dt|dt|df}n|i|i|S(Ns%s:%sii(treturnIdSumR(tstrRR@(RCtpotcsum((s//usr/lib/python2.6/site-packages/yum/history.pyt	_apkg2pids
(cCsVd}|i}d|jo'd|jod|i|if}n|i|i|S(Nt
checksum_types%s:%s(R(t
yumdb_infoRt
checksum_dataRR@(RCRRtyumdb((s//usr/lib/python2.6/site-packages/yum/history.pyt	_ipkg2pids
	cCsOt|to|i|St|to|i|S|i|idS(N(t
isinstanceRRRRRR@R((RCR((s//usr/lib/python2.6/site-packages/yum/history.pytpkg2pid$s
cCsd}|ittfjo2t|do
d}qN|io
d}qNn|itjo|io
d}qvn|djo7ti	|i}|djo|i
o
d}qn|S(Nt	reinstallRRRRsDep-Install(R(toutput_statet
TS_INSTALLtTS_TRUEINSTALLthasattrt
downgradestTS_ERASEt
downgraded_byt
_stcode2sttxttgettisDep(ttxmbrtstate((s//usr/lib/python2.6/site-packages/yum/history.pyttxmbr2state+s



cCs.|i}t|d|i|f}|iS(NskINSERT INTO trans_with_pkgs
                         (tid, pkgtupid)
                         VALUES (?, ?)(RRt_tidR(RCtpidRR((s//usr/lib/python2.6/site-packages/yum/history.pyttrans_with_pid<scCsh|dj	ptt|dp
|djodS|i}t|d|i||f}|iS(NRsuINSERT INTO trans_data_pkgs
                         (tid, pkgtupid, state)
                         VALUES (?, ?, ?)(R(tAssertionErrorRRRRR(RCRRRR((s//usr/lib/python2.6/site-packages/yum/history.pyttrans_data_pid_begDscCsat|dp
|djodS|i}t|dd|i||f}|i|iS(NRsUPDATE trans_data_pkgs SET done = ?
                         WHERE tid = ? AND pkgtupid = ? AND state = ?
                         tTRUE(RR(RRRRR(RCRRRR((s//usr/lib/python2.6/site-packages/yum/history.pyttrans_data_pid_endNs
c
Cs|i}t|dttit|tiif}|i|_	x*|D]"}|i
|}|i|qUWx?|D]7}|i|i
}|i|}	|i||	qW|idS(NsINSERT INTO trans_beg
                            (timestamp, rpmdb_version, loginuid)
                            VALUES (?, ?, ?)(RRRttimeRR*R+tgetloginuidRRRRRRRRR(
RCt
rpmdb_versiont
using_pkgsttxmbrsRRtpkgRRR((s//usr/lib/python2.6/site-packages/yum/history.pytbeg[s 	cCsP|i}x3|D]+}t|}t|d|i|fqW|idS(NsJINSERT INTO trans_error
                          (tid, msg) VALUES (?, ?)(RRRRR(RCRmRterror((s//usr/lib/python2.6/site-packages/yum/history.pyt_log_errorspscCs||djpt|dodS|i}x<|idD]+}t|}t|d|i|fq?W|idS(s6 Note that data can be either a real pkg. ... or not. RNs
sSINSERT INTO trans_script_stdout
                          (tid, line) VALUES (?, ?)(R(RRRBRRRR(RCtdatatmsgRR((s//usr/lib/python2.6/site-packages/yum/history.pytlog_scriptlet_outputyscCsK|i}t|d|fg}x|D]}|i|dq,W|S(NsfSELECT msg FROM trans_error
                      WHERE tid = ?
                      ORDER BY mid ASCi(RRR(RCRLRRRZ((s//usr/lib/python2.6/site-packages/yum/history.pyRes
cCsK|i}t|d|fg}x|D]}|i|dq,W|S(NsoSELECT line FROM trans_script_stdout
                      WHERE tid = ?
                      ORDER BY lid ASCi(RRR(RCRLRRRZ((s//usr/lib/python2.6/site-packages/yum/history.pyRgs
cCs|p|pt|i}t|d|ittit||f}|i|p't|dd|if|in|dj	o|i	|n|`dS(NsINSERT INTO trans_end
                            (tid, timestamp, rpmdb_version, return_code)
                            VALUES (?, ?, ?, ?)sKUPDATE trans_data_pkgs SET done = ?
                          WHERE tid = ?R(
RRRRRRRRR(R(RCRRRRmRR((s//usr/lib/python2.6/site-packages/yum/history.pytends	

c	Csz|i}t|d|fg}xN|D]F}t|d|d|d|d|d|d}|i|q,W|S(NsSELECT name, arch, epoch, version, release, checksum
                      FROM trans_with_pkgs JOIN pkgtups USING(pkgtupid)
                      WHERE tid = ?
                      ORDER BY name ASC, epoch ASCiiiiii(RRR:R(RCRLRRRZtobj((s//usr/lib/python2.6/site-packages/yum/history.pyR_s
3c	Cs|i}t|d|fg}x|D]}t|d|d|d|d|d|d}|dd	j|_|d
|_d|_t|itjo
t	|_nt|it
jo
t|_n|i|q,W|S(Ns	SELECT name, arch, epoch, version, release,
                             checksum, done, state
                      FROM trans_data_pkgs JOIN pkgtups USING(pkgtupid)
                      WHERE tid = ?
                      ORDER BY name ASC, epoch ASC, state DESCiiiiiiiRi(
RRR:tdoneRR(tstate_installedt
_sttxt2stcodetTS_INSTALL_STATESR-tTS_REMOVE_STATESR)R(RCRLRRRZR((s//usr/lib/python2.6/site-packages/yum/history.pyRas 
3
	

cCs|i}d}|p
d}nd
}|oWt|tiijo>tt|}}|ddidgt|7}n|d7}|d
j	o|dt	|7}nt
|||g}h}xt|D]l}	|o5t|tiijo|	d|joqqnt||	}
|
||	d<|i|
qWd	}|i
}t|tiijot
||n5|ddidgt|7}t
|||xe|D]]}	|	d|joqn|	d
||	d_|	d||	d_|	d||	d_qWd
}xt|D]}
|
i}d
}
|d
j	o
|i}
n|
d
jp$|d
jp|id
|
ijon6|
|jot|
_t|_nt|
_t|_|
}q4W|S(s Return a list of the last transactions, note that this includes
            partial transactions (ones without an end transaction). s]SELECT tid,
                         trans_beg.timestamp AS beg_ts,
                         trans_beg.rpmdb_version AS beg_rv,
                         trans_end.timestamp AS end_ts,
                         trans_end.rpmdb_version AS end_rv,
                         loginuid, return_code
                  FROM trans_beg JOIN trans_end USING(tid)sSELECT tid,
                             trans_beg.timestamp AS beg_ts,
                             trans_beg.rpmdb_version AS beg_rv,
                             NULL, NULL,
                             loginuid, NULL
                      FROM trans_begs WHERE tid IN (%s)s, Rs ORDER BY beg_ts DESC, tid ASCs LIMIT isSELECT tid,
                         trans_end.timestamp AS end_ts,
                         trans_end.rpmdb_version AS end_rv,
                         return_code
                  FROM trans_endiiiN(RR(R0R*t	constantsR/tlisttsettjoinRRRIRtkeysRORPRRRRNRLR-RWRXR)(RCttidstlimittcomplete_transactions_onlyRtsqltparamsRttid2objRZRtlastcur_rvtlas_rv((s//usr/lib/python2.6/site-packages/yum/history.pytoldsf
 (

 $
	

1
	
		
cCs>|i}d}t||x|D]}t||SWdS(s] This is the last full transaction. So any imcomplete transactions
            do not count. sSELECT tid,
                         trans_beg.timestamp AS beg_ts,
                         trans_beg.rpmdb_version AS beg_rv,
                         trans_end.timestamp AS end_ts,
                         trans_end.rpmdb_version AS end_rv,
                         loginuid, return_code
                  FROM trans_beg JOIN trans_end USING(tid)
                  ORDER BY beg_ts DESC, tid ASC
                  LIMIT 1N(RRRIR((RCRRRZ((s//usr/lib/python2.6/site-packages/yum/history.pytlasts	
ccs|i}t}g}g}xk|D]c\}}	xT|D]L}
|o|id|
|	fn|id|
|	f|i|q8Wq%W|pt|di|7}t|||x|D]}|VqWdS(s2Yields all the package data for the given params. s%s LIKE ?%ss%s %s ?s OR N(Rt_FULL_PARSE_QUERY_BEGRRRR(RCRR3R2Rtqsqltpat_sqlstpat_dataRtresttfieldtx((s//usr/lib/python2.6/site-packages/yum/history.pyt_yieldSQLDataList0s$cCsPt||}|\}}}}g}t}x.|i|||D]}	|i|	dqFW|i}
d}|ddidgt|7}t|}t}
t|ti	i
joIt|
dx4|
D],}	|	d|jo|
i|	dqqW|
S|p|
St|
||x|
D]}	|
i|	dq1W|
S(s{ Search for history transactions which contain specified
            packages al. la. "yum list". Returns transaction ids. is2SELECT tid FROM trans_data_pkgs WHERE pkgtupid IN s(%s)t,RsSELECT tid FROM trans_data_pkgs(R9RRtaddRRR0RR*RR/R(RCRR2RR4R3tnamesRt	pkgtupidsRZRRRR((s//usr/lib/python2.6/site-packages/yum/history.pytsearchFs4	$	
cCsd|iidtiddf}|i|joti||dn||_|i}dddd	d
ddd
g}x|D]}|i|qW|i	dS(s6 Create a new history DB file, populating tables etc. s%s/%s-%s.%sRYs%Y-%m-%dRs.olds CREATE TABLE trans_beg (
     tid INTEGER PRIMARY KEY,
     timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL,
     loginuid INTEGER);
s CREATE TABLE trans_end (
     tid INTEGER PRIMARY KEY REFERENCES trans_beg,
     timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL,
     return_code INTEGER NOT NULL);
s CREATE TABLE trans_with_pkgs (
     tid INTEGER NOT NULL REFERENCES trans_beg,
     pkgtupid INTEGER NOT NULL REFERENCES pkgtups);
s CREATE TABLE trans_error (
     mid INTEGER PRIMARY KEY,
     tid INTEGER NOT NULL REFERENCES trans_beg,
     msg TEXT NOT NULL);
s CREATE TABLE trans_script_stdout (
     lid INTEGER PRIMARY KEY,
     tid INTEGER NOT NULL REFERENCES trans_beg,
     line TEXT NOT NULL);
s CREATE TABLE trans_data_pkgs (
     tid INTEGER NOT NULL REFERENCES trans_beg,
     pkgtupid INTEGER NOT NULL REFERENCES pkgtups,
     done BOOL NOT NULL DEFAULT FALSE, state TEXT NOT NULL);
s CREATE TABLE pkgtups (
     pkgtupid INTEGER PRIMARY KEY,     name TEXT NOT NULL, arch TEXT NOT NULL,
     epoch TEXT NOT NULL, version TEXT NOT NULL, release TEXT NOT NULL,
     checksum TEXT);
sO CREATE INDEX i_pkgtup_naevr ON pkgtups (name, arch, epoch, version, release);
N(
RtRxRtstrftimeRRutrenameRtexecuteR(RCRRtopstop((s//usr/lib/python2.6/site-packages/yum/history.pyRes(
		N("RGRHRit_history_dirRFRRRRR(RRRRtstaticmethodRRRRRRRReRgRR_RaR)RRRR-RR(((s//usr/lib/python2.6/site-packages/yum/history.pyRos6%									
	
				
				K		s
SELECT pkgtupid,name,epoch,version,release,arch,
  name || "." || arch AS sql_nameArch,
  name || "-" || version || "-" || release || "." || arch AS sql_nameVerRelArch,
  name || "-" || version AS sql_nameVer,
  name || "-" || version || "-" || release AS sql_nameVerRel,
  epoch || ":" || name || "-" || version || "-" || release || "." || arch AS sql_envra,
  name || "-" || epoch || ":" || version || "-" || release || "." || arch AS sql_nevra
  FROM pkgtups
  WHERE 
(&RRutos.pathR&RJRtsqlutilsRRtyum.miscR+t
yum.constantsR*tyum.packagesRRRtyum.i18nRRt	TS_UPDATEt
TS_UPDATEDRRRtTS_OBSOLETEDt
TS_OBSOLETINGRRRRR(R)R9R:RIRoR(((s//usr/lib/python2.6/site-packages/yum/history.pyt<module>sH




	
	'9

Youez - 2016 - github.com/yon3zu
LinuXploit