Edit File: group.cpython-36.pyc
3 |Tcd�<������������������@���s����d�dl�Zd�dlZd�dlZd�dlZd�dlmZ�d�dlm Z �d�dl Z G�dd��de�ZG�dd��de�Z G�dd ��d e�ZG�d d��de�ZdS�)�����N)�_)�loggerc���������������@���sl���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��ZdS�)� PersistorBasec�������������C���sB���t�|tjjj�s ttt|����||�_i�|�_i�|�_ i�|�_ i�|�_d�S�)N)� isinstance�dnf�db�historyZ SwdbInterface�AssertionError�str�type� _installed�_removed� _upgraded�_downgraded)�selfr�����r����/usr/lib/python3.6/group.py�__init__ ���s���� zPersistorBase.__init__c�������������C���s(���t�|�j�t�|�j��t�|�j��t�|�j��S�)N)�lenr���r ���r���r���)r���r���r���r����__len__(���s����zPersistorBase.__len__c�������������C���s���i�|�_�i�|�_i�|�_i�|�_d�S�)N)r���r ���r���r���)r���r���r���r����clean+���s����zPersistorBase.cleanc�������������C���s���t��d�S�)N)�NotImplementedError)r����objr���r���r����_get_obj_id1���s����zPersistorBase._get_obj_idc�������������C���s*���|�j�jj|d|tjj�}|jtjj��d�S�)N��)r����swdb�addItem�libdnf�transaction�TransactionItemReason_USERZsetStateZTransactionItemState_DONE)r����item�action�tir���r���r����_add_to_history4���s����zPersistorBase._add_to_historyc�������������C���s$���||�j�|�j|�<�|�j|tjj��d�S�)N)r���r���r#���r���r����TransactionItemAction_INSTALL)r���r���r���r���r����install8���s����zPersistorBase.installc�������������C���s$���||�j�|�j|�<�|�j|tjj��d�S�)N)r ���r���r#���r���r����TransactionItemAction_REMOVE)r���r���r���r���r����remove<���s����zPersistorBase.removec�������������C���s$���||�j�|�j|�<�|�j|tjj��d�S�)N)r���r���r#���r���r����TransactionItemAction_UPGRADE)r���r���r���r���r����upgrade@���s����zPersistorBase.upgradec�������������C���s$���||�j�|�j|�<�|�j|tjj��d�S�)N)r���r���r#���r���r����TransactionItemAction_DOWNGRADE)r���r���r���r���r���� downgradeD���s����zPersistorBase.downgradec�������������C���s���t��d�S�)N)r���)r����obj_id�name�translated_name� pkg_typesr���r���r����newH���s����zPersistorBase.newc�������������C���s���t��d�S�)N)r���)r���r,���r���r���r����getK���s����zPersistorBase.getc�������������C���s���t��d�S�)N)r���)r����patternr���r���r����search_by_patternN���s����zPersistorBase.search_by_patternN)�__name__� __module__�__qualname__r���r���r���r���r#���r%���r'���r)���r+���r0���r1���r3���r���r���r���r���r������s���r���c���������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�GroupPersistorc�������������C���s"���|�j�jj��}dd��|D��}t|�S�)Nc�������������S���s���g�|�]}|j���r|�qS�r���)�getCompsGroupItem)�.0�ir���r���r���� <listcomp>V���s����z+GroupPersistor.__iter__.<locals>.<listcomp>)r���r����getItems�iter)r����itemsr���r���r����__iter__T���s����zGroupPersistor.__iter__c�������������C���s���|j���S�)N)� getGroupId)r���r���r���r���r���r���Y���s����zGroupPersistor._get_obj_idc�������������C���sH���|�j�jj��}|j|��|d�k r(|j|��|d�k r:|j|��|j|��|S�)N)r���r���ZcreateCompsGroupItemZ setGroupId�setName�setTranslatedName�setPackageTypes)r���r,���r-���r.���r/���� swdb_groupr���r���r���r0���\���s���� zGroupPersistor.newc�������������C���s"���|�j�jj|�}|sd�S�|j��}|S�)N)r���r���r8���)r���r,���rD���r���r���r���r1���f���s ����zGroupPersistor.getc�������������C���s���|�j�jj|�S�)N)r���r���ZgetCompsGroupItemsByPattern)r���r2���r���r���r���r3���m���s����z GroupPersistor.search_by_patternc�������������C���s���|�j�jj|�S�)N)r���r���ZgetPackageCompsGroups)r����pkg_namer���r���r����get_package_groupsp���s����z!GroupPersistor.get_package_groupsc�������������C���s����|�j�jj|dd�}|tjjkr"dS�t|�j|��}xJ|�jj ��D�]<\}}x2|j ��D�]&}|j��|kr`qN|j��sjqN|j |��qNW�q<W�xJ|�jj ��D�]<\}}x2|j ��D�]&}|j��|kr�q�|j��s�q�|j|��q�W�q�W�|r�dS�dS�)Nr�������FT���)r���r����resolveRPMTransactionItemReasonr���r���ZTransactionItemReason_GROUP�setrF���r ���r>���ZgetPackagesZgetName�getInstalledr'���r����add)r���rE����reasonZpackage_groups�group_id�group�pkgr���r���r����is_removable_pkgs���s*����zGroupPersistor.is_removable_pkgN) r4���r5���r6���r?���r���r0���r1���r3���rF���rQ���r���r���r���r���r7���R���s��� r7���c���������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�EnvironmentPersistorc�������������C���s"���|�j�jj��}dd��|D��}t|�S�)Nc�������������S���s���g�|�]}|j���r|�qS�r���)�getCompsEnvironmentItem)r9���r:���r���r���r���r;�������s����z1EnvironmentPersistor.__iter__.<locals>.<listcomp>)r���r���r<���r=���)r���r>���r���r���r���r?�������s����zEnvironmentPersistor.__iter__c�������������C���s���|j���S�)N)ZgetEnvironmentId)r���r���r���r���r���r�������s����z EnvironmentPersistor._get_obj_idc�������������C���sH���|�j�jj��}|j|��|d�k r(|j|��|d�k r:|j|��|j|��|S�)N)r���r���ZcreateCompsEnvironmentItemZsetEnvironmentIdrA���rB���rC���)r���r,���r-���r.���r/����swdb_envr���r���r���r0�������s���� zEnvironmentPersistor.newc�������������C���s"���|�j�jj|�}|sd�S�|j��}|S�)N)r���r���rS���)r���r,���rT���r���r���r���r1�������s ����zEnvironmentPersistor.getc�������������C���s���|�j�jj|�S�)N)r���r���Z!getCompsEnvironmentItemsByPattern)r���r2���r���r���r���r3�������s����z&EnvironmentPersistor.search_by_patternc�������������C���s���|�j�jj|�S�)N)r���r���ZgetCompsGroupEnvironments)r���rN���r���r���r����get_group_environments����s����z+EnvironmentPersistor.get_group_environmentsc�������������C���s����|�j�jj|�}|sdS�t|�j|��}xJ|�jj��D�]<\}}x2|j��D�]&}|j��|krTqB|j ��s^qB|j |��qBW�q0W�xJ|�jj��D�]<\}}x2|j��D�]&}|j��|kr�q�|j ��s�q�|j|��q�W�q|W�|r�dS�dS�)NFT) r���rO���r1���rJ���rU���r ���r>���Z getGroupsr@���rK���r'���r���rL���)r���rN���rD���Zgroup_environmentsZenv_id�envrO���r���r���r����is_removable_group����s*����z'EnvironmentPersistor.is_removable_groupN) r4���r5���r6���r?���r���r0���r1���r3���rU���rW���r���r���r���r���rR�������s��� rR���c���������������@���s����e�Zd�Zd,dd�Zdd��Zdd��Zdd ��Zd-d d�Zdd ��Zdd��Z dd��Z d.dd�Zd/dd�Zd0dd�Z d1dd�Zd2dd�Zd3dd�Zd4dd�Zd d!��Zd"d#��Zed$d%���Zed&d'���Zd(d)��Zd*d+��ZdS�)5�RPMTransactionNc���������� ���C���s:���||�_�||�_|�js0y|�j�jj���W�n���Y�nX�i�|�_d�S�)N)r���r���r���ZinitTransaction�_swdb_ti_pkg)r���r���r���r���r���r���r�������s����zRPMTransaction.__init__c����������������s8�����j�r��j�j��}n��jjj��}��fdd�|D��}t|�S�)Nc����������������s&���g�|�]}|j���rtjjj��j|��qS�r���)� getRPMItemr���r���r����RPMTransactionItemWrapper)r9���r:���)r���r���r���r;�������s����z+RPMTransaction.__iter__.<locals>.<listcomp>)r���r<���r���r���r=���)r���r>���r���)r���r���r?�������s ����zRPMTransaction.__iter__c����������������s8�����j�r��j�j��}n��jjj��}��fdd�|D��}t|�S�)Nc����������������s&���g�|�]}|j���rtjjj��j|��qS�r���)rZ���r���r���r���r[���)r9���r:���)r���r���r���r;�������s����z*RPMTransaction.__len__.<locals>.<listcomp>)r���r<���r���r���r���)r���r>���r���)r���r���r�������s ����zRPMTransaction.__len__c�������������C���sP���|�j�jj��}|j|j��|j|jp$d��|j|j��|j |j ��|j|j��|S�)Nr���) r���r���Z createRPMItemrA���r-���ZsetEpochZepochZ setVersion�versionZ setRelease�releaseZsetArch�arch)r���rP����rpm_itemr���r���r����_pkg_to_swdb_rpm_item����s����z$RPMTransaction._pkg_to_swdb_rpm_itemc�������������C���sV���|�j�|�}|�j|�}|d�kr&|�j|�}|�jjj||||�}|rH|j|��||�j|<�|S�)N)r`���� get_repoid� get_reasonr���r���r���� addReplacedByrY���)r���rP���r!���rM����replaced_byr_���Zrepoid�resultr���r���r���r0�������s���� zRPMTransaction.newc�������������C���s���t�|dd��}|r|S�|jS�)NZ_force_swdb_repoid)�getattrZreponame)r���rP���re���r���r���r���ra�������s����zRPMTransaction.get_repoidc�������������C���s���|�j�jj|j|jd�S�)zGet reason for package�������)r���r���rI���r-���r^���)r���rP���r���r���r���rb�����s����zRPMTransaction.get_reasonc�������������C���s���t�jj|�j|��S�)zGet reason for package)r���r���ZTransactionItemReasonToStringrb���)r���rP���r���r���r����get_reason_name��s����zRPMTransaction.get_reason_namec�������������C���s8���|pg�}x*|D�]"}|�j�|tjj�}|r|j|��qW�d�S�)N)r0���r���r����TransactionItemAction_OBSOLETEDrc���)r���� obsoletedrd���Zobsr"���r���r���r����_add_obsoleted ��s ���� zRPMTransaction._add_obsoletedc�������������C���s6���|�j�|tjj�}|�j�|tjj|d�}|�j||d��d�S�)N)rd���)r0���r���r���r*���� TransactionItemAction_DOWNGRADEDrl���)r���r0����oldrk����ti_new�ti_oldr���r���r���� add_downgrade��s����zRPMTransaction.add_downgradec�������������C���s���|�j�||��d�S�)N)� add_remove)r���rn���rM���r���r���r���� add_erase��s����zRPMTransaction.add_erasec�������������C���s4���|d�krt�jj}|�j|t�jj|�}|�j||d��d�S�)N)rd���)r���r���r���r0���r$���rl���)r���r0���rk���rM���ro���r���r���r����add_install��s����zRPMTransaction.add_installc�������������C���s6���|�j�|tjj�}|�j�|tjj|d�}|�j||d��d�S�)N)rd���)r0���r���r����TransactionItemAction_REINSTALL�!TransactionItemAction_REINSTALLEDrl���)r���r0���rn���rk���ro���rp���r���r���r���� add_reinstall��s����zRPMTransaction.add_reinstallc�������������C���s"���|p t�jj}|�j|t�jj|�}d�S�)N)r���r���r���r0���r&���)r���rn���rM���rp���r���r���r���rr���$��s����zRPMTransaction.add_removec�������������C���s6���|�j�|tjj�}|�j�|tjj|d�}|�j||d��d�S�)N)rd���)r0���r���r���r(����TransactionItemAction_UPGRADEDrl���)r���r0���rn���rk���ro���rp���r���r���r����add_upgrade(��s����zRPMTransaction.add_upgradec�������������C���s^���|j�r dS�|jjrdS�y.|d�rB|j���rBtjtd�j|���dS�W�n�tk rX���dS�X�dS�)Nr���Zmodularitylabelz\No available modular metadata for modular package '{}', it cannot be installed on the systemrg���) Z _from_cmdlineZrepoZmodule_hotfixesZ_is_in_active_moduler���Zcriticalr����format� ValueError)r����hdrrP���r���r���r����_test_fail_safe-��s����zRPMTransaction._test_fail_safec�������������C���sR��d}�x0|�D��]&}�y�|j�tjjkrP|jj}||�j||j�7�}|j||d���n�|j�tjjkrp|j |jj ���n�|j�tjjkr�|jj}||�j||j�7�}|j||d���nL|j�tjjkr�|jj}||�j||j�7�}|j||d���n|j�tjj k�r|j |jj ��n�|j�tjjk�r<|jj}||�j||j�7�}|j||��n�|j�tjjk�r\|j |jj ��n�|j�tjjk�r||j |jj ��nz|j�tjjk�r�|jj}||�j||j�7�}|j||d��n@|j�tjjk�r�|j |jj ��n |j�tjjk�r�ntd|j����W�q�tjk �r2�}�ztjjtd|����W�Y�dd}~X�qX�qW�|�rNtjjtd���|S�)z!Populate the RPM transaction set.r����ur:���z%TransactionItemAction not handled: %szAn rpm exception occurred: %sNz1No available modular metadata for modular package)r!���r���r���r*���rP���Z_headerr}���Z addInstallrm���ZaddErase�idxr$���ZTransactionItemAction_OBSOLETErj���ru���ZaddReinstallrv���r&���r(���rx���Z#TransactionItemAction_REASON_CHANGE�RuntimeError�rpm�errorr���� exceptions�Errorr���)r���ZtsZmodular_problems�tsir|����er���r���r����_populate_rpm_ts;��sR����*zRPMTransaction._populate_rpm_tsc�������������C���sX���t���}xL|�D�]D}|jtjjkry|j|j��W�q�tk rN���td|���Y�qX�qW�|S�)Nz*TransactionItem is has no RPM attached: %s) rJ���r!���r���r���ZFORWARD_ACTIONSrL���rP����KeyErrorr����)r���re���r����r���r���r����install_setm��s���� zRPMTransaction.install_setc�������������C���sb���t���}xV|�D�]N}|jtjjtjjg�kry|j|j��W�q�t k rX���t d|���Y�qX�qW�|S�)Nz*TransactionItem is has no RPM attached: %s)rJ���r!���r���r���ZBACKWARD_ACTIONSr���rv���rL���rP���r����r����)r���re���r����r���r���r���� remove_sety��s���� zRPMTransaction.remove_setc�������������C���s,���dd��|�j�D��}t|�r(td�|d��S�dS�)zj Ensures all the members can be passed to rpm as they are to perform the transaction. c�������������S���s���g�|�]}|j�d�kr|�qS�)�src)r^���)r9���rP���r���r���r���r;������s����z3RPMTransaction._rpm_limitations.<locals>.<listcomp>z+Will not install a source rpm package (%s).r���N)r����r���r���)r���Zsrc_installsr���r���r����_rpm_limitations���s ���� zRPMTransaction._rpm_limitationsc����������������s�����fdd�|�D��S�)Nc����������������s���g�|�]}|j���kr|�qS�r���)r!���)r9���r����)r!���r���r���r;������s����z-RPMTransaction._get_items.<locals>.<listcomp>r���)r���r!���r���)r!���r���� _get_items���s����zRPMTransaction._get_items)N)NN)N)N)N)NN)N)N)N)r4���r5���r6���r���r?���r���r`���r0���ra���rb���ri���rl���rq���rs���rt���rw���rr���ry���r}���r�����propertyr����r����r����r����r���r���r���r���rX�������s*��� 2 rX���)Zlibdnf.transactionr���Zdnf.db.historyr���Zdnf.transactionZdnf.exceptionsZdnf.i18nr���Zdnf.utilr���r�����objectr���r7���rR���rX���r���r���r���r����<module>���s���3<<