HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/realtime.cpython-310.pyc
o

��Jhn�@s�ddlZddlmZmZmZmZmZddlmZm	Z	m
Z
mZmZddl
mZddlmZmZddlmZmZmZe	��Ze�e�e��ZddiZGd	d
�d
ej�ZGdd�de�ZGd
d�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#dS)�N)�Any�Dict�Optional�Tuple�Type)�apt�event_logger�messages�system�util)�repo)�EntitlementWithMessage�
UAEntitlement)�MessagingOperations�MessagingOperationsDict�StaticAffordance�GenuineIntel�intelc@s�eZdZdZejZejZej	Z
ejjZ
dZdZdZdZdZdefdd�Zdeeeeffd	d
�Zedd��Zedeed
ffdd��Zedeed
ffdd��Z ede!fdd��Z"ddd�Z#dS)�RealtimeKernelEntitlementzrealtime-kernelzubuntu-pro-realtime-kernel.gpgTF�UbuntuRealtimeKernel�returncCs(tjt|j�tdg�d�}t�|�|S)z%Check if system needs to be rebooted.zlinux-.*-realtime)�installed_pkgs�installed_pkgs_regex)r
�
should_reboot�set�packages�event�needs_reboot)�self�reboot_required�r �@/usr/lib/python3/dist-packages/uaclient/entitlements/realtime.py�_check_for_reboots�
z+RealtimeKernelEntitlement._check_for_rebootcCstjttjttjttjtiS�N)�GenericRealtime�variant_name�NvidiaTegraRealtime�RaspberryPiRealtime�IntelIotgRealtime�rr r r!�
_get_variants(s
�z'RealtimeKernelEntitlement._get_variantscCs|jrdStSr#)�access_onlyr$r)r r r!�default_variant0sz)RealtimeKernelEntitlement.default_variant.cCs>ddlm}m}ddlm}t|tj�t|tj�t|tj	�fS)Nr)�FIPSEntitlement�FIPSUpdatesEntitlement)�LivepatchEntitlement)
�uaclient.entitlements.fipsr-r.�uaclient.entitlements.livepatchr/r
r	�REALTIME_FIPS_INCOMPATIBLE�"REALTIME_FIPS_UPDATES_INCOMPATIBLE�REALTIME_LIVEPATCH_INCOMPATIBLE)rr-r.r/r r r!�incompatible_services6s����z/RealtimeKernelEntitlement.incompatible_servicescCstjdd�dffS)NcSst��Sr#)r
�is_containerr r r r!�<lambda>Psz>RealtimeKernelEntitlement.static_affordances.<locals>.<lambda>F)r	�#REALTIME_ERROR_INSTALL_ON_CONTAINERr)r r r!�static_affordancesKs
��z,RealtimeKernelEntitlement.static_affordancescCsDd}|jstjtjdd�fg}d}|jstjdtjifg}||d�S)NT)�msg�defaultr:)�
pre_enable�pre_disable)r+r�prompt_for_confirmationr	�REALTIME_PROMPT�purge�REALTIME_PRE_DISABLE_PROMPT)rr<r=r r r!�	messagingUs$���
���
�z#RealtimeKernelEntitlement.messagingNcCs@t|j��tt����}|rt�t|�tjj	|j
d��dSdS)N)�title)rr�intersectionr�get_installed_packages_names�remove_packages�listr	�DISABLE_FAILED_TMPL�formatrC)rrr r r!rFus

���z)RealtimeKernelEntitlement.remove_packages)rN)$�__name__�
__module__�__qualname__�namer	�REALTIME_TITLErC�REALTIME_DESCRIPTION�description�REALTIME_HELP_TEXT�	help_text�urls�REALTIME_HOME_PAGE�help_doc_url�
repo_key_file�apt_noninteractive�supports_access_only�supports_purge�origin�boolr"r�strrrr*�propertyr,rr
r5rr9rrBrFr r r r!rs0	
	�rcs.eZdZedeedff�fdd��Z�ZS)�RealtimeVariantr.cs(t�fdd��j��D��}t�j|S)Ncs*g|]\}}t|tjj�j|jd���qS))�service�variant)r
r	�REALTIME_VARIANT_INCOMPATIBLErIrC)�.0rM�clsr)r r!�
<listcomp>�s����z9RealtimeVariant.incompatible_services.<locals>.<listcomp>)�tuple�other_variants�items�superr5)r�incompatible_variants��	__class__r)r!r5�s
��z%RealtimeVariant.incompatible_services)rJrKrLr]rr
r5�
__classcell__r r rjr!r^�s$r^cs>eZdZdZejZejZdZ	dZ
edef�fdd��Z
�ZS)r$�genericTrcsdt�j}t��j}|dkr0|�d�pg}tjj|j	|j
d|pdd�}|�tj
d|if�||d<|S)Nrmr<�unknown)r`r_�base_flavor�current_flavorr:)rhrBr
�get_kernel_info�flavor�getr	�#KERNEL_FLAVOR_CHANGE_WARNING_PROMPTrIr%rM�appendrr>)rrBrpr<r:rjr r!rB�s"
���zGenericRealtime.messaging)rJrKrLr%r	�REALTIME_GENERIC_TITLErC�REALTIME_GENERIC_DESCRIPTIONrP�
is_variant�check_packages_are_installedr]rrBrlr r rjr!r$�s�r$c@s$eZdZdZejZejZdZ	dZ
dS)r&znvidia-tegraTN)rJrKrLr%r	�REALTIME_NVIDIA_TITLErC�REALTIME_NVIDIA_DESCRIPTIONrPrxryr r r r!r&�sr&c@s2eZdZdZejZejZdZ	dZ
defdd�ZdS)r'�raspiTrc
Cs\d}zt�|�����}d|vpd|vWSty-}z
t�d|�WYd}~dSd}~ww)Nz/proc/device-tree/modelzraspberry pi 4zraspberry pi 5z)Error while detecting if raspberry pi: %rF)r
�	load_file�strip�lower�	Exception�LOG�info)r�proc_file_path�model�er r r!�variant_auto_select�s��z'RaspberryPiRealtime.variant_auto_selectN)
rJrKrLr%r	�REALTIME_RASPI_TITLErC�REALTIME_RASPI_DESCRIPTIONrPrxryr[r�r r r r!r'�sr'c@sLeZdZdZejZejZdZ	dZ
deee
fdeeeejffdd�ZdS)r(z
intel-iotgT�platform_checksrcCsPt��jpd}t�||�}|�dg�}||vrdSdtjj|j|d�	|�d�fS)N��cpu_vendor_ids)TNF�,)rC�vendor�supported_vendors)
r
�get_cpu_info�cpuinfo_vendor_id�CPU_VENDOR_MAPrsr	�INAPPLICABLE_VENDOR_NAMErIrC�join)rr��	vendor_idr�r r r!�verify_platform_checks�s�z(IntelIotgRealtime.verify_platform_checksN)rJrKrLr%r	�REALTIME_INTEL_TITLErC�REALTIME_INTEL_DESCRIPTIONrPrxryrr\rrr[r�NamedMessager�r r r r!r(�s
��r()$�logging�typingrrrrr�uaclientrrr	r
r�uaclient.entitlementsr�uaclient.entitlements.baser
r�uaclient.typesrrr�get_event_loggerr�	getLogger�replace_top_level_logger_namerJr�r��RepoEntitlementrr^r$r&r'r(r r r r!�<module>sm