File: //lib/python3/dist-packages/uaclient/__pycache__/security.cpython-310.pyc
o
nHJe#� � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZm Z m
Z
mZmZm
Z
mZ d dlmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZmZ d d lmZm Z m!Z! d d
l"m#Z# d dl$m%Z% d dl&m'Z' d d
l(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 dZ3dZ4dZ5dZ6dZ7edde8fde8fg�Z9edde:fde
e9 fde
e8 fde:fg�Z;edd e8fd!e8fd"e8fg�Z<ed#d$e:fd%ee8 fg�Z=G d&d'� d'ej>�Z?ed(d$e?fdee
e9 fg�Z@G d)d*� d*e0jA�ZBG d+d,� d,�ZCG d-d.� d.�ZDG d/d0� d0�ZEd1e e8e e8e8f f fd2d3�ZFd4e
eE d5e e8e:f d1e e8e e8e e8e8f f f fd6d7�ZGd8d9� ZHd:e8d1eee? ee8 f fd;d<�ZId=eDd4e
eE d:e8d>e e8e e8e8f f d?e#d5e e8e:f d@e:d1e?fdAdB�ZJdCeEdDe
eE d:e8d>e e8e e8e8f f d?e#d5e e8e:f d@e:dEe:d1e?fdFdG�ZK H Hd�d?e#d:e8d@e:dEe:d1e?f
dIdJ�ZLdKdL� ZMdMdN� ZNdCeEd>e e8e e8e8f f d1e e8eCf fdOdP�ZOd=eDd>e e8e e8e8f f d1e e8eCf fdQdR�ZPd:e8dSe e8eCf fdTdU�ZQdVeCdWe e8e e8e8f f d1eCfdXdY�ZRdZd[� ZSd\e
ee8eCf d]eTd^eTd1e8fd_d`�ZUdae8d?e#fdbdc�ZVdae8d?e#d1e:fddde�ZW fd�d$e?d:e8dge8fdhdi�ZXd?e#dje e8e
ee8eCf f dke e8e
e< f d]eTd^eTd@e:d1e;fdldm�ZYde
e9 d1e8fdndo�ZZd?e#d:e8dSe e8eCf d>e e8e e8e8f f dpe e8e e8e e8e8f f f d@e:d1e@fdqdr�Z[d�dsdt�Z\d?e#due8d1e:fdvdw�Z]d?e#fdxdy�Z^d?e#d1e:fdzd{�Z_d?e#d|e8d1e:fd}d~�Z`d?e#d@e:d1e:fdd��Zadae8d?e#d@e:d1e:fd�d��Zbd?e#d1e:fd�d��Zcd�e e8ef d?e#d@e:d1e:fd�d��Zdd?e#d�e
e8 dae8d@e:d1e=f
d�d��ZedS )�� N)�defaultdict)�datetime)�Any�Dict�List�
NamedTuple�Optional�Set�Tuple)�apt�
exceptions� livepatch�messages�system�util)� _initiate)�MagicAttachRevokeOptions�_revoke)�MagicAttachWaitOptions�_wait)�CLOUD_TYPE_TO_TITLE�PRO_CLOUD_URLS�get_cloud_type)�UAConfig)�PRINT_WRAP_WIDTH)�entitlement_factory)�ApplicabilityStatus�UserFacingStatus)�notices)�Notice)�
serviceclient)�colorize_commandsz=((CVE|cve)-\d{4}-\d{4,7}$|(USN|usn|LSN|lsn)-\d{1,5}-\d{1,2}$)z cves.jsonzcves/{cve}.jsonznotices.jsonznotices/{notice}.json�UnfixedPackage�pkg�unfixed_reason�ReleasedPackagesInstallResult�
fix_status�unfixed_pkgs�installed_pkgs�all_already_installed�BinaryPackageFix�
source_pkg�
binary_pkg�
fixed_version�
UpgradeResult�status�failure_reasonc @ sZ e Zd ZdZG dd� d�Zedd�Zedd�Zedd�Zed d
�Ze dd� �Z
d
d� ZdS )� FixStatuszD
An enum to represent the system status after fix operation
c @ s e Zd Zdedefdd�ZdS )zFixStatus._Value�value�msgc C s || _ || _d S �N�r2 r3 )�selfr2 r3 � r7 �3/usr/lib/python3/dist-packages/uaclient/security.py�__init__[ �
zFixStatus._Value.__init__N)�__name__�
__module__�__qualname__�int�strr9 r7 r7 r7 r8 �_ValueZ s r@ r �fixed�not-affected� zstill-affected� zaffected-until-rebootc C s | j j S r4 )r2 �r6 r7 r7 r8 � exit_coded s zFixStatus.exit_codec C s | j jS r4 r5 rE r7 r7 r8 �__str__h s zFixStatus.__str__N)r; r<