HEX
Server: LiteSpeed
System: Linux w5304130.sdnsbox.com 4.18.0-425.3.1.lve.el8.x86_64 #1 SMP Tue Nov 22 22:59:23 EST 2022 x86_64
User: makefitmeserver (1001)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/dnf-plugins/__pycache__/spacewalk.cpython-36.pyc
3

��`�3�@s^ddlmZddlmZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZddl
mZddlZddlZddlZddlZddlmZddlmZd	Zed
�Zed�Zed�Zed
�Zed�Zed�Zed�Zed�Zed�Z ed�Z!ed�Z"ed�Z#Gdd�dej$�Z%Gdd�dej&j'�Z(dd�Z)Gdd�de*�Z+dd�Z,d d!�Z-dS)"�)�absolute_import)�unicode_literals)�_�loggerN)�copy)�PRIO_PLUGINCONFIG)�ustr)�
up2dateErrorsz_spacewalk.jsonzCRed Hat Satellite or Spacewalk based repositories will be disabled.z@Red Hat Satellite or Spacewalk channel support will be disabled.zLThere was an error communicating with Red Hat Satellite or Spacewalk server.zIThis system is not registered with Red Hat Satellite or Spacewalk server.z.This system is not subscribed to any channels.zSystemId could not be acquired.z%You can use rhn_register to register.zLThis system is receiving updates from Red Hat Satellite or Spacewalk server.z�For security reasons packages from Red Hat Satellite or Spacewalk based repositories can be verified only with locally installed gpg keys. GPG key '%s' has been rejected.z.Package profile information could not be sent.zIMissing required login information for Red Hat Satellite or Spacewalk: %sz>Spacewalk plugin has to be run under with the root privileges.csReZdZdZ�fdd�Zdd�Zddd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)�	SpacewalkZ	spacewalkcs�tt|�j||�||_||_tjj|jjj	t
�|_d|_i|_
t|jj�|_|j|j�|_d|jj�kr�|jjd�}x |D]\}}|jj||t�q|Wtjj�s�tjt�d|j_|jjs�dStjd�|j�dS)NF�mainzinitialized Spacewalk plugin)�superr
�__init__�base�cli�os�path�join�confZ
persistdir�STORED_CHANNELS_NAME�stored_channels_path�connected_to_spacewalk�up2date_cfgrZread_config�parser�sections�items�
_set_valuer�dnf�utilZ	am_i_rootr�warning�MUST_BE_ROOT�enabled�debug�activate_channels)�selfrr�options�key�value)�	__class__��/usr/lib/python3.6/spacewalk.pyr
:s(


zSpacewalk.__init__cCs|jjsdSd|jj_dS)NT)rr rZdemandsZ	root_user)r#r(r(r)�configQszSpacewalk.configTc)Csdi}d}d}d}d}|j�}|s(|}�nvtjj�|_t|j�}|jdf}ytjj|jj	d�}Wn2t
jk
r�}ztj
dtt|�dSd}~XnX|s�tj
dtt�|ji�dSytjj|jj	d�}	Wn�t
jk
�r�}ztj
dtt|�dSd}~XnXt
jk
�r,tj
dtt�|ji�dSt
jk
�rTtj
dtttt�dSXd|_tjt�x,|	D]$}
|
d�rlt|
j��||
d	<�qlW|j|�|j j!}x�|j�D]�\}}
|j"|�}d}|�r�|j"d�}t#|j�}||j$j%�k�r|j$j|�}x |D]\}}|j&||t'��qWt(|
|j j||j	|||||j)|j*d
�	�}|j+|��q�Wtj,|�dS)NrZuseNoSSLForPackages)�timeoutz%s
%s
%sz%s
%sz%s %s
%s
%sT�version�label)	r�proxyr+�	sslcacert�
force_http�cached_version�
login_info�gpgcheckr )-�_read_channels_file�up2date_clientr*ZinitUp2dateConfigr�get_ssl_ca_certZup2dateAuthZgetLoginInforr+r	�RhnServerExceptionr�error�COMMUNICATION_ERROR�RHN_DISABLED�NOT_REGISTERED_ERROR�_write_channels_fileZ
rhnChannelZgetChannelDetailsZCommunicationErrorZNoChannelsError�NOT_SUBSCRIBED_ERROR�CHANNELS_DISABLEDZNoSystemIdError�NO_SYSTEM_ID_ERROR�USE_RHNREGISTERr�info�UPDATES_FROM_SPACEWALK�dictrr�repos�getrrrrr�
SpacewalkRepor3r �addr!)r#Z
networkingZenabled_channelsr/r0Z	proxy_urlr2Zcached_channels�eZsvrChannels�channelrDZ
channel_idZchannel_dictZcached_channelr1rr$r%r&�repor(r(r)r"Vs~










zSpacewalk.activate_channelscCs�|jjsdS|jsdS|jddkr8|j�}tjj|�ytjj|jj	d�Wn4t
jk
r�}ztj
dtt|�WYdd}~XnXdS)z, Update system's profile after transaction. NZwriteChangesToLog�)r+z%s
%s
%s)rr rr�_make_package_deltar5ZrhnPackageInfoZlogDeltaPackagesZupdatePackageProfiler+r	r7rr8r9�PROFILE_NOT_SENT)r#�deltarHr(r(r)�transaction�szSpacewalk.transactioncCs�y.t|jd��}|j�}tj|�}|SQRXWnXttfk
rb}z|jtjkrR�WYdd}~Xn&tj	j
k
r�}zWYdd}~XnXiS)N�r)�openr�read�json�loads�FileNotFoundError�IOError�errno�ENOENT�decoderZJSONDecodeError)r#�
channels_fileZcontentZchannelsrHr(r(r)r4�s
zSpacewalk._read_channels_filecCsfy,t|jd��}tj||dd�WdQRXWn4ttfk
r`}z|jtjkrP�WYdd}~XnXdS)N�w�)�indent)rQrrS�dumprUrVrWrX)r#�varrZrHr(r(r)r<�szSpacewalk._write_channels_filecCs.dd�|jjjD�dd�|jjjD�d�}|S)NcSs$g|]}|j|j|j|j|jf�qSr()�namer,�release�epoch�arch)�.0�pr(r(r)�
<listcomp>�sz1Spacewalk._make_package_delta.<locals>.<listcomp>cSs$g|]}|j|j|j|j|jf�qSr()r`r,rarbrc)rdrer(r(r)rf�s)ZaddedZremoved)rrOZinstall_setZ
remove_set)r#rNr(r(r)rL�s
zSpacewalk._make_package_delta)T)�__name__�
__module__�__qualname__r`r
r*r"rOr4r<rL�
__classcell__r(r()r'r)r
6s
Mr
csDeZdZdZdddddgZ�fdd�Zd	d
�Zd�fdd
�	Z�ZS)rFzB
    Repository object for Spacewalk. Uses up2date libraries.
    zX-RHN-Server-IdzX-RHN-Auth-User-Idz
X-RHN-AuthzX-RHN-Auth-Server-TimezX-RHN-Auth-Expire-OffsetcsTtt��jt|d�|jd��t|d��_�fdd�|dD��_|jd��_|jd��_yt	|d	��_
Wn<tk
r�}z tj
ttjj|��g�_
WYdd}~XnX|d
|jd�kr�d�_|jd
��_d�_d�_d�_d�_|jd��_|jd��_|jd��_|jd��r$�j�n�j�t�d��rP�j�}|�rP�j|�dS)Nr-rr`csg|]}|d�j�qS)z	/GET-REQ/)�id)rd�url)r#r(r)rf�sz*SpacewalkRepo.__init__.<locals>.<listcomp>rlr/r.Zgpg_key_urlr,r1rKr2rr+r3r0r �set_http_headers) rrFr
rrEr`Zbaseurlr/r.�get_gpg_key_urlsZgpgkey�InvalidGpgKeyLocationrr�GPG_KEY_REJECTEDrZi18nZucdZmetadata_expirer2Z	keepaliveZ	bandwidthZretriesZthrottler+r3r0�enable�disable�hasattr�create_http_headersrm)r#rIZoptsrH�http_headers)r')r#r)r
�s8
zSpacewalkRepo.__init__cCs|g}xb|jD]X}||jkr.t|}tjj|��|j|dkrL|jd|�q|jd||j|f�qW|jsx|jd�|S)N�z*%s: 
X-libcurl-Empty-Header-Workaround: *z%s: %sz.X-RHN-Transport-Capability: follow-redirects=3)Nrv)�needed_headersr2�MISSING_HEADERr�ErrorZ	RepoError�appendr0)r#ru�headerr8r(r(r)rts

z!SpacewalkRepo.create_http_headersTcs0tt|�j||�}|j�}|r,|jtj|�|S)N)rrF�_handle_new_remotertZsetopt�librepoZLRO_HTTPHEADER)r#ZdestdirZmirror_setupZhandleru)r'r(r)r|s
z SpacewalkRepo._handle_new_remote)T)	rgrhri�__doc__rwr
rtr|rjr(r()r'r)rF�s%rFcCs*|j�}x|D]}t|�st|��qW|S)a
    Parse the key urls and validate them.

    key_url_string is a space seperated list of gpg key urls that must be
    located in /etc/pkg/rpm-gpg/.
    Return a list of strings containing the key urls.
    Raises InvalidGpgKeyLocation if any of the key urls are invalid.
    )�split�is_valid_gpg_key_urlro)Zkey_url_stringZkey_urls�key_urlr(r(r)rn s
	
rnc@seZdZdS)roN)rgrhrir(r(r(r)ro/srocCsP|jd�}t|�dkrdS|\}}|j�dkr2dStjj|�}|jd�sLdSdS)Nz://�F�filez/etc/pki/rpm-gpg/T)r�len�lowerrr�normpath�
startswith)r�Zproto_split�protorr(r(r)r�2s

r�cCs4d|ko|dst�|d}t|�tkr0|dS|S)NZ	sslCACertr)ZBadSslCaCertConfig�type�list)rZca_certsr(r(r)r6@sr6).Z
__future__rrZdnfpluginscorerrrZdnf.exceptionsrWrSr}rrZdnf.conf.configrZup2date_client.up2dateAuthr5Zup2date_client.configZup2date_client.rhnChannelZup2date_client.rhnPackageInfoZrhn.i18nrr	rr:r>r9r;r=r?r@rBrprMrxrZPluginr
rJZReporFrn�	Exceptionror�r6r(r(r(r)�<module>sHM