ó ¾[/\c@sÔddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z defd„ƒYZdefd „ƒYZd efd „ƒYZd efd „ƒYZdS(iÿÿÿÿN(tucd(tmisci(tGroupPersistortEnvironmentPersistortRPMTransactiontRPMTransactionItemWrappercBsdeZd„Zd„Zd„Zd„Zd„Zd„Zed„ƒZ ed„ƒZ ed„ƒZ ed „ƒZ ed „ƒZ ed „ƒZed „ƒZejd „ƒZed„ƒZed„ƒZed„ƒZed„ƒZejd„ƒZed„ƒZd„Zed„ƒZd„Zed„ƒZed„ƒZed„ƒZRS(cCs||_||_dS(N(t_swdbt_item(tselftswdbtitem((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__init__"s cCs|jjƒjƒS(N(RtgetItemttoStr(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__str__'scCs|j|jkS(N(R(Rtother((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__lt__*scCs|j|jkS(N(R(RR((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__eq__-scCs |jjƒS(N(Rt__hash__(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR0scCstS(N(tTrue(Rtpattern((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytmatch3scCs|jjƒjƒS(N(Rt getRPMItemtgetName(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytname6scCs|jjƒjƒS(N(RRtgetEpoch(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytepoch:scCs|jjƒjƒS(N(RRt getVersion(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytversion>scCs|jjƒjƒS(N(RRt getRelease(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreleaseBscCs|jjƒjƒS(N(RRtgetArch(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytarchFscCs;|jr%dj|j|j|jƒSdj|j|jƒS(Ns{}:{}-{}s{}-{}(RtformatRR(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytevrJs cCs |jjƒS(N(Rt getAction(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytactionPscCs|jj|ƒdS(N(Rt setAction(Rtvalue((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR$TscCs |jjƒS(N(Rt getReason(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreasonXscCs*y|jjƒSWntk r%dSXdS(Nt(Rt getActionNametAttributeError(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_name\s cCs*y|jjƒSWntk r%dSXdS(NR)(RtgetActionShortR+(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_shortcs cCs |jjƒS(N(RtgetState(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytstatejscCs|jj|ƒdS(N(RtsetState(RR&((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR0nscCs |jjƒS(N(Rt getRepoid(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt from_reporscCs$|jjƒsdSd|jjƒS(NR)t@(RR2(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt ui_from_repovscCsdS(N(tNone(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt obsoleting{scCs|jjj|ƒS(N(Rtrpmt get_reason(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR9scCs|jjj|jS(N(RR8t _swdb_ti_pkgR(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytpkgƒscCs |jjS(N(R;tfiles(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR<‡scCs|jS(N(R;(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt_active‹s(t__name__t __module__R RRRRRtpropertyRRRRR R"R$tsetterR(R,R.R0R3R5R7R9R;R<R=(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR!s4        tTransactionWrappercBsøeZeZeZd„Zed„ƒZed„ƒZed„ƒZ ed„ƒZ ed„ƒZ ed„ƒZ ed„ƒZ ed„ƒZed „ƒZed „ƒZed „ƒZd „Zd „Zd„Zd„Zd„Zd„ZRS(cCs ||_dS(N(t_trans(Rttrans((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR •scCs |jjƒS(N(RCtgetId(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyttid˜scCs |jjƒS(N(RCt getCmdline(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcmdlineœscCs |jjƒS(N(RCt getReleasever(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt releasever scCs |jjƒS(N(RCt getDtBegin(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt beg_timestamp¤scCs |jjƒS(N(RCtgetDtEnd(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt end_timestamp¨scCs |jjƒS(N(RCtgetRpmdbVersionBegin(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytbeg_rpmdb_version¬scCs |jjƒS(N(RCtgetRpmdbVersionEnd(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytend_rpmdb_version°scCst|jjƒtjjkƒS(N(tintRCR/tlibdnft transactiontTransactionItemState_DONE(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt return_code´scCs |jjƒS(N(RCt getUserId(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytloginuid¸scCs|jS(N(tpackages(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytdata¼scCs|jjƒ}t|ƒS(N(RCtgetConsoleOutputtbool(Rtoutput((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt is_outputÀscCs|jjƒgS(N(RCRE(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyttidsÅscCsgS(N((R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytperformed_withÈscCs/|jjƒ}g|D]}t||ƒ^qS(N(RCtgetItemsR(Rtresultti((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRZËscCs$g|jjƒD]}|d^qS(Ni(RCR\(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR^ÏscCsgS(N((R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyterrorÒscCs|jjƒ|k|_dS(N(RCRQtaltered_gt_rpmdb(Rtrpmdbv((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcompare_rpmdbvÕs(R>R?tFalsetaltered_lt_rpmdbRfR R@RFRHRJRLRNRPRRRWRYR[R_R`RaRZR^ReRh(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRBs(      tMergedTransactionWrappercBsheZd„Zd„Zed„ƒZd„Zed„ƒZed„ƒZed„ƒZ d„Z RS(cCstjj|jƒ|_dS(N(RTRUtMergedTransactionRC(RRD((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR ÛscCs|jj|jƒdS(N(RCtmerge(RRD((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRmÞscCs |jjƒS(N(RCt listUserIds(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRYáscCs |jjƒS(N(RCtlistIds(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR`åscCs2g|jjƒD]}t|tjjkƒ^qS(N(RCt listStatesRSRTRURV(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRWèscCs |jjƒS(N(RCt listCmdlines(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRHìscCs |jjƒS(N(RCtlistReleasevers(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRJðscCs$g|jjƒD]}|d^qS(Ni(RCR\(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR^ôs( R>R?R RmR@RYR`RWRHRJR^(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRkÙs   t SwdbInterfacecBseZdd„Zd„Zed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZ d„Z d „Z ed „ƒZ d „Z ed „Zdd ed„Zd„Zd„Zd„Zdd„Zd„Zd„Zdd dd„Zed„Zd„Zd„ZRS(R)cCsRt|ƒ|_d|_d|_d|_d|_d|_||_g|_ dS(N( tstrRJR6t_rpmt_groupt_envt _addon_dataRt_db_dirt_output(Rtdb_dirRJ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR ùs      cCs|jƒdS(N(tclose(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__del__scCs(|jdkr!t|ƒ|_n|jS(N(RuR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR8scCs(|jdkr!t|ƒ|_n|jS(N(RvR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytgroupscCs(|jdkr!t|ƒ|_n|jS(N(RwR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytenvscCstjj|jtjjjƒS(N(tostpathtjoinRyRTRUtSwdbtdefaultDatabaseName(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytdbpathscCs8|js1tjj|jƒ|_|jjƒn|jS(s Lazy initialize Swdb object (RRTRURƒR…tinitTransaction(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR s cCs&tjj||jƒ}|jƒdS(N(RTRUt TransformerR…t transform(Rt input_dirt transformer((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRˆ(scCsuy |`Wntk rnX|jjƒd|_d|_d|_|jr_|jj ƒnd|_g|_ dS(N( t_tidR+R tcloseTransactionR6RuRvRwRt closeDatabaseRz(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR|,s        cCs |jjƒS(N(R tgetPath(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR:scCs |jjƒS(N(R t resetDatabase(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreset_db>scCs#|jjƒ}|sdSt|ƒS(N(R tgetLastTransactionR6RB(Rtcomplete_transactions_onlytt((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytlastBsicCs |p g}g|D]}t|ƒ^q}|jjƒ}g|D]}t|ƒ^qA}|rŠg|D]}|j|krf|^qf}nxmt|ƒD]_\}}|dkrµq—n||d}|jjƒ|jjƒkr—t |_ t |_ q—q—W|ddd…S(Niiiÿÿÿÿ( RSR tlistTransactionsRBRFt enumerateRCRORQRRjRf(RR`tlimitR’RdRcRDt prev_trans((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytoldJs +  cCsk|jj|ƒ}|j|ƒ}tjj}|}d}|jj||||ƒ}|j tjj ƒ|S(sSet reason for packageN( R8t_pkg_to_swdb_rpm_itemtrepoRTRUt#TransactionItemAction_REASON_CHANGER6R taddItemR1RV(RR;R(trpm_itemtrepoidR$t replaced_bytti((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt set_reason]s cCs|jjt|ƒƒS(sGet repository of package(R t getRPMRepoRt(RR;((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR›nscCs;|jjt|ƒƒ}|dkr(|St||ƒ}|S(sGet package data for packageN(R tgetRPMTransactionItemRtR6R(RR;Rc((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt package_datars  cCs}y|jjƒWnnX|jr˜xxt|jjjƒƒD]^\}}d}tjj}tjj } d} |jj |||| ƒ} | j tjj ƒq=Wxxt|jjjƒƒD]^\}}d}tjj}tjj } d} |jj |||| ƒ} | j tjj ƒq¸Wx{t|jjjƒƒD]^\}}d}tjj}tjj } d} |jj |||| ƒ} | j tjj ƒq3Wn|jrxxt|jjjƒƒD]^\} } d}tjj}tjj } d} |jj | ||| ƒ} | j tjj ƒqºWxxt|jjjƒƒD]^\} } d}tjj}tjj } d} |jj | ||| ƒ} | j tjj ƒq5Wx{t|jjjƒƒD]^\} } d}tjj}tjj } d} |jj | ||| ƒ} | j tjj ƒq°Wn|jjttjtjƒƒƒt|ƒ|pHdttjƒƒƒ}|jj|jƒ||_|S(NR)(R R†R~tsortedt _installedtitemsRTRUtTransactionItemAction_INSTALLtTransactionItemReason_USERR6RR1RVt _upgradedtTransactionItemAction_UPGRADEt_removedtTransactionItemAction_REMOVERtbeginTransactionRStcalendarttimegmttimetgmtimeRtRt getloginuidt setReleaseverRJR‹(Rt rpmdb_versiont using_pkgsttsisRHtgroup_idt group_itemRŸR$R(R R¡tenv_idtenv_itemRF((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytbegsp %  %  %   %  %  %      cCsi|jjƒ}|j|jƒ|j|jp1dƒ|j|jƒ|j|j ƒ|j |j ƒ|S(Ni( R t createRPMItemtsetNameRtsetEpochRt setVersionRt setReleaseRtsetArchR (RtpoRž((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytpkg_to_swdb_rpm_itemÏscCsZt|dƒsdS|sdSx6|jƒD](}t|ƒ}|jjd|fƒq*WdS(NR‹i(thasattrt splitlinesRRztappend(Rtmsgtline((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytlog_scriptlet_outputØs cCsˆt|ƒ }t|dƒs dSx*|jD]\}}|jj||ƒq*Wg|_|jjttjƒƒt|ƒt|ƒƒdS(NR‹( R]RÆRzR taddConsoleOutputLinetendTransactionRSR²Rt(RRRRWterrorstfile_descriptorRÊ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytendês    cCs|jj|ƒS(s{ Search for history transactions which contain specified packages al. la. "yum list". Returns transaction ids. (R tsearchTransactionsByRPM(Rtpatternst ignore_case((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytsearchscCs8|jj|j|jdƒ}|tjjkr4tStS(s)Returns True if package is user installediÿÿÿÿ( R tresolveRPMTransactionItemReasonRR RTRURªRRi(RR;R(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytuser_installedscCsj|r'|jj|j|j|ƒ}n|jj|j|jdƒ}|tjjkrftjj}n|S(s2Get reason of package before transaction being undone. If package is already installed in the system, keep his reason. :param pkg: package being installed :param first_trans: id of first transaction being undone :param rollback: True if transaction is performing a rollbackiÿÿÿÿ(R RÕRR RTRUtTransactionItemReason_UNKNOWNRª(RR;t first_transtrollbackRc((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytget_erased_reason s !N(R>R?R R}R@R8R~RR…R RˆR|RRRR”R6RiR™R¢R›R¥R½RÅRËRÐRÔRÖRÚ(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRs÷s.         N   (R°R€R²tlibdnf.transactionRTt libdnf.utilstdnf.i18nRtdnf.yumRR~RRRtobjectRRBRkRs(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyts     oI