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|dk s t‚||_||_dS)N)ÚAssertionErrorÚ_swdbÚ_item)ÚselfÚswdbÚitem©rú/usr/lib/python3.6/history.pyÚ__init__#s z"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+rrrr2†scCs |jjƒS)N)r Ú getRepoid)r rrrÚ from_repoŠsz#RPMTransactionItemWrapper.from_repocCs|jjƒsdSd|jjƒS)Nr-ú@)r r4)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 rrrr:—sz$RPMTransactionItemWrapper.get_reasoncCs|jjj|jS)N)r r9Z _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__rrrrrrrrrr r!Úpropertyr"r#r$r%r&r(r)r*Úsetterr,r/r0r2r5r7r8r:r;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)rDÚgetId)r rrrÚtid°szTransactionWrapper.tidcCs |jjƒS)N)rDZ getCmdline)r rrrÚcmdline´szTransactionWrapper.cmdlinecCs |jjƒS)N)rDZ getReleasever)r rrrÚ releasever¸szTransactionWrapper.releasevercCs |jjƒS)N)rDZ getDtBegin)r rrrÚ beg_timestamp¼sz TransactionWrapper.beg_timestampcCs |jjƒS)N)rDZgetDtEnd)r rrrÚ end_timestampÀsz TransactionWrapper.end_timestampcCs |jjƒS)N)rDÚgetRpmdbVersionBegin)r rrrÚbeg_rpmdb_versionÄsz$TransactionWrapper.beg_rpmdb_versioncCs |jjƒS)N)rDÚgetRpmdbVersionEnd)r rrrÚend_rpmdb_versionÈsz$TransactionWrapper.end_rpmdb_versioncCst|jjƒtjjkƒS)N)ÚintrDr1ÚlibdnfÚ transactionÚTransactionItemState_DONE)r rrrÚ return_codeÌszTransactionWrapper.return_codecCs |jjƒS)N)rDZ getUserId)r rrrÚloginuidÐszTransactionWrapper.loginuidcCs|jS)N)Úpackages)r rrrÚdataÔszTransactionWrapper.datacCs|jjƒ}t|ƒS)N)rDÚgetConsoleOutputÚbool)r ÚoutputrrrÚ is_outputØs zTransactionWrapper.is_outputcCs |jjƒS)N)rDZ getComment)r rrrÚcommentÝszTransactionWrapper.commentcCs |jjƒgS)N)rDrF)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..)rDZgetItems)r Úresultr)r rrVçs zTransactionWrapper.packagescCsdd„|jjƒDƒS)NcSsg|] }|d‘qS)rr)r_r`rrrraìsz-TransactionWrapper.output..)rDrX)r rrrrZëszTransactionWrapper.outputcCsgS)Nr)r rrrÚerrorîszTransactionWrapper.errorcCs|jjƒ|k|_dS)N)rDrNÚaltered_gt_rpmdb)r ZrpmdbvrrrÚcompare_rpmdbvñsz!TransactionWrapper.compare_rpmdbvN)r>r?r@Úaltered_lt_rpmdbrdrrArGrHrIrJrKrMrOrTrUrWr[r\r]r^rVrZrcrerrrrrC¨s*            rCc@sheZdZdd„Zdd„Zedd„ƒZdd„Zed d „ƒZed d „ƒZ ed d„ƒZ edd„ƒZ dd„Z dS)ÚMergedTransactionWrappercCstjj|jƒ|_dS)N)rQrRZMergedTransactionrD)r rErrrr÷sz!MergedTransactionWrapper.__init__cCs|jj|jƒdS)N)rDÚmerge)r rErrrrhúszMergedTransactionWrapper.mergecCs |jjƒS)N)rDZ listUserIds)r rrrrUýsz!MergedTransactionWrapper.loginuidcCs |jjƒS)N)rDZlistIds)r rrrr]szMergedTransactionWrapper.tidscCsdd„|jjƒDƒS)NcSsg|]}t|tjjkƒ‘qSr)rPrQrRrS)r_r`rrrrasz8MergedTransactionWrapper.return_code..)rDZ listStates)r rrrrTsz$MergedTransactionWrapper.return_codecCs |jjƒS)N)rDZ listCmdlines)r rrrrHsz MergedTransactionWrapper.cmdlinecCs |jjƒS)N)rDZlistReleasevers)r rrrrI sz#MergedTransactionWrapper.releasevercCs |jjƒS)N)rDZ listComments)r rrrr\sz MergedTransactionWrapper.commentcCsdd„|jjƒDƒS)NcSsg|] }|d‘qS)rr)r_r`rrrrasz3MergedTransactionWrapper.output..)rDrX)r rrrrZszMergedTransactionWrapper.outputN) r>r?r@rrhrArUr]rTrHrIr\rZrrrrrgõs     rgc@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) ÚstrrIÚ_rpmÚ_groupÚ_envZ _addon_datar Ú_db_dirÚ_output)r Zdb_dirrIrrrrs zSwdbInterface.__init__cCs |jƒdS)N)Úclose)r rrrÚ__del__%szSwdbInterface.__del__cCs|jdkrt|ƒ|_|jS)N)rkr)r rrrr9(s  zSwdbInterface.rpmcCs|jdkrt|ƒ|_|jS)N)rlr)r rrrÚgroup.s  zSwdbInterface.groupcCs|jdkrt|ƒ|_|jS)N)rmr)r rrrÚenv4s  zSwdbInterface.envcCstjj|jtjjjƒS)N)ÚosÚpathÚjoinrnrQrRÚSwdbZdefaultDatabaseName)r rrrÚdbpath:szSwdbInterface.dbpathcCsZ|jsTytjj|jƒ|_Wn.tk rH}ztt|ƒƒ‚WYdd}~XnX|jjƒ|jS)z Lazy initialize Swdb object N) r rQrRrwrxÚ RuntimeErrorrrjÚinitTransaction)r Zexrrrr>s zSwdbInterface.swdbcCstjj||jƒ}|jƒdS)N)rQrRZ TransformerrxÚ transform)r Z input_dirZ transformerrrrr{KszSwdbInterface.transformc CsZy|`Wntk rYnXd|_d|_d|_|jrJ|jjƒ|jjƒd|_g|_dS)N) Ú_tidr.rkrlrmr ZcloseTransactionZ closeDatabasero)r rrrrpOs  zSwdbInterface.closecCs |jjƒS)N)rZgetPath)r rrrru]szSwdbInterface.pathcCs |jjƒS)N)rZ resetDatabase)r rrrÚreset_dbaszSwdbInterface.reset_dbTcCs|jjƒ}|sdSt|ƒS)N)rZgetLastTransactionrC)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)rP)r_r`rrrraosz%SwdbInterface.old..cSsg|] }t|ƒ‘qSr)rC)r_r`rrrraqscsg|]}|jˆkr|‘qSr)rG)r_r`)r]rrratsrrTéÿÿÿÿ)rZlistTransactionsÚ enumeraterDrLrNrfrd)r r]Úlimitr~rbr`rEZ prev_transr)r]rÚoldms   zSwdbInterface.oldcCst|jjƒƒS)N)rCrZ getCurrent)r rrrÚ get_current€szSwdbInterface.get_currentcCsB|jj|ƒ}|j|ƒ}tjj}|jj||||ƒ}|jtjj ƒ|S)zSet reason for package) r9Z_pkg_to_swdb_rpm_itemÚreporQrRZ#TransactionItemAction_REASON_CHANGErZaddItemr3rS)r r;r,Úrpm_itemZrepoidr*ZtirrrÚ set_reasonƒs   zSwdbInterface.set_reasoncCs|jjt|ƒƒS)zGet repository of package)rZ getRPMReporj)r r;rrrr†’szSwdbInterface.repocCs*|jjt|ƒƒ}|dkr|St||ƒ}|S)zGet package data for packageN)rZgetRPMTransactionItemrjr )r r;rbrrrÚ package_data–s  zSwdbInterface.package_datac Csfy|jjƒWn YnX|jjttjtjƒƒƒt|ƒ|p>dtt j ƒƒ|ƒ}|jj |j ƒ||_ |S)Nr-)rrzZbeginTransactionrPÚcalendarZtimegmÚtimeZgmtimerjrZ getloginuidZ setReleaseverrIr|)r Z rpmdb_versionZ using_pkgsZtsisrHr\rGrrrÚbeg¥s zSwdbInterface.begcCsN|jjƒ}|j|jƒ|j|jp"dƒ|j|jƒ|j|j ƒ|j |j ƒ|S)Nr) rZ 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Ú splitlinesrroÚ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ŽrQrRZTransactionState_DONEr9r2ZTransactionItemState_ERRORZTransactionState_ERRORrorZaddConsoleOutputLineZendTransactionrPr‹rj)r rOrTÚ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. )rZsearchTransactionsByRPM)r ZpatternsZ ignore_caserrrÚsearchëszSwdbInterface.searchcCs8|jj|j|jdƒ}|tjjkr$dS|tjjkr4dSdS)z)Returns True if package is user installedrTFr�)rÚresolveRPMTransactionItemReasonr"r&rQrRÚ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�)rr—r"r&rQrRr™r˜)r r;Z first_transZrollbackrbrrrÚget_erased_reasonûs  zSwdbInterface.get_erased_reason)r-)T)NrF)Nr-)r-NN)T)r>r?r@rrqrAr9rrrsrxrr{rprur}r€r„r…rˆr†r‰rŒr�r“r•r–ršr›rrrrris0              ri)rŠrtr‹Zlibdnf.transactionrQZ libdnf.utilsZdnf.i18nrZdnf.yumrZdnf.exceptionsrrrrrrÚobjectr rCrgrirrrrÚs   M"