HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //lib/python3.9/site-packages/rhn/actions/__pycache__/packages.cpython-39.pyc
a

�߾g.�@s�ddlZddlZddlZddlZddlmZddlmZddlmZddlm	Z	e�
�ZdZgd�Z
d"dd	�Zd#d
d�Zd$dd
�Zd%dd�Zd&dd�Zd'dd�Zdd�Zd(dd�Zd)dd�Zggdddfdd�Zdd�Zd d!�ZdS)*�N)�
up2dateLog)�config)�rpmUtils)�rhnPackageInfoz/var/lib/up2date/dbtimestamp)�update�remove�refresh_list�
fullUpdate�checkNeedUpdate�runTransaction�verifycsj|rddifSt|t�s"ddifSt�d|�tddd�}|j������fd	d
�|D�}t||d|d�S)z0We have been told that we should remove packagesr�no-ops for caching�
�$Invalid arguments passed to functionzCalled remove_packagesTF��load_system_repo�load_available_reposcsg|]}t�|��qS�)�_package_tup2obj)�.0�tup��	installedr�8/usr/lib/python3.9/site-packages/rhn/actions/packages.py�
<listcomp>:�zremove.<locals>.<listcomp>)r�
allow_erasing�
cache_only)	�
isinstance�list�log�	log_debug�	_dnf_base�sack�queryr�_dnf_transaction)�package_listr�base�	to_removerrrr-s


�rcCs�t|t�sddifSt�d|�tddd�}|j����}|j����}d}g}g}|D�]}t	|�dkrt|�
d�|\}	}
}}}
|
dkr�|dkr�|dkr�|
dkr�|j|	d	�r�t�d
|	�qX|dkr�d}|j|	|
d���}t
||�}|�sd
t|�}t�d|�|�
|�qX|D]R}|�|�}|dk�rDt�dt|��qXn |dk�rt�dt|��qX�q|�
|�qX|�s�|�r�ddd�|�ddd�f}n
ddif}|j��|��|St|||d�S)z:We have been told that we should retrieve/install packagesrrz
Called updateTrN��)�namezPackage %s is already installedr)r+�archz,Package %s is not available for installationzE: zPackage %s already installedz6More recent version of package %s is already installed� z-Failed: Packages failed to install properly:
�
�1�package_install_failure)�versionr+z$Requested packages already installed)�installr)rrr r!r"r#r$r�	available�len�append�filterZlatestr�_package_tup2strZlog_meZevr_cmp�join�_plugins�_unload�closer%)r&rr'rr3�errZerrmsgs�
to_install�packager+r1�release�epochr,�pkgsZ
requested_pkg�pkgZpkg_cmp�retrrrr?sp



��
�
�


�
��

rcCs�|rddifStddd�}|j����}|j����}g}g}|ddd�D]N}|\}}	t||�}
|	dkr||
r||�|
�qN|	dkrN|
sNt||�}|�|�qN|s�|s�dd	ifSt|||d|d
�S)z� Run a transaction on a group of packages.
        This was historicaly meant as generic call, but
        is only called for rollback.
    rr
Tr�packagesN�e�iz6Requested package actions have already been performed.)r2rrr)r"r#r$rr3rr5r%)Ztransaction_datarr'rr3r=r(Zpackage_objectr>�actionrB�newrrrr�s(



�rcCstddd�}t|d|d�S)z$ Update all packages on the system. Tr)�full_updater)r"r%)�forcerr'rrrr	�sr	c	Cs�|rddifSi}d}t��}|dr.|d}d|}zt�|�d}Wndd|fYS0zt�t�d}Wnd}Yn0||dkr�dd	|fS|dkr�zttd
�}|��Wndd|fYS0tdd
�S)z� Check if the locally installed package list changed, if
        needed the list is updated on the server
        In case of error avoid pushing data to stay safe
    rr
z/var/lib/rpm�dbpathz%s/Packages�zunable to stat the rpm database�
zNrpm database not modified since last update (or package list recently updated)�w+�!unable to open the timestamp file�)�rhnsd)rZinitUp2dateConfig�os�stat�LAST_UPDATE_FILE�openr;r)	rQr�datarKZcfgZRPM_PACKAGE_FILEZdbtime�last�filerrrr
�s6

�
r
cCsX|rddifSt�d�d}zt��Wntd�ddifYS0t�ddifS)	z3 push again the list of rpm packages to the server rr
zCalled refresh_rpmlistNz8ERROR: refreshing remote package list for System Profile�zError refreshing package listzrpmlist refreshed)r r!rZupdatePackageProfile�print�touch_time_stamp)rQrrCrrrr�s

rcCsjzttd�}|��WnddifYS0t��}zt�t||f�WnddtifYS0dS)NrNrrOz6unable to set the time stamp on the time stamp file %s)rUrTr;�timerR�utime)Zfile_d�trrrr[�s
��r[cCsvt�d�|rddifSi}d|d<d|d<t�|�\}}||d<t|�rld|d<d|d<||d	<d
d|fSdd|fS)
NzCalled packages.verifyrr
zpackages.verifyr+r1Zverify_infoz packages.verify.missing_packages�missing_packages�+z-packages requested to be verified are missingzpackages verified)r r!rZverifyPackagesr4)rDrrVrCr_rrrr�s


rTcCs6t��}|jjs|��|r$|��|jddd�|S)NTr)�dnfZBaser9ZpluginsZinit_pluginsZread_all_reposZ	fill_sack)rrr'rrrr"sr"Fc
Cs��zfz�|r|��n0|D]}|r|�|�q|D]}|r0|�|�q0|�|�t�d�t|j�sntj	�
d��|jjr�t�ddd�|jjD��|�|jj�|jj
r�t�ddd�|jj
D��|s�|��W�n�tj	j�y4}zFi}d|d	<d
|d<dd
t|�|fWYd}~W|j��|��Sd}~0tj	j�y�}zFi}d|d	<d|d<ddt|�|fWYd}~W|j��|��Sd}~0tj	j�y�}zFi}d|d	<d|d<ddt|�|fWYd}~W|j��|��Sd}~0tj	j
�yR}z>d}	dt|�}
i}|	|
|fWYd}~W|j��|��Sd}~00W|j��|��n|j��|��0ddifS)zE
    command is an function excpecting dnf.Base() as an argument
    zDependencies Resolvedzempty transactionzDownloading and installing: cSsg|]}t|��qSr��str�r�prrrr-rz$_dnf_transaction.<locals>.<listcomp>z
Removing: cSsg|]}t|��qSrrbrdrrrr1rr/r1r0r+r-z/Failed: Packages failed to install properly: %sNrZrpmremoveerrors�z%sZfailed_deps�z9Failed: packages requested raised dependency problems: %s)�z)Error while executing packages action: %szUpdate Succeeded)Zupgrade_allZpackage_installZpackage_remove�resolver r!r4Ztransactionra�
exceptions�ErrorZinstall_setZdownload_packagesZ
remove_setZdo_transactionZMarkingErrorrcr9r:r;Z
DepsolveError)r'r2rrIrrrBrErV�status�messagerrrr%s�



����
�

�
��	
�

�

�

r%c	Cs�|dd�\}}}}t|�dkr(|dnd}d|i}|durPt|�dkrP||d<|durlt|�dkrl||d<|dur�t|�dkr�t|�|d<|dur�t|�dkr�||d<|jfi|����}|r�|dSdS)N�r+rr1r?r@r,)r4�intr6�run)	�qrr+r1r?r@r,r$rArrrrUsrcCsD|dd�\}}}}}|sd}d||||f}|r>|d|7}|fS)z6 Create a package name from an rhn package tuple.
    N�0z%s-%s:%s-%sz.%sr)Zpackage_tup�n�v�rrE�aZpkginforrrr7gsr7)N)N)N)rN)NN)NN)N)TT)rRr\Zdnf.exceptionsraZdnf.cliZup2date_clientrrrrZinitLogr rTZ
__rhnexport__rrrr	r
rr[rr"r%rr7rrrr�<module>s0

E
 

)


�
>