File: //usr/lib/python3/dist-packages/uaclient/__pycache__/security.cpython-310.pyc
o
S��cA� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
mZmZm
Z
mZmZmZ d dlmZmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZm Z d d l!m"Z" d d
l#m$Z$m%Z% d dl&m'Z' dZ(d
Z)dZ*dZ+dZ,dZ-dZ.dZ/e
dde0fdee1 fdee1 fde0fg�Z2ej3G dd� dej4��Z5G dd� dej6�Z7G dd� d�Z8G dd � d �Z9G d!d"� d"�Z:d#ee1ee1e1f f fd$d%�Z;d&ee: d'ee1e0f d#ee1ee1ee1e1f f f fd(d)�Z<d*d+� Z= ,dod-ed.e1d/e0d#e5fd0d1�Z>d2d3� Z?d4d5� Z@d6e:d7ee1ee1e1f f d#ee1e8f fd8d9�ZAd:e9d7ee1ee1e1f f d#ee1e8f fd;d<�ZBd.e1d=ee1e8f fd>d?�ZCd@e8dAee1ee1e1f f d#e8fdBdC�ZDdDdE� ZEdFeee1e8f dGeFdHeFd#e1fdIdJ�ZGdKe1d-efdLdM�ZHdKe1d-ed#e0fdNdO�ZId-edPee1eee1e8f f dQee1ee1 f dGeFdHeFd/e0d#e2fdRdS�ZJdee1 d#e1fdTdU�ZKd-ed.e1d=ee1e8f d7ee1ee1e1f f dVee1ee1ee1e1f f f d/e0d#e5fdWdX�ZLdpdYdZ�ZMd-ed[e1d#e0fd\d]�ZNd-ed#e0fd^d_�ZOd-ed`e1d#e0fdadb�ZPd-ed/e0d#e0fdcdd�ZQdKe1d-ed/e0d#e0fdedf�ZRd-ed#e0fdgdh�ZSdiee1e
f d-ed/e0d#e0fdjdk�ZTd-edlee1 dKe1d/e0d#e0f
dmdn�ZUdS )q� N)�defaultdict)�datetime)�Any�Dict�List�
NamedTuple�Optional�Set�Tuple)�apt�
exceptions�messages�
serviceclient�system�util)�CLOUD_TYPE_TO_TITLE�
PRO_CLOUDS�get_cloud_type)�UAConfig)�BASE_UA_URL�PRINT_WRAP_WIDTH)�entitlement_factory)�ApplicabilityStatus�UserFacingStatus)�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}.jsonzUbuntu standard updateszUbuntu Pro: ESM InfrazUbuntu Pro: ESM Apps�ReleasedPackagesInstallResult�
fix_status�unfixed_pkgs�installed_pkgs�all_already_installedc @ s e Zd ZdZdZdZdZdS )� FixStatuszD
An enum to represent the system status after fix operation
r � � N)�__name__�
__module__�__qualname__�__doc__�SYSTEM_NON_VULNERABLE�SYSTEM_STILL_VULNERABLE�SYSTEM_VULNERABLE_UNTIL_REBOOT� r* r* �3/usr/lib/python3/dist-packages/uaclient/security.pyr 3 s
r c s6 e Zd ZdZdZejZdee e
f dee e
f fdd�Zej
ejg d�d� d#� fd
d� �Z d$dee d
ee dee dee dee dee dee deee ded fdd�Zde ddfdd�Z d%dee dee dee dee dee ded fdd�Zd e ddfd!d"�Z� ZS )&�UASecurityClient� �security_url�query_params�returnc C s. | j j �di ��di �}|r|�|� |S |S )zD
Update query params with data from feature config.
�features�extra_security_params)�cfg�get�update)�selfr/ r2 r* r* r+ �_get_query_paramsD s �
z"UASecurityClient._get_query_params)r! � � )�retry_sleepsNc s"