Mini Shell

Direktori : /usr/lib64/python3.6/site-packages/reportclient/__pycache__/
Upload File :
Current File : //usr/lib64/python3.6/site-packages/reportclient/__pycache__/dnfdebuginfo.cpython-36.opt-1.pyc

3


�$`P�@s�ddlZddlZddlZddlmZmZddlmZmZm	Z	m
Z
mZddlm
Z
mZmZddlmZGdd�dejj�ZGdd	�d	e�ZdS)
�N)�
DownloadError�	RepoError)�	STATUS_OK�STATUS_DRPM�STATUS_ALREADY_EXISTS�
STATUS_MIRROR�
STATUS_FAILED)�_�log1�log2)�DebugInfoDownloadcs4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	�DNFProgresscstt|�j�||_dS)N)�superr
�__init__�observer)�selfr)�	__class__��$/usr/lib64/python3.6/dnfdebuginfo.pyr$szDNFProgress.__init__cCsj|tttgkr"|jjt|�d�nD|tkr<td|p4d�n*|tkrVt	d|pNd�nt
jjd|�dS)N�dzMirror failed: %sz DNF did not provide more detailszDownloading failed: %sz Unknown DNF download status: %s
)
rrrr�update�strrr
rr�sys�stderr�write)r�payloadZstatus�msgrrr�end)szDNFProgress.endcCs,td�|jjt|�td||j��dS)NzUpdated a packager)rrrr�intZ
download_size)rr�donerrr�progress9szDNFProgress.progresscCstd�dS)Nz Started downloading of a package)r)rZtotal_filesZ
total_sizerrr�start=szDNFProgress.start)�__name__�
__module__�__qualname__rrr r!�
__classcell__rr)rrr
"sr
csFeZdZd�fdd�	Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z�Z	S)�DNFDebugInfoDownload�*debug*FTNcsBtt|�j|||||�d|_tj�|_|dk	r>||jjjd<dS)N�
releasever)	rr&rr �dnfZBase�baseZconfZ
substitutions)r�cacheZtmp�repo_patternZ	keep_rpmsZnoninteractiver()rrrrCs

zDNFDebugInfoDownload.__init__cCsPy|jj�Wn<tjjk
rJ}zttd�jt|���WYdd}~XnXdS)Nz/Error reading repository configuration: '{0!s}')	r*Zread_all_reposr)�
exceptions�Error�printr	�formatr)r�exrrr�prepareUszDNFDebugInfoDownload.preparecCst|�|_dS)N)r
r )rZupdaterrrr�initialize_progress[sz(DNFDebugInfoDownload.initialize_progresscCs�x|jjj�D]}|j�qWx&|jjj|j�D]}d|_|j�q0Wy|jj�Wn8t	k
r�}zt
td�jt
|���WYdd}~XnXdS)NTz&Error setting up repositories: '{0!s}')r*Zrepos�all�disableZget_matchingr,Zskip_if_unavailable�enableZ	fill_sackrr/r	r0r)rZrepor1rrr�initialize_repositories^sz,DNFDebugInfoDownload.initialize_repositoriesc
s0|jjj�}|j�}i}g}d}d}�fdd��x�|D]�}g}	|j|d�}
|
sdtd|�|j|�q6|	j|
d�|
djrĈ||
d|
d�}x2|D]*}||	kr�|	j|�tdj||
d��q�WxZ|	D]R}||j	�kr�||j|�n&|g||<|t
|j�7}|t
|j�7}td||�q�Wq6W||||fS)Nrcs\g}|jrX|j|j|jd�}x:|D]2}|j|jkr"||kr"|j|�|�|||�7}q"W|S)z�
            Recursive function to find all required packages of required packages of ...
              origin - should stop infinite recursion (A => B => ... => X => A)
            )Zprovides�arch)�requires�filterr8�name�append)�query�package�originZrequired_pkg_listZpkg_reqs�p)�required_packagesrrrAts

z6DNFDebugInfoDownload.triage.<locals>.required_packages)�fileznot found package for %sz"found required package {0} for {1}zfound packages for %s: %s)
r*Zsackr=Z	availabler:rr<r9r0�keys�floatZdownloadsizeZinstallsize)
r�filesZ	dnf_queryZ
dnf_availableZpackage_files_dictZ	not_foundZtodownload_sizeZinstalled_sizeZdebuginfo_pathZdi_package_listZpackagesZpackage_reqs�pkgr)rAr�triagels8






zDNFDebugInfoDownload.triagecCsLy|jj|g|j�Wn(tk
r>}zdt|�fSd}~XnX|j�dfS)N)r*Zdownload_packagesr rrZlocalPkg)rrFr1rrr�download_package�s
z%DNFDebugInfoDownload.download_package)r'FTN)
r"r#r$rr2r3r7rGrHr%rr)rrr&As4r&)rr)Zdnf.rpmZdnf.exceptionsrrZdnf.callbackrrrrrZreportclientr	r
rZreportclient.debuginfor�callbackZDownloadProgressr
r&rrrr�<module>s