관리-도구
편집 파일: history.cpython-39.opt-1.pyc
a �����!c%F����������������������@���s����d�dl�mZ�d�dl�mZ�d�dl�mZ�d�dlZd�dlZd�dlmZmZ�d�dl m Z �d�dlmZm Z �d�dl Zd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZe�d�ZG�d d ��d e j�ZdS�)�����)�absolute_import)�print_function)�unicode_literalsN)�_�ucd)�commands)�TransactionReplay�serialize_transaction�dnfc�����������������������s����e�Zd�ZdZdZed�Zg�d�Z��fdd�Ze dd���Z d d ��Zdd��Zd d��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd ��Zd!d"��Z���ZS�)#�HistoryCommandzUA class containing methods needed by the cli to execute the history command. )�historyZhistz(display, or use, the transaction history)�list�info�redo�replay�rollback�store�undo� userinstalledc��������������������s ���t�t|��j|i�|���d|�_d�S�)NF)�superr����__init__�_require_one_transaction_id)�self�args�kw�� __class__���</usr/lib/python3.9/site-packages/dnf/cli/commands/history.pyr���4���s����zHistoryCommand.__init__c�����������������C���s����|�j�dddd�tjd�d�tjdd�����d��|�j�d d dd��|�j�d dd�td�d��|�j�dd td�d��|�j�dd td�d��|�j�dd td�d��|�j�ddddd��|�j�ddddd��d�S�)N�transactions_action�?ZCOMMANDz$Available commands: {} (default), {}r���z, ����)�nargs�metavar�helpz --reverse� store_truez$display history list output reversed)�actionr$���z-oz--outputz<For the store command, file path to store the transaction to)�defaultr$���z--ignore-installedzXFor the replay command, don't check for installed packages matching those in transactionz--ignore-extraszRFor the replay command, don't check for extra packages pulled into the transactionz--skip-unavailablezYFor the replay command, skip packages that are not available or have missing dependencies�transactions�*ZTRANSACTIONz�For commands working with history transactions, Transaction ID (<number>, 'last' or 'last-<number>' for one transaction, <transaction-id>..<transaction-id> for a range)�transaction_filenameZTRANSACTION_FILEzEFor the replay command, path to the stored transaction file to replay)�add_argument�formatr����_CMDS�joinr���)�parserr���r���r���� set_argparser9���s6���� ��� ���� � �zHistoryCommand.set_argparserc�����������������C���s,��|�j�js|�jd�|�j�_n0|�j�j|�jvrH|�j�j�d|�j�j��|�jd�|�j�_td��|�j�j�|�_|�jj }|�j�jdk�r|�j�js�t j�td���t|�j�j�dkr�t j�td���t j�|�j�jd��|�j�_g�|�j�_d|_d|_d|_d|�jj_d|�jj_t jj�|�j|�j��n�|�j�jd k�r6d|�_|�j�j�s�t j�td ���n�|�j�jdv��r�d|_d|_d|_d|�_|�j�j�s�td �}t�|��t j�|��n,t|�j�j�dk�r�t�|�j��t j�|�j��d|_t jj�|�j|�j��nd|_d|_|�jjjdk�r(t � |�jjjt j!��s(td |�jjj��}t�|��t j�|��d�S�)Nr���zUFound more than one transaction ID. '{}' requires one transaction ID or package name.r���zNo transaction file name given.r!���z6More than one argument given as transaction file name.TFr���z(No transaction ID or package name given.)r���r���r���z:memory:z+You don't have access to the history DB: %s)"�optsr���r-���r(����insertr���r,����_require_one_transaction_id_msg�cli�demandsr ����CliError�len�os�path�abspathr*���Zavailable_reposZ resolvingZ root_user�base�confZclean_requirements_on_removeZinstall_weak_depsr���Z_checkGPGKeyr����logger�criticalZfresh_metadataZsack_activationr����access�R_OK)r���r5����msgr���r���r���� configureU���s\����� & zHistoryCommand.configurec�����������������C���s����t�|tjj�rv|�jjdkr2|�jj\}td�|�fS�|�jjdkrv|�jjd�dkrV|�jjn|�jjdd��\}td�|�fS�tjj j �|�|�S�) z.Get suggestions for resolving the given error.r���zVCannot undo transaction %s, doing so would result in an inconsistent package database.r���r����forcer!���NzZCannot rollback transaction %s, doing so would result in an inconsistent package database.)� isinstancer ���� exceptionsZTransactionCheckErrorr1���r���r(���r���r4���r����Command�get_error_output)r����errorZid_r���r���r���rG�������s���� ���zHistoryCommand.get_error_outputc�����������������C���s:���|���|�}t|�}t|�j|dd|�jjd�|�_|�j����d�S�)NT��data�ignore_installed� ignore_extras�skip_unavailable)�_history_get_transactionr ���r���r;���r1���rM���r����run)r����extcmds�oldrJ���r���r���r���� _hcmd_redo����s���� �zHistoryCommand._hcmd_redoc�����������������C���sD���|st�j�td���|�jj�|�}|s@t�j�td��|d����|S�)NzNo transaction ID givenzTransaction ID "{0}" not found.r���)r ���r4���r6���r���r;���r���rQ���r,����r���rP���rQ���r���r���r����_history_get_transactions����s����z(HistoryCommand._history_get_transactionsc�����������������C���s.���|���|�}t|�dkr&tj�td���|d�S�)Nr!���z#Found more than one transaction ID!r���)rT���r7���r ���r4���r6���r���rS���r���r���r���rN�������s���� z'HistoryCommand._history_get_transactionc�����������������C���s���|���|�}|��|��d�S�)N)rN����_revert_transactionrS���r���r���r���� _hcmd_undo����s���� zHistoryCommand._hcmd_undoc�����������������C���s����|���|�}|�jj���}d�}|j|jkr�|�jj�tt|jd�|jd����D�]X}|jrht � td�|j��n|jr�t � td�|j��|d�u�r�t jj�|�}qJ|�|��qJ|��|��d�S�)Nr!���z-Transaction history is incomplete, before %u.z,Transaction history is incomplete, after %u.)rN���r;���r����last�tidrQ���r ����rangeZaltered_lt_rpmdbr=���Zwarningr���Zaltered_gt_rpmdbr ���ZdbZMergedTransactionWrapper�mergerU���)r���rP���rQ���rW���Zmerged_trans�transr���r���r����_hcmd_rollback����s���� (zHistoryCommand._hcmd_rollbackc����������� ������C���s��dddddddddd d d�}t�|�}dD�]�}|�|g��D�]�}||d ��|d <�|d �dkrp|�dd��dkrpd|d<�|d �d kr�d|v�r�t�|d��}|jtjgd�d�}|�jjj� |j |j|���d�d��}t j�|�|d<�|�d�tjkr8d�|d<�q8q(t|�j|dd|�jjd�|�_|�j����d�S�)N�Removed�Install� Downgraded� Downgrade�Upgraded�Upgrade� Reinstall�Reinstalled� Obsoleted� Reason Change)r^���r]���rb���ra���r`���r_���rd���rc���re���ZObsoleterf���)Zrpms�groupsZenvironmentsr&����reasonZcleanZ dependency�nevra)Zformsr���r!���Zrepo_idTrI���)r ����get�hawkeyZSubjectZget_nevra_possibilitiesZ FORM_NEVRA�outputr���ZswdbZresolveRPMTransactionItemReason�nameZarch�tids�libdnfZtransactionZTransactionItemReasonToStringZSYSTEM_REPO_NAMEr���r;���r1���rM���r���rO���) r���r[���Z action_maprJ���Zcontent_typeZtiZsubjri���rh���r���r���r���rU�������sJ����� ��z"HistoryCommand._revert_transactionc�����������������C���s:���t�|�j����}|�j�|dd�}|dkr6tj�td���dS�)z&Execute history userinstalled command.zPackages installed by userri���r���zNo packages to listN) �tupler;���Ziter_userinstalledrl���ZlistPkgsr ���r4���r6���r���)r���ZpkgsZn_listedr���r���r����_hcmd_userinstalled��s����z"HistoryCommand._hcmd_userinstalledc����������� ��� ������s�����fdd�}t���}t���}��jjD��]�}d|v��rRz|�dd�\}}W�n.�tyr���t�td��|���t j j�Y�n0�td�}z||�}W�n.�ty����t�t|��|���t j j�Y�n0�z||�}W�n.�ty����t�t|��|���t j j�Y�n0���j�r||k�rt���j ��t j j�||k�r.||�}}|�||f��|�t||d����q z|�||���W�q �t�y������jj�|g�}|�r�|�|��n4td��|�} ��j�r�t�| ��t j j�n t�| ��Y�q 0�q t|d d �|fS�)z0Convert commandline arguments to transaction idsc��������������������sJ���|�dkrd}�n|���d�r$|�dd���}�t|��}|dkrF|��jj���j7�}|S�)NrW����0zlast-����r���)� startswith�intrl���r���rW���rX���)�sZtransaction_id�r���r���r����str2transaction_id��s���� z@HistoryCommand._args2transaction_ids.<locals>.str2transaction_idz..����zWInvalid transaction ID range definition '{}'. Use '<transaction-id>..<transaction-id>'.zNCan't convert '{}' to transaction ID. Use '<number>', 'last', 'last-<number>'.r!���z8No transaction which manipulates package '{}' was found.T��reverse)�setr1���r(����split� ValueErrorr=���r>���r���r,���r ���r4���r6���r���r3����add�updaterY���rl���r����searchr����sorted) r���rx���rn����merged_tids�tZbegin_transaction_idZend_transaction_idZcant_convert_msgZtransact_ids_from_pkgnamerA���r���rw���r����_args2transaction_ids ��s^���� �� �� z$HistoryCommand._args2transaction_idsc����������� ��� ���C���sP��|�j�j}|dkrDt|�j|�j�j|�j�j|�j�j|�j�jd�|�_|�j� ����n|�� ��\}}|dkr||sd|�j�js||�jj ||�j�jd���n�|dkr�|s�|�j�js�|�j�||�j�j|���n�|dkr�|��|���n�|dkr�|��|���nx|dkr�|��|���nb|d kr�|������nN|d k�rL|��|�}t|�}z�|�j�jd�u�r2|�j�jnd}|�jjj�sN|�jjj�s�tj�|��r�td��|�}|�jjj�s�|�jjjd �|�d�|�d��s�ttd��|���W�d�S�t |d��,}t!j"||ddd��|�#d��W�d�����n1��s�0����Y��ttd��|���W�n@�t$�yJ�} �z&t%j&�'td��t(| ����W�Y�d�} ~ n d�} ~ 0�0�d�S�)Nr���)�filenamerK���rL���rM���r ���rz���r���r���r���r���r���r���ztransaction.jsonz{} exists, overwrite?z {} [y/N]: z {} [Y/n]: )rA���Zdefaultyes_msgzNot overwriting {}, exiting.�wrs���T)�indentZ sort_keys� zTransaction saved to {}.zError storing transaction: {}))r1���r���r���r;���r*���rK���rL���rM���r���rO���r����r(���rl���ZhistoryListCmdr{���ZhistoryInfoCmdrV���rR���r\���rq���rN���r ���r<���ZassumenoZ assumeyesr8���r9����isfiler���r,���Zuserconfirm�print�open�json�dump�write�OSErrorr ���r4���r6����str) r���Zvcmdrn���r����rX���rJ���r����rA����f�er���r���r���rO���M��sR����� &�*zHistoryCommand.runc�����������������C���s���|�j�jdvrd�S�|�j����d�S�)N�r���r���r���r���)r1���r���r���Zpost_transactionrw���r���r���r����run_resolved��s����zHistoryCommand.run_resolvedc�����������������C���sT���|�j�jdvrd�S�|�j���}|rPt�tjjt d���|D�]}t�tjjd|���q6d�S�)Nr����zEWarning, the following problems occurred while running a transaction:z ) r1���r���r���Zget_warningsr=����logr ����loggingZWARNINGr���)r����warningsr����r���r���r����run_transaction���s���� �zHistoryCommand.run_transaction)�__name__� __module__�__qualname__�__doc__�aliasesr���Zsummaryr-���r����staticmethodr0���rB���rG���rR���rT���rN���rV���r\���rU���rq���r����rO���r����r����� __classcell__r���r���r���r���r���*���s(��� = 0@2r���)Z __future__r���r���r���ro���rk���Zdnf.i18nr���r���Zdnf.clir���Zdnf.transaction_srr���r ���r ���Zdnf.exceptionsZdnf.transactionZdnf.utilr����r����r8���Z getLoggerr=���rF���r���r���r���r���r����<module>���s ���