File: //lib/python3/dist-packages/uaclient/__pycache__/security_status.cpython-310.pyc
o
    ��g�h  �                   @   s�  d dl mZ d dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZm
Z
mZmZ d dlZd dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZ d dl m!Z! d d
l"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z. dZ/G dd� de�Z0dd� Z1edd�dd� �Z2dedeej3 f fdd�Z4dej3dej5de6fdd�Z7edd�d e6d!e6de8fd"d#��Z9d$e6d%e
e6ef d!ej:de6fd&d'�Z;d(eej3 dee6eeej:e6f  f fd)d*�Z<d+e!de
e6ef fd,d-�Z=dee
e6ef  fd.d/�Z>d0ee6eeej:e6f  f d%e
e6ef dee
e6ef  fd1d2�Z?d+e!de
e6ef fd3d4�Z@	5	6dUd7ee6eej3 f d8e6d9e8ddfd:d;�ZAd<d=� ZBd>d?� ZCd@e6dAe6dBe'dCe&dDeDdEeDdFe8fdGdH�ZEdIdJ� ZFd+e!fdKdL�ZGdMdN� ZHdOdP� ZIdQdR� ZJdSdT� ZKdS )V�    )�defaultdict)�datetime�timezone)�Enum)�	lru_cache)�choice)�Any�DefaultDict�Dict�List�TupleN)�
exceptions�	livepatch�messages�util)�_reboot_required)�_is_attached)�PreserveAptCfg�get_apt_cache_datetime�get_apt_pkg_cache�get_esm_apt_pkg_cache�get_pkg_candidate_version)�UAConfig)�ESMAppsEntitlement�ESMInfraEntitlement)�ApplicabilityStatus�ApplicationStatus�ContractStatus)�get_distro_info�get_kernel_info�get_release_info�is_current_series_lts�is_supported)�	esm-infra�esm-appsc                   @   s$   e Zd ZdZdZdZdZdZdZdS )�UpdateStatusz2Represents the availability of a security package.�upgrade_available�upgrade_available_not_preferred�pending_attach�pending_enable�upgrade_unavailableN)	�__name__�
__module__�__qualname__�__doc__�	AVAILABLE�AVAILABLE_NOT_PREFERRED�
UNATTACHED�NOT_ENABLED�UNAVAILABLE� r4   r4   �:/usr/lib/python3/dist-packages/uaclient/security_status.pyr%   (   s    r%   c                 C   s   t t�| �� d S )N)�printr   �create_package_list_str)�packagesr4   r4   r5   �print_package_list1   s   r9   )�maxsizec                  C   sR   t � j} dd�| �fddd�| �fddd�| �fd	dd
�| �fddd�| �fd	iS )N�Ubuntuz{}-security�standard-security�
UbuntuESMAppsz{}-apps-securityr$   �	UbuntuESMz{}-infra-securityr#   z{}-apps-updatesz{}-infra-updates)r    �series�format)r?   r4   r4   r5   �%get_origin_information_to_service_map5   s   �rA   �return�strc                  C   sv   t t�} tt��)}dd� |jD �}|| d<