VULN_CHECK_I913V6 (f%FddlmZddlmZddlmZddlZddlZddlmZmZddl m Z ddl m Z m Z ddl ZddlZddlZddlZddlZddlZddlZej*dZGd d e j.Zy) )absolute_import)print_function)unicode_literalsN)_ucd)commands)TransactionReplayserialize_transactiondnfceZdZdZdZedZgdZfdZe dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZxZS)HistoryCommandzUA class containing methods needed by the cli to execute the history command. )historyhistz(display, or use, the transaction history)listinforedoreplayrollbackstoreundo userinstalledc:tt| |i|d|_y)NF)superr __init___require_one_transaction_id)selfargskw __class__s =/usr/lib/python3.12/site-packages/dnf/cli/commands/history.pyrzHistoryCommand.__init__4s nd,d9b9+0(c |jddddjtjddj tjdd|jd d d |jd ddt d|jdd t d |jdd t d |jdd t d |jdddd|jddddy)Ntransactions_action?COMMANDz$Available commands: {} (default), {}rz, )nargsmetavarhelpz --reverse store_truez$display history list output reversed)actionr)z-oz--outputz, 'last' or 'last-' for one transaction, .. for a range)transaction_filenameTRANSACTION_FILEzEFor the replay command, path to the stored transaction file to replay) add_argumentformatr _CMDSjoinr)parsers r set_argparserzHistoryCommand.set_argparser9sH1i!G!N!N . 4 4Q 7 $ .*>*>qr*B C"E  F K !G  ID*d!"#a!b  d0!"$3"4  5 -l!"$3"4  5 0!"$3"4  5 N#}"0  1 2#GY">  ?r!c |jjs|jd|j_nz|jj|jvrX|jjj d|jj|jd|j_t dj |jj|_|jj}|jjdk(ri|jjs(tjjt dt|jjdkDr(tjjt dtjj|jjd|j_g|j_d|_d|_d|_d|j(j*_d|j(j*_tjj0j3|j(|jn|jjd k(rFd|_|jjsitjjt d |jjd vr!d|_d|_d|_d|_|jjs?t d }t6j9|tjj|t|jjdkDrHt6j9|jtjj|jd|_tjj0j3|j(|jnd|_d|_|j(j>jd k7rtj@|j(j>jtjBs`t d |j(j>jz}t6j9|tjj|yy)NrzUFound more than one transaction ID. '{}' requires one transaction ID or package name.rzNo transaction file name given.r&z6More than one argument given as transaction file name.TFrz(No transaction ID or package name given.)rrrz:memory:z+You don't have access to the history DB: %s)"optsr#r4r-insertrr3_require_one_transaction_id_msgclidemandsr CliErrorlenospathabspathr0available_repos resolving root_userbaseconfclean_requirements_on_removeinstall_weak_depsr _checkGPGKeyrloggercriticalfresh_metadatasack_activationraccessR_OK)rr=msgs r configurezHistoryCommand.configureUs^yy,,,0JJqMDII ) YY * *$** < II " " ) )!TYY-J-J K,0JJqMDII )/02e03396$)):W:W3X ,(("" 99 ( (H 499))gg&&q)J'KLL499))*Q.gg&&q)a'bcc.0WW__TYY=S=STU=V-WDII *%'DII "&*G # $G  $G ;@DIINN 7/4DIINN , GG   ) )$))TXX > YY * *g 5/3D ,99))gg&&q)S'TUU YY * *.J J&*G # $G  $G /3D ,99))BC$gg&&s++TYY++,q0 D DEgg&&t'K'KLL&*G # GG   ) )$))TXX >%*G ""& 99   ! !Z / $))BSBSBXBXZ\ZaZa8bADIIDUDUDZDZZ[C OOC ''""3' '9c /r!ct|tjjr|jj dk(r'|jj \}td|zfS|jj dk(r\|jj ddk7r|jj n|jj dd\}td|zfStjjjj||S) z.Get suggestions for resolving the given error.rzVCannot undo transaction %s, doing so would result in an inconsistent package database.rrforcer&NzZCannot rollback transaction %s, doing so would result in an inconsistent package database.) isinstancer exceptionsTransactionCheckErrorr9r#r-rr<rCommandget_error_output)rerrorid_s r rYzHistoryCommand.get_error_outputs eS^^AA Byy,,6yy--ABDGHJJ..*<26))2H2H2Kw2V ..!YY33AB7HIKNOQQww''88uEEr!c|j|}t|}t|j|dd|jj |_|j jy)NTdataignore_installed ignore_extrasskip_unavailable)_history_get_transactionr r rFr9rarrun)rextcmdsoldr^s r _hcmd_redozHistoryCommand._hcmd_redosU++G4$S)' II!!YY77    r!c|s(tjjtd|jj j |}|s:tjjtdj|d|S)NzNo transaction ID givenzTransaction ID "{0}" not found.r)r r<r>rrFrrer3rrdres r _history_get_transactionsz(HistoryCommand._history_get_transactionssm''""1%>#?@ @ii##G,''""1%F#G#N#NwWXz#Z[ [ r!c|j|}t|dkDr(tjj t d|dS)Nr&z#Found more than one transaction ID!r)rir?r r<r>rrhs r rbz'HistoryCommand._history_get_transactionsA,,W5 s8a<''""1%J#KL L1v r!cH|j|}|j|y)N)rb_revert_transactionrhs r _hcmd_undozHistoryCommand._hcmd_undos ++G4   %r!c |j|}|jjj}d}|j|jk7r|jjj t t|jdz|jdzD]}|jr*tjtd|jn5|jr)tjtd|j|*tjjj|}|j!||j#|y)Nr&z-Transaction history is incomplete, before %u.z,Transaction history is incomplete, after %u.)rbrFrlasttidrerrangealtered_lt_rpmdbrKwarningraltered_gt_rpmdbr dbMergedTransactionWrappermergerl)rrdrero merged_transtranss r _hcmd_rollbackzHistoryCommand._hcmd_rollbacks++G4yy  %%' 77dhh **..tE#''A+txxRS|4T/UV))NN1%T#UW\W`W`a++NN1%S#TV[V_V_`'#&66>>#J#J5#QL &&u-W   .r!c Fdddddddddd d d }t|}d D]5}|j|gD]}||d |d <|d dk(r|jdddk(rd|d<|d d k(rd|vrtj|d}|j tj gd}|j jjj|j|j|jddz }tjj||d<|jdtj k(sd|d<8t#|j$|dd|j&j(|_|j*j-y)NRemovedInstall Downgraded DowngradeUpgradedUpgrade Reinstall Reinstalled Obsoleted Reason Change) r}r|rrrr~rrrObsoleter)rpmsgroups environmentsr+reasonclean dependencynevra)formsrr&repo_idTr])r gethawkeySubjectget_nevra_possibilities FORM_NEVRAoutputrswdbresolveRPMTransactionItemReasonnamearchtidslibdnf transactionTransactionItemReasonToStringSYSTEM_REPO_NAMEr rFr9rarrc) rry action_mapr^ content_typetisubjrrs r rlz"HistoryCommand._revert_transactions  ####&&"#,  %U+?Lhh|R0)"X,78 h<9,$1G71R#/BxLh>"W+6D 88@Q@Q?R8STUVE![[0055UU   Q!+F $*#5#5#S#STZ#[BxL66)$(?(??$(ByM%1?*( II!!YY77    r!ct|jj}|jj |dd}|dk(r(t j jtdy)z&Execute history userinstalled command.zPackages installed by userrrzNo packages to listN) tuplerFiter_userinstalledrlistPkgsr r<r>r)rpkgsn_listeds r _hcmd_userinstalledz"HistoryCommand._hcmd_userinstalledsYTYY1134;;''.JGT q=''""1%:#;< < r!cfd}t}t}jjD]}d|vr |jdd\}}td} ||} ||}jr>||k7r9t j jtjj||kDr||}}|j||f|jt!||dz |j||t+|d |fS#t$rHt j tdj|tjjwxYw#t$rHt j t|j|tjjwxYw#t$rHt j t|j|tjjwxYw#t$rj"j$j'|g}|r|j|njtdj|} jr/t j | tjjt j)| YwxYw) z0Convert commandline arguments to transaction idsc|dk(rd}n|jdr|dd}t|}|dkr1|jjj j z }|S)Nro0zlast-r) startswithintrrrorp)stransaction_idrs r str2transaction_idz@HistoryCommand._args2transaction_ids..str2transaction_ids`F{g&abE VN"$++"5"5":":"<"@"@@! !r!z..zWInvalid transaction ID range definition '{}'. Use '..'.zNCan't convert '{}' to transaction ID. Use '', 'last', 'last-'.r&z8No transaction which manipulates package '{}' was found.Treverse)setr9r-split ValueErrorrKrLrr3r r<r>rr;addupdaterqrrsearchrsorted) rrr merged_tidstbegin_transaction_idend_transaction_idcant_convert_msgtransact_ids_from_pkgnamerQs ` r _args2transaction_idsz$HistoryCommand._args2transaction_ids sw "ue ''Aqy+?@wwtQ?O<(*<$%&P$Q ++=>R+S(+);$>?S$TU''***+ "+OOA&6$7$>$>?Q$RS''***+" -04 0C0C0J0JA30O-0 $=> Z""(&);;"OOC0"%''"2"22"KK, -s9DE-#G1HAE*-AF>AHB-KKc|jj}|dk(rt|j|jj|jj |jj |jj|_|jjy|j\}}|dk(rJ|s|jjs2|jj||jjy|dk(rJ|s|jjs2|jj||jj|y|dk(r|j!|y|dk(r|j#|y|dk(r|j%|y|d k(r|j'y|d k(r|j)|}t+|} |jj|jjnd }|jj,j.s |jj,j0st2j4j7|rt9d j;|}|jj,j.sE|jjj=d j;|dj;|s$t?t9dj;|ytA|d5}tCjD||dd|jGddddt?t9dj;|yy#1swY.xYw#tH$rE} tJjLjOt9dj;tQ| d} ~ wwxYw)Nr)filenamer_r`rarrrrrrrrztransaction.jsonz{} exists, overwrite?z {} [y/N]: z {} [Y/n]: )rQdefaultyes_msgzNot overwriting {}, exiting.wrT)indent sort_keys zTransaction saved to {}.zError storing transaction: {}))r9r#r rFr0r_r`rarrcrr-rhistoryListCmdrhistoryInfoCmdrmrfrzrrbr rGassumeno assumeyesr@rAisfilerr3 userconfirmprintopenjsondumpwriteOSErrorr r<r>str) rvcmdrrrpr^rrQfes r rczHistoryCommand.runMsyy,, 8 + 77#'99#=#= $ 7 7#'99#=#= DK KKOO  $ : : < D+v~4tyy/E/E **49J9J*KT1G1G **41G1GU%%###D)(((*33D9,S1^37993C3C3Otyy//UgH //tyy~~7O7OUWU\U\UcUcdlUm 78??I99>>22$)):J:J:V:V . 5 5c :>K`K`adKe;W;g %a(F&G&N&Nx&X Y &h, $!tD -!67>>xHI%!-, ^''**1-L+M+T+TUXYZU[+\]]^s8D/M5 M5+M)<+M5)M2.M55 O>AN>>Ocj|jjdvry|jjy)Nrrrr)r9r#rpost_transaction)rs r run_resolvedzHistoryCommand.run_resolveds( 99 ( (0V V  $$&r!cN|jjdvry|jj}|rptj t jjtd|D]3}tj t jjd|z5yy)NrzEWarning, the following problems occurred while running a transaction:z ) r9r#r get_warningsrKlogr loggingWARNINGr)rwarningsrs r run_transactionzHistoryCommand.run_transactions| 99 ( (0V V ;;++-  JJ ##YZ  3;;..q9 r!)__name__ __module__ __qualname____doc__aliasesrsummaryr4r staticmethodr7rRrYrfrirbrmrzrlrrrcrr __classcell__)rs@r r r *s"G:;G \E1 ??6;(z F  &/,.`=>7@0^d' :r!r ) __future__rrrrrdnf.i18nrrdnf.clirdnf.transaction_srr r r dnf.exceptionsdnf.transactiondnf.utilrrr@ getLoggerrKrXr r!r rs\$'%' G     5 !f:X%%f:r!