관리-도구
편집 파일: drpm.cpython-39.opt-1.pyc
a �����!c�����������������������@���s����d�dl�mZ�d�dl�mZ�d�dlmZ�d�dlmZ�d�dlmZ�d�dl Z d�dlZ d�dlZ d�dl Z d�dlZd�dlZd�dlZdZe�d�ZG�d d ��d e jj�ZG�dd��de�ZdS�) �����)�absolute_import)�unicode_literals)�hexlify)�unlink_f)�_Nz/usr/bin/applydeltarpm�dnfc�����������������������sX���e�Zd�Z��fdd�Zdd��Z��fdd�Zdd��Zed d ���Zedd���Z d d��Z ���ZS�)�DeltaPayloadc��������������������s"���t�t|���||��||�_||�_d�S��N)�superr����__init__� delta_info�delta)�selfr���r ����pkg�progress�� __class__���,/usr/lib/python3.9/site-packages/dnf/drpm.pyr���)���s����zDeltaPayload.__init__c�����������������C���s���t�j�|�jj�S�r ���)�os�path�basenamer ����location�r���r���r���r����__str__.���s����zDeltaPayload.__str__c��������������������s2���t�t|���|||��|tjjjkr.|�j�|���d�S�r ���) r ���r����_end_cb�libdnf�repoZPackageTargetCBZTransferStatus_ERRORr����enqueue)r���ZcbdataZ lr_status�msgr���r���r���r���1���s����zDeltaPayload._end_cbc�����������������C���sh���|�j�}|j\}}t�|�}t|����}tjj� |�}|tjjj krRt�t d�|��|j|||j|jd�S�)Nzunsupported checksum type: %s)Zrelative_urlZ checksum_typeZchecksumZexpectedsizeZbase_url)r ����chksum�hawkeyZchksum_namer����decoder���r���Z PackageTargetZchecksumTypeZChecksumType_UNKNOWN�loggerZwarningr���r����downloadsizeZbaseurl)r���r ���ZctypeZcsumr ���Z ctype_coder���r���r����_target_params6���s���� �zDeltaPayload._target_paramsc�����������������C���s���|�j�jS�r ���)r ���r$���r���r���r���r���� download_sizeH���s����zDeltaPayload.download_sizec�����������������C���s���|�j�jS�r ���)r���r$���r���r���r���r���� _full_sizeL���s����zDeltaPayload._full_sizec�����������������C���s$���|�j�j}tj�|�jjjtj�|��S�r ���) r ���r���r���r����joinr���r���Zpkgdirr���)r���r���r���r���r����localPkgP���s����zDeltaPayload.localPkg)�__name__� __module__�__qualname__r���r���r���r%����propertyr&���r'���r)���� __classcell__r���r���r���r���r���(���s��� r���c�������������������@���s>���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��ZdS�)� DeltaInfoNc�������������� ���C���s����d|�_�t�ttj�rd|�_�zt�d�|�_W�n�ttfyF���d|�_Y�n0�|du�r`t j ���j|�_n||�_||�_ ||�_g�|�_i�|�_i�|�_dS�)z�A delta lookup and rebuild context query -- installed packages to use when looking up deltas progress -- progress obj to display finished delta rebuilds FT�SC_NPROCESSORS_ONLN����N)�deltarpm_installedr����access� APPLYDELTA�X_OK�sysconf� deltarpm_jobs� TypeError� ValueErrorr���ZconfZConf�deltarpm_percentage�queryr����queue�jobs�err)r���r;���r���r:���r���r���r���r���V���s����zDeltaInfo.__init__c�����������������C���s����|�j�s dS�|jjr|�jsdS�|���r(dS�tj�|����r<dS�|j |�j�d�}d}|�j j|j|j d�D�](}|�|j�}|rd|j|k�rd|j}|}qd|r�t|�|||�S�dS�)z&Turn a po to Delta RPM po, if possibleN�d���)�name�arch)r2���r���Zdeltarpmr:���Z _is_local_pkgr���r����existsr)����_sizer;����filterr@���rA���Zget_delta_from_evrZevrr$���r���)r���Zpor���ZbestZ best_deltaZipor ���r���r���r���� delta_factorym���s$����zDeltaInfo.delta_factoryc�����������������C���s����t��tjjd||d?�|d@���|�j�|�}|j}|dkrXt|j� ����t d�g|�j|<�nB|j���stt d�g|�j|<�n&t �|� ����|�j�|tjjt d���d�S�)Nzdrpm: %d: return code: %d, %d��������r���zDelta RPM rebuild failedz(Checksum of the delta-rebuilt RPM failedZdone)r#����logr����logging�SUBDEBUGr=����popr���r���r)���r���r>���ZverifyLocalPkgr����unlinkr����end�callbackZSTATUS_DRPM)r����pid�code�ploadr���r���r���r����job_done����s����� zDeltaInfo.job_donec�������������� ���C���sb���t�t�d|jj|���|j���g}tjtjg|�R���}t�t j jd|d�|dd������||�j |<�d�S�)Nz-azdrpm: spawned %d: %s� ����)r4���r���rA���r)���r����spawnl�P_NOWAITr#���rH���r���rI���rJ���r(���r=���)r���rQ���Z spawn_argsrO���r���r���r���� start_job����s������zDeltaInfo.start_jobc�����������������C���sh���|�j�r,t�dtj�\}}|sq,|��||��q�|�j�|��t|�j��|�jk�rd|�� |�j� d���|�js8qdq8d�S�)N���r���)r=���r����waitpid�WNOHANGrR���r<����append�lenr7���rW���rK���)r���rQ���rO���rP���r���r���r���r�������s����zDeltaInfo.enqueuec�����������������C���s<���|�j�r8t���\}}|��||��|�jr�|��|�j�d���q�dS�)z!Wait until all jobs have finishedr���N)r=���r����waitrR���r<���rW���rK���)r���rO���rP���r���r���r���r]�������s ����zDeltaInfo.wait)N) r*���r+���r,���r���rE���rR���rW���r���r]���r���r���r���r���r/���U���s��� r/���)Z __future__r���r���Zbinasciir���Zdnf.yum.miscr���Zdnf.i18nr���Zdnf.callbackr���Zdnf.loggingZdnf.repor!���rI���Zlibdnf.repor���r���r4���Z getLoggerr#���r���ZPackagePayloadr����objectr/���r���r���r���r����<module>���s��� -