File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/livepatch.cpython-310.pyc
o
nHJe�2 � @ s� d dl Z d dlmZmZmZmZ d dlmZmZm Z m
Z
mZmZm
Z
mZ d dlmZmZ d dlmZ d dlmZ ddgZd d
d�Ze�� Ze �e�e��ZG dd
� d
e�Zdd� ZdS )� N)�Any�Dict�Optional�Tuple)�event_logger�
exceptions�http� livepatch�messages�snap�system�util)�IncompatibleService�
UAEntitlement)�ApplicationStatus)�StaticAffordanceg �?g �?z)Invalid Auth-Token provided to livepatch.z2Your running kernel is not supported by Livepatch.)zUnknown Auth-Tokenzunsupported kernelc s e Zd ZejjZdZejZ ej
ZejZ
dZdZdZdZedeedf fdd��Zedeedf fdd ��Zdd
edefdd�Z dd
ededefdd�Zddd�Zdeeeej f fdd�Zdeeeej f fdd�Z dd� Z! dde"e#e$f de"e#e$f dedef� fdd�
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 sZ ddl m} || j�}t|�� d tjk�� tjj | j
d�dd� dftj� fdd�dffS )Nr r ��titlec S s t �� S �N)r �is_containerr r r r �<lambda>J s z9LivepatchEntitlement.static_affordances.<locals>.<lambda>Fc s � S r! r r ��is_fips_enabledr r r# O s )r r �cfg�bool�application_statusr �ENABLEDr
�"SERVICE_ERROR_INSTALL_ON_CONTAINER�formatr �!LIVEPATCH_ERROR_WHEN_FIPS_ENABLED)r r �fips_entr r$ r �static_affordances: s
���
��z'LivepatchEntitlement.static_affordances�silentc
C sJ t �� st�tjjdd�� t �� t �� sLt�tjjdd�� zt � d� W n$ t
jyK } ztj
d|d� t�tjjdd�� W Y d}~nd}~ww t �� t�d | jjtj�}t�d
| jjtj�}t j||t jd� t�� s�t�tjjdd�� zt � d
� W n t
jy� } zt
jt|�d��d}~ww t�||� | jddd�S )zYEnable specific entitlement.
@return: True on success, False otherwise.
�snapd)�packagesz
snapd snapz!Failed to install snapd as a snap��exc_infozsnap install snapd)�commandNr �https)�
http_proxy�https_proxy�retry_sleepszcanonical-livepatch snapzcanonical-livepatch�� error_msgT��process_directives�
process_token)r �is_snapd_installed�event�infor
�INSTALLING_PACKAGESr+ �
install_snapd�is_snapd_installed_as_a_snap�install_snapr �ProcessExecutionError�LOG�warning�EXECUTING_COMMAND_FAILED�run_snapd_wait_cmdr �validate_proxyr&