Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ©ft`%:ã@s¤ddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z mZmZGdd„deƒZGd d „d eƒZGd d „d eƒZGd d„deƒZdS)éN)Úucd)Úmisc)Ú DatabaseErroré)ÚGroupPersistorÚEnvironmentPersistorÚRPMTransactionc@sjeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z edd„ƒZedd„ƒZedd„ƒZedd„ƒZedd „ƒZed!d"„ƒZed#d$„ƒZed%d&„ƒZejd'd&„ƒZed(d)„ƒZejd*d)„ƒZed+d,„ƒZed-d.„ƒZed/d0„ƒZejd1d0„ƒZed2d3„ƒZd4d5„Zed6d7„ƒZd8d9„Zed:d;„ƒZ edd?„ƒZ"d@S)AÚRPMTransactionItemWrappercCs||_||_dS)N)Ú_swdbÚ_item)ÚselfÚswdbÚitem©rú/usr/lib/python3.6/history.pyÚ__init__#sz"RPMTransactionItemWrapper.__init__cCs|jjƒjƒS)N)r ZgetItemZtoStr)r rrrÚ__str__(sz!RPMTransactionItemWrapper.__str__cCs |j|jkS)N)r )r ÚotherrrrÚ__lt__+sz RPMTransactionItemWrapper.__lt__cCs |j|jkS)N)r )r rrrrÚ__eq__.sz RPMTransactionItemWrapper.__eq__cCs |jjƒS)N)r Ú__hash__)r rrrr1sz"RPMTransactionItemWrapper.__hash__cCsdS)NTr)r ÚpatternrrrÚmatch4szRPMTransactionItemWrapper.matchcCs|jjƒdk S)N)r Ú getRPMItem)r rrrÚ is_package7sz$RPMTransactionItemWrapper.is_packagecCs|jjƒdk S)N)r ÚgetCompsGroupItem)r rrrÚis_group:sz"RPMTransactionItemWrapper.is_groupcCs|jjƒdk S)N)r ÚgetCompsEnvironmentItem)r rrrÚis_environment=sz(RPMTransactionItemWrapper.is_environmentcCs |jjƒS)N)r r)r rrrÚ get_group@sz#RPMTransactionItemWrapper.get_groupcCs |jjƒS)N)r r)r rrrÚget_environmentCsz)RPMTransactionItemWrapper.get_environmentcCs|jjƒjƒS)N)r rZgetName)r rrrÚnameFszRPMTransactionItemWrapper.namecCs|jjƒjƒS)N)r rZgetEpoch)r rrrÚepochJszRPMTransactionItemWrapper.epochcCs|jjƒjƒS)N)r rZ getVersion)r rrrÚversionNsz!RPMTransactionItemWrapper.versioncCs|jjƒjƒS)N)r rZ getRelease)r rrrÚreleaseRsz!RPMTransactionItemWrapper.releasecCs|jjƒjƒS)N)r rZgetArch)r rrrÚarchVszRPMTransactionItemWrapper.archcCs*|jrdj|j|j|jƒSdj|j|jƒS)Nz{}:{}-{}z{}-{})r"Úformatr#r$)r rrrÚevrZszRPMTransactionItemWrapper.evrcCs|jjƒjƒS)N)r rZgetNEVRA)r rrrÚnevra`szRPMTransactionItemWrapper.nevracCs |jjƒS)N)r Z getAction)r rrrÚactiondsz RPMTransactionItemWrapper.actioncCs|jj|ƒdS)N)r Z setAction)r Úvaluerrrr)hscCs |jjƒS)N)r Z getReason)r rrrÚreasonlsz RPMTransactionItemWrapper.reasoncCs |jj|ƒS)N)r Z setReason)r r*rrrr+psc Cs$y |jjƒStk rdSXdS)NÚ)r Z getActionNameÚAttributeError)r rrrÚ action_namets z%RPMTransactionItemWrapper.action_namec Cs$y |jjƒStk rdSXdS)Nr,)r ZgetActionShortr-)r rrrÚ action_short{s z&RPMTransactionItemWrapper.action_shortcCs |jjƒS)N)r ÚgetState)r rrrÚstate‚szRPMTransactionItemWrapper.statecCs|jj|ƒdS)N)r ÚsetState)r r*rrrr1†scCs |jjƒS)N)r Ú getRepoid)r rrrÚ from_repoŠsz#RPMTransactionItemWrapper.from_repocCs|jjƒsdSd|jjƒS)Nr,ú@)r r3)r rrrÚ ui_from_repoŽs z&RPMTransactionItemWrapper.ui_from_repocCsdS)Nr)r rrrÚ obsoleting“sz$RPMTransactionItemWrapper.obsoletingcCs|jjj|ƒS)N)r ÚrpmÚ get_reason)r rrrr9—sz$RPMTransactionItemWrapper.get_reasoncCs|jjj|jS)N)r r8Z _swdb_ti_pkgr )r rrrÚpkg›szRPMTransactionItemWrapper.pkgcCs|jjS)N)r:Úfiles)r rrrr;ŸszRPMTransactionItemWrapper.filescCs|jS)N)r:)r rrrÚ_active£sz!RPMTransactionItemWrapper._activeN)#Ú__name__Ú __module__Ú __qualname__rrrrrrrrrrr Úpropertyr!r"r#r$r%r'r(r)Úsetterr+r.r/r1r4r6r7r9r:r;r<rrrrr "sB                r c@sÜeZdZdZdZdd„Zedd„ƒZedd„ƒZedd „ƒZ ed d „ƒZ ed d „ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(S))ÚTransactionWrapperFcCs ||_dS)N)Ú_trans)r Útransrrrr­szTransactionWrapper.__init__cCs |jjƒS)N)rCÚgetId)r rrrÚtid°szTransactionWrapper.tidcCs |jjƒS)N)rCZ getCmdline)r rrrÚcmdline´szTransactionWrapper.cmdlinecCs |jjƒS)N)rCZ getReleasever)r rrrÚ releasever¸szTransactionWrapper.releasevercCs |jjƒS)N)rCZ getDtBegin)r rrrÚ beg_timestamp¼sz TransactionWrapper.beg_timestampcCs |jjƒS)N)rCZgetDtEnd)r rrrÚ end_timestampÀsz TransactionWrapper.end_timestampcCs |jjƒS)N)rCÚgetRpmdbVersionBegin)r rrrÚbeg_rpmdb_versionÄsz$TransactionWrapper.beg_rpmdb_versioncCs |jjƒS)N)rCÚgetRpmdbVersionEnd)r rrrÚend_rpmdb_versionÈsz$TransactionWrapper.end_rpmdb_versioncCst|jjƒtjjkƒS)N)ÚintrCr0ÚlibdnfÚ transactionÚTransactionItemState_DONE)r rrrÚ return_codeÌszTransactionWrapper.return_codecCs |jjƒS)N)rCZ getUserId)r rrrÚloginuidÐszTransactionWrapper.loginuidcCs|jS)N)Úpackages)r rrrÚdataÔszTransactionWrapper.datacCs|jjƒ}t|ƒS)N)rCÚgetConsoleOutputÚbool)r ÚoutputrrrÚ is_outputØs zTransactionWrapper.is_outputcCs |jjƒS)N)rCZ getComment)r rrrÚcommentÝszTransactionWrapper.commentcCs |jjƒgS)N)rCrE)r rrrÚtidsászTransactionWrapper.tidscCsgS)Nr)r rrrÚperformed_withäsz!TransactionWrapper.performed_withcsˆjjƒ}‡fdd„|DƒS)Ncsg|]}tˆ|ƒ‘qSr)r )Ú.0Úi)r rrú ész/TransactionWrapper.packages..)rCZgetItems)r Úresultr)r rrUçs zTransactionWrapper.packagescCsdd„|jjƒDƒS)NcSsg|] }|d‘qS)rr)r^r_rrrr`ìsz-TransactionWrapper.output..)rCrW)r rrrrYëszTransactionWrapper.outputcCsgS)Nr)r rrrÚerrorîszTransactionWrapper.errorcCs|jjƒ|k|_dS)N)rCrMÚaltered_gt_rpmdb)r ZrpmdbvrrrÚcompare_rpmdbvñsz!TransactionWrapper.compare_rpmdbvN)r=r>r?Úaltered_lt_rpmdbrcrr@rFrGrHrIrJrLrNrSrTrVrZr[r\r]rUrYrbrdrrrrrB¨s*            rBc@sheZdZdd„Zdd„Zedd„ƒZdd„Zed d „ƒZed d „ƒZ ed d„ƒZ edd„ƒZ dd„Z dS)ÚMergedTransactionWrappercCstjj|jƒ|_dS)N)rPrQZMergedTransactionrC)r rDrrrr÷sz!MergedTransactionWrapper.__init__cCs|jj|jƒdS)N)rCÚmerge)r rDrrrrgúszMergedTransactionWrapper.mergecCs |jjƒS)N)rCZ listUserIds)r rrrrTýsz!MergedTransactionWrapper.loginuidcCs |jjƒS)N)rCZlistIds)r rrrr\szMergedTransactionWrapper.tidscCsdd„|jjƒDƒS)NcSsg|]}t|tjjkƒ‘qSr)rOrPrQrR)r^r_rrrr`sz8MergedTransactionWrapper.return_code..)rCZ listStates)r rrrrSsz$MergedTransactionWrapper.return_codecCs |jjƒS)N)rCZ listCmdlines)r rrrrGsz MergedTransactionWrapper.cmdlinecCs |jjƒS)N)rCZlistReleasevers)r rrrrH sz#MergedTransactionWrapper.releasevercCs |jjƒS)N)rCZ listComments)r rrrr[sz MergedTransactionWrapper.commentcCsdd„|jjƒDƒS)NcSsg|] }|d‘qS)rr)r^r_rrrr`sz3MergedTransactionWrapper.output..)rCrW)r rrrrYszMergedTransactionWrapper.outputN) r=r>r?rrgr@rTr\rSrGrHr[rYrrrrrfõs     rfc@sðeZdZd6dd„Zdd„Zedd„ƒZedd „ƒZed d „ƒZed d „ƒZ edd„ƒZ dd„Z dd„Z edd„ƒZ dd„Zd7dd„Zd8dd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd9d(d)„Zd*d+„Zd,d-„Zd:d.d/„Zd;d0d1„Zd2d3„Zd4d5„ZdS)<Ú SwdbInterfacer,cCs8t|ƒ|_d|_d|_d|_d|_d|_||_g|_dS)N) ÚstrrHÚ_rpmÚ_groupÚ_envZ _addon_datar Ú_db_dirÚ_output)r Zdb_dirrHrrrrs zSwdbInterface.__init__cCs |jƒdS)N)Úclose)r rrrÚ__del__%szSwdbInterface.__del__cCs|jdkrt|ƒ|_|jS)N)rjr)r rrrr8(s  zSwdbInterface.rpmcCs|jdkrt|ƒ|_|jS)N)rkr)r rrrÚgroup.s  zSwdbInterface.groupcCs|jdkrt|ƒ|_|jS)N)rlr)r rrrÚenv4s  zSwdbInterface.envcCstjj|jtjjjƒS)N)ÚosÚpathÚjoinrmrPrQÚSwdbZdefaultDatabaseName)r rrrÚdbpath:szSwdbInterface.dbpathcCsZ|jsTytjj|jƒ|_Wn.tk rH}ztt|ƒƒ‚WYdd}~XnX|jjƒ|jS)z Lazy initialize Swdb object N) r rPrQrvrwÚ RuntimeErrorrriÚinitTransaction)r Zexrrrr >s zSwdbInterface.swdbcCstjj||jƒ}|jƒdS)N)rPrQZ TransformerrwÚ transform)r Z input_dirZ transformerrrrrzKszSwdbInterface.transformc CsZy|`Wntk rYnXd|_d|_d|_|jrJ|jjƒ|jjƒd|_g|_dS)N) Ú_tidr-rjrkrlr ZcloseTransactionZ closeDatabasern)r rrrroOs  zSwdbInterface.closecCs |jjƒS)N)r ZgetPath)r rrrrt]szSwdbInterface.pathcCs |jjƒS)N)r Z resetDatabase)r rrrÚreset_dbaszSwdbInterface.reset_dbTcCs|jjƒ}|sdSt|ƒS)N)r ZgetLastTransactionrB)r Úcomplete_transactions_onlyÚtrrrÚlastes zSwdbInterface.lastNrFcsžˆpg‰dd„ˆDƒ‰|jjƒ}dd„|Dƒ}ˆrD‡fdd„|Dƒ}xJt|ƒD]>\}}|dkr`qN||d}|jjƒ|jjƒkrNd|_d|_qNW|ddd…S) NcSsg|] }t|ƒ‘qSr)rO)r^r_rrrr`osz%SwdbInterface.old..cSsg|] }t|ƒ‘qSr)rB)r^r_rrrr`qscsg|]}|jˆkr|‘qSr)rF)r^r_)r\rrr`tsrrTéÿÿÿÿ)r ZlistTransactionsÚ enumeraterCrKrMrerc)r r\Úlimitr}rar_rDZ prev_transr)r\rÚoldms   zSwdbInterface.oldcCst|jjƒƒS)N)rBr Z getCurrent)r rrrÚ get_current€szSwdbInterface.get_currentcCsB|jj|ƒ}|j|ƒ}tjj}|jj||||ƒ}|jtjj ƒ|S)zSet reason for package) r8Z_pkg_to_swdb_rpm_itemÚreporPrQZ#TransactionItemAction_REASON_CHANGEr ZaddItemr2rR)r r:r+Úrpm_itemZrepoidr)ZtirrrÚ set_reasonƒs   zSwdbInterface.set_reasoncCs|jjt|ƒƒS)zGet repository of package)r Z getRPMRepori)r r:rrrr…’szSwdbInterface.repocCs*|jjt|ƒƒ}|dkr|St||ƒ}|S)zGet package data for packageN)r ZgetRPMTransactionItemrir )r r:rarrrÚ package_data–s  zSwdbInterface.package_datac Csfy|jjƒWn YnX|jjttjtjƒƒƒt|ƒ|p>dtt j ƒƒ|ƒ}|jj |j ƒ||_ |S)Nr,)r ryZbeginTransactionrOÚcalendarZtimegmÚtimeZgmtimerirZ getloginuidZ setReleaseverrHr{)r Z rpmdb_versionZ using_pkgsZtsisrGr[rFrrrÚbeg¥s zSwdbInterface.begcCsN|jjƒ}|j|jƒ|j|jp"dƒ|j|jƒ|j|j ƒ|j |j ƒ|S)Nr) r Z createRPMItemZsetNamer!ZsetEpochr"Z setVersionr#Z setReleaser$ZsetArchr%)r Zpor†rrrÚpkg_to_swdb_rpm_item¶s     z"SwdbInterface.pkg_to_swdb_rpm_itemcCsDt|dƒsdS|sdSx(|jƒD]}t|ƒ}|jjd|fƒq WdS)Nr{r)ÚhasattrÚ splitlinesrrnÚappend)r ÚmsgÚlinerrrÚlog_scriptlet_output¿s z"SwdbInterface.log_scriptlet_outputcCsŽt|dƒsdS|dkrFtjj}x&|jD]}|jtjjkr&tjj}Pq&Wx |jD]\}}|j j ||ƒqNWg|_|j j t t j ƒƒt|ƒ|ƒdS)Nr{)r�rPrQZTransactionState_DONEr8r1ZTransactionItemState_ERRORZTransactionState_ERRORrnr ZaddConsoleOutputLineZendTransactionrOrŠri)r rNrSÚerrorsZtsiZfile_descriptorr‘rrrÚendÐs   zSwdbInterface.endcCs |jj|ƒS)z{ Search for history transactions which contain specified packages al. la. "yum list". Returns transaction ids. )r ZsearchTransactionsByRPM)r ZpatternsZ ignore_caserrrÚsearchëszSwdbInterface.searchcCs8|jj|j|jdƒ}|tjjkr$dS|tjjkr4dSdS)z)Returns True if package is user installedrTFr€)r ÚresolveRPMTransactionItemReasonr!r%rPrQÚTransactionItemReason_USERÚTransactionItemReason_UNKNOWN)r r:r+rrrÚuser_installedðs   zSwdbInterface.user_installedcCsF|r|jj|j|j|ƒ}n|jj|j|jdƒ}|tjjkrBtjj}|S)a2Get 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 rollbackrr€)r r–r!r%rPrQr˜r—)r r:Z first_transZrollbackrarrrÚget_erased_reasonûs  zSwdbInterface.get_erased_reason)r,)T)NrF)Nr,)r,NN)T)r=r>r?rrpr@r8rqrrrwr rzrortr|rrƒr„r‡r…rˆr‹rŒr’r”r•r™ršrrrrrhs0              rh)r‰rsrŠZlibdnf.transactionrPZ libdnf.utilsZdnf.i18nrZdnf.yumrZdnf.exceptionsrrqrrrÚobjectr rBrfrhrrrrÚs   M"