File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/livepatch.cpython-310.pyc
o
    ��Jh�7  �                   @   s�   d dl Z d dlmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZm
Z
mZmZ d dlmZmZ d dlmZ d dlmZ ddgZd	d
d�Ze�� Ze �e�e��ZG dd
� d
e�Zdd� Z dS )�    N)�Any�Dict�Optional�Tuple)	�api�event_logger�
exceptions�http�	livepatch�messages�snap�system�util)�EntitlementWithMessage�
UAEntitlement)�ApplicationStatus)�StaticAffordanceg      �?g      �?z)Invalid Auth-Token provided to livepatch.z2Your running kernel is not supported by Livepatch.)zUnknown Auth-Tokenzunsupported kernelc                	       sF  e Zd ZejjZdZejZ	ej
ZejZ
dZdZdZdZedeedf fdd��Zedeedf fdd	��Zdefd
d�Zdefdd
�Zdejdefdd�Z		d"dejdededefdd�Zdejfdd�Z dee!e"ej# f fdd�Z$deee"ej# f fdd�Z%dd� Z&	d#de'e(e)f de'e(e)f dedef� fd d!�
Z*�  Z+S )$�LivepatchEntitlementr
   FT�return.c                 C   s0   ddl m} ddlm} t|tj�t|tj�fS )Nr   ��FIPSEntitlement)�RealtimeKernelEntitlement)�uaclient.entitlements.fipsr   �uaclient.entitlements.realtimer   r   r   �LIVEPATCH_INVALIDATES_FIPS�REALTIME_LIVEPATCH_INCOMPATIBLE)�selfr   r   � r   �A/usr/lib/python3/dist-packages/uaclient/entitlements/livepatch.py�incompatible_services,   s   ���z*LivepatchEntitlement.incompatible_servicesc                    s\   ddl m} || jd�}t|�� d tjk�� tjj	| j
d�dd� dftj� fdd�dffS )	Nr   r   )�cfg)�titlec                   S   s   t �� p	t �� dkS )N�wsl)r
   �is_container�
get_virt_typer   r   r   r   �<lambda>K   s    z9LivepatchEntitlement.static_affordances.<locals>.<lambda>Fc                      s   � S �Nr   r   ��is_fips_enabledr   r   r%   Q   s    )r   r   r    �bool�application_statusr   �ENABLEDr   �"SERVICE_ERROR_INSTALL_ON_CONTAINER�formatr!   �!LIVEPATCH_ERROR_WHEN_FIPS_ENABLED)r   r   �fips_entr   r'