Edit File: drpm.cpython-36.opt-1.pyc
3 �ft`�������������������@���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�dlZdZejd�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|��j||��||�_||�_d�S�)N)�superr����__init__� delta_info�delta)�selfr���r����pkg�progress)� __class__���/usr/lib/python3.6/drpm.pyr ���)���s����zDeltaPayload.__init__c�������������C���s���t�jj|�jj�S�)N)�os�path�basenamer����location)r ���r���r���r����__str__.���s����zDeltaPayload.__str__c����������������s2���t�t|��j|||��|tjjjkr.|�jj|���d�S�)N) r ���r����_end_cb�libdnf�repoZPackageTargetCBZTransferStatus_ERRORr����enqueue)r ���ZcbdataZ lr_status�msg)r���r���r���r���1���s����zDeltaPayload._end_cbc�������������C���sh���|�j�}|j\}}tj|�}t|�j��}tjjj |�}|tjjj krRtjt 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�)N)r���r!���)r ���r���r���r���� download_sizeH���s����zDeltaPayload.download_sizec�������������C���s���|�j�jS�)N)r���r!���)r ���r���r���r���� _full_sizeL���s����zDeltaPayload._full_sizec�������������C���s$���|�j�j}tjj|�jjjtjj|��S�)N) 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|�_�tjttj�rd|�_�ytjd�|�_W�n�ttfk rH���d|�_Y�nX�|dkrbt j 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 ���r8���r���r7���r���r���r���r ���V���s����zDeltaInfo.__init__c�������������C���s����|�j�s dS�|jj�s|�j�r dS�|j��r,dS�tjj|j���r@dS�|j |�j�d�}d}x@|�j j|j|j d�D�](}|j|j�}|rj|j|k�rj|j}|}qjW�|r�t|�|||�S�dS�)z&Turn a po to Delta RPM po, if possibleN�d���)�name�arch)r/���r���Zdeltarpmr7���Z _is_local_pkgr���r����existsr&���Z_sizer8����filterr=���r>���Zget_delta_from_evrZevrr!���r���)r ���Zpor���ZbestZ best_deltaZipor���r���r���r���� delta_factorym���s$����zDeltaInfo.delta_factoryc�������������C���s����t�jtjjd||d?�|d@���|�jj|�}|j}|dkrXt|jj ����t d�g|�j|<�nB|jj��stt d�g|�j|<�n&t j|j ����|�jj|tjjt d���d�S�)Nzdrpm: %d: return code: %d, %d��������r���zDelta RPM rebuild failedz(Checksum of the delta-rebuilt RPM failed�done)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���s`���t�t�d|jj|j��|jj��g}tjtjf|���}tjt j jd|dj|dd������||�j |<�d�S�)Nz-azdrpm: spawned %d: %s� ����)r1���r���r>���r&���r����spawnl�P_NOWAITr ���rE���r���rF���rG���r%���r:���)r ���rN���Z spawn_argsrL���r���r���r���� start_job����s����zDeltaInfo.start_jobc�������������C���sp���x.|�j�r.tjdtj�\}}|s P�|�j||��qW�|�jj|��x.t|�j��|�jk�rj|�j |�jj d���|�js>P�q>W�d�S�)NrQ���r������)r:���r����waitpid�WNOHANGrO���r9����append�lenr4���rT���rH���)r ���rN���rL���rM���r���r���r���r�������s����zDeltaInfo.enqueuec�������������C���s@���x:|�j�r:tj��\}}|�j||��|�jr|�j|�jjd���qW�dS�)z!Wait until all jobs have finishedr���N)r:���r����waitrO���r9���rT���rH���)r ���rL���rM���r���r���r���rZ�������s ����zDeltaInfo.wait)N) r'���r(���r)���r ���rA���rO���rT���r���rZ���r���r���r���r���r,���U���s��� r,���)Z __future__r���r���Zbinasciir���Zdnf.yum.miscr���Zdnf.i18nr���Zdnf.callbackr���Zdnf.loggingZdnf.repor���rF���Zlibdnf.repor���r���r1���Z getLoggerr ���r���ZPackagePayloadr����objectr,���r���r���r���r����<module>���s��� -