MOON
Server: Apache
System: Linux server2.shieldcogroup.com 3.10.0-1160.119.1.el7.tuxcare.els12.x86_64 #1 SMP Fri Nov 8 05:49:38 UTC 2024 x86_64
User: jacom (1029)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //etc/leapp/repos.d/system_upgrade/common/libraries/kernel.pyo
�
��ic@s�ddlmZddlmZddlmZmZmZedd�Zd
dgZ	de
fd
��YZd�Zd�Z
d�Zd�ZdS(i����(t
namedtuple(tStopActorExecutionError(tapitCalledProcessErrortrunt
KernelPkgInfotnametversiontreleasetarchtnevraskernel-uname-rskernel-rt-uname-rt
KernelTypecBseZdZdZRS(tordinarytrealtime(t__name__t
__module__tORDINARYtREALTIME(((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyRsc
Cs�|jd�}|d}t|�dkr5|dnd}||f}|d	kr�itjd6}xm|j�D]\}}||krp|SqpWn@itjd6}x-|j�D]\}	}|j|	�r�|Sq�WtjS(
s'
    Determine kernel type from given kernel release (uname-r).

    :param str rhel_version: Version of RHEL for which the kernel with the uname-r is targeted.
    :param str kernel_uname_r: Kernel release (uname-r)
    :returns: Kernel type based on a given uname_r
    :rtype: KernelType
    t.iit0t9t2s.rts+rt(RR(tsplittlenRRtitemstendswithR(
trhel_versiontkernel_uname_rtversion_fragmentst	major_vert	minor_vertuname_r_infixestinfixtkernel_typetuname_r_suffixestsuffix((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyt determine_kernel_type_from_unames 	
"

cCs�tddd|gdtdd�dd��d	}xZ|D]R}d
|krSq;n|jd
d�\}}|j�}|tkr;|j�Sq;WdS(
s:
    Get kernel release (uname-r) provided by a given kernel package.

    Calls the ``rpm`` command internally and might raise CalledProcessError if the rpm query fails.

    :param str kernel_pkg_nevra: NEVRA of an installed kernel package
    :returns: uname-r provided by the given package
    :rtype: str
    trpms-qs
--providesRtcallback_rawcSsdS(N(tNone(tfdtvalue((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyt<lambda>>stcallback_linebufferedcSsdS(N(R'(R(R)((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyR*?ststdoutt=it(RtTrueRtstriptKERNEL_UNAME_R_PROVIDES(tkernel_pkg_nevratprovidestprovide_linetprovideR)((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyt"get_uname_r_provided_by_kernel_pkg2s
	
cCsid}tddd||g�dj�jd�}td|dd	|d
d|dd
|dd|�S(sO
    Query the RPM database for information about the given kernel package.

    Calls the ``rpm`` command internally and might raise CalledProcessError if the rpm query fails.

    :param str kernel_pkg_nevra: NEVRA of an installed kernel package
    :returns: Information about the given kernel package
    :rtype: KernelPkgInfo
    s&%{NAME}|%{VERSION}|%{RELEASE}|%{ARCH}|R%s-qs
--queryformatR,t|RiRiRiR	iR
(RR0RR(R2tquery_formattpkg_info((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pytget_kernel_pkg_infoJs
..cCs�g}xOtD]G}y*|tddd|gdt�d7}Wq
tk
rSq
q
Xq
Wt|�}xO|D]G}t|�}|s�tj�jd|�n||krkt	|�SqkWt
dd��d	S(
st
    Identify the kernel package providing a kernel with the given kernel release (uname-r).

    Raises ``StopActorExecutionError`` if no package provides given uname_r or if the internal rpm query fails.
    :param str uname_r: NEVRA of an installed kernel package
    :returns: Information about the kernel package providing given uname_r
    :rtype: KernelPkgInfo
    R%s-qs--whatprovidesRR,s'Failed to obtain uname-r provided by %stmessages~Unable to obtain kernel information of the booted kernel: no package is providing the booted kernel release returned by uname.N(R1RR/RtsetR6Rtcurrent_loggertwarningR:R(tuname_rtkernel_pkg_nevrastkernel_uname_r_provideR2tprovided_uname((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pytget_kernel_pkg_info_for_uname_rZs	
*

N(snamesversionsreleasesarchsnevra(tcollectionsRtleapp.exceptionsRtleapp.libraries.stdlibRRRRR1tobjectRR$R6R:RC(((sR/usr/share/leapp-repository/repositories/system_upgrade/common/libraries/kernel.pyt<module>s	!