�
�Hcf � �& � d dl mZmZmZmZmZ d dlmZmZm Z m
Z
mZ d dlm
Z
d dlmZmZ d dlmZmZmZ ej* � Z G d� de
j. � Z G d� d e� Z G d
� de� Z G d� d
e� Z G d� de� Z G d� de� Zy)� )�Any�Dict�Optional�Tuple�Type)�apt�event_logger�messages�system�util)�repo)�EntitlementWithMessage�
UAEntitlement)�MessagingOperations�MessagingOperationsDict�StaticAffordancec � � e Zd ZdZej
Zej Zej Z
ej j Z
dZdZdZdZdZdefd�Zdeeee f fd�Zedeed f fd
�� Zedeed f fd�� Zede fd�� Z!dd�Z"y
)�RealtimeKernelEntitlementzrealtime-kernelzubuntu-pro-realtime-kernel.gpgTF�UbuntuRealtimeKernel�returnc � � t j t | j � t dg� �� }t j |� |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_requireds �@/usr/lib/python3/dist-packages/uaclient/entitlements/realtime.py�_check_for_rebootz+RealtimeKernelEntitlement._check_for_reboot s@ � � �.�.��t�}�}�-�!$�&9�%:�!;�
�� ���?�+��� c � � t j t t j t t j t t j t iS �N)�GenericRealtime�variant_name�NvidiaTegraRealtime�RaspberryPiRealtime�IntelIotgRealtime�r s r! �
_get_variantsz'RealtimeKernelEntitlement._get_variants$ s; � ��(�(�/��,�,�.A��,�,�.A��*�*�,=�
�
r# .c � � ddl m}m} ddlm} t |t j � t |t j � t |t j � fS )Nr )�FIPSEntitlement�FIPSUpdatesEntitlement)�LivepatchEntitlement)
�uaclient.entitlements.fipsr. r/ �uaclient.entitlements.livepatchr0 r r
�REALTIME_FIPS_INCOMPATIBLE�"REALTIME_FIPS_UPDATES_INCOMPATIBLE�REALTIME_LIVEPATCH_INCOMPATIBLE)r r. r/ r0 s r! �incompatible_servicesz/RealtimeKernelEntitlement.incompatible_services, sW � �
� I�
#���!D�!D�
�
#�&��;�;�
�
#�$�h�&N�&N�
�
�
r# c �, � t j d� dffS )Nc �* � t j � S r% )r �is_container� r# r! �<lambda>z>RealtimeKernelEntitlement.static_affordances.<locals>.<lambda>F s � ��+�+�-� r# F)r
�#REALTIME_ERROR_INSTALL_ON_CONTAINERr+ s r! �static_affordancesz,RealtimeKernelEntitlement.static_affordancesA s" |