File: //lib/python3/dist-packages/uaclient/cli/__pycache__/fix.cpython-38.pyc
U
��Jh�r � @ s& d dl Z d dlmZmZmZmZmZmZmZ d dl m
Z
mZmZm
Z
mZ d dlmZmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZmZmZ d d lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d d
l3m4Z4 d dl3m5Z6 d dl7m8Z8 d dl7m5Z9 d d
l:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZRmSZSmTZT d dlUmVZV d dlWmXZX d dlYmZZZ d dl[m\Z\ G dd� d�Z]e)d�dd�Z^e+d �d!d"�Z_e`eaeLd#�d$d%�Zbe`eaeaeLd&�d'd(�Zcdpee` e`ededee` e`d)�d*d+�ZeeLe`ead,�d-d.�Zfdd/�d0d1�ZgeLd2�d3d4�ZheLead5�d6d7�Ziee` e`d8�d9d:�ZjeLeaead;�d<d=�ZkeLead5�d>d?�ZleLe`ead@�dAdB�Zme`eLeaeadC�dDdE�Zndqee`e`dG�dHdI�Zoe`dJ�dKdL�Zpe]e.dM�dNdO�Zqe]e/dM�dPdQ�Zre]e-dM�dRdS�Zse]e"dM�dTdU�Zte]e#dM�dVdW�Zue]e$dM�dXdY�Zve]e(dM�dZd[�Zwe]e&dM�d\d]�Zxe]e%dM�d^d_�Zye)eaeLeeee f d`�dadb�Zze>j{dcdd�dedf� �Z|eBdcej}ej~e|eFjdgeAe@dhej�di�e@djej�dkdl�e@dmej�dkdl�gdn�gdo�Z�dS )r� N)�Dict�List�
NamedTuple�Optional�Set�Tuple�Union)�apt�
exceptions�messages�system�util)�attach_with_token�enable_entitlement_by_name)� _initiate)�MagicAttachRevokeOptions�_revoke)�MagicAttachWaitOptions�_wait)� FixStatus�UnfixedPackage�status_message)�ESM_APPS_POCKET�ESM_INFRA_POCKET�STANDARD_UPDATES_POCKET�FixPlanAptUpgradeStep�FixPlanAttachStep�FixPlanEnableStep�FixPlanNoOpAlreadyFixedStep�FixPlanNoOpLivepatchFixStep�FixPlanNoOpStatus�FixPlanNoOpStep�
FixPlanResult�FixPlanStep�FixPlanUSNResult�FixPlanWarning�"FixPlanWarningFailUpdatingESMCache�&FixPlanWarningPackageCannotBeInstalled�#FixPlanWarningSecurityIssueNotFixed�NoOpAlreadyFixedData�NoOpLivepatchFixData�USNAdditionalData)�CVEFixPlanOptions)�_plan)�USNFixPlanOptions)�ContractExpiryStatus�_is_attached)�cli_util)�ProArgument�ProArgumentGroup�
ProCommand)�
action_detach)�HelpCategory)�CLOUD_TYPE_TO_TITLE�PRO_CLOUD_URLS�get_cloud_type)�UAConfig)�PRINT_WRAP_WIDTH)�entitlement_factory)�ApplicabilityStatus�CanEnableFailure�UserFacingStatus)�notices)�Notice)�
PRO_HOME_PAGE)�colorize_commandsc @ s\ e Zd Zeeee ed�dd�Zdd� Zd
ee ee e d�dd �Z
ee ed
�dd�ZdS )�
FixContext��title�dry_run�
affected_pkgs�cfgc C sJ d| _ g | _t� | _tj| _|| _|| _|| _ || _
d| _d| _d| _
d S )Nr TF)� pkg_index�unfixed_pkgs�set�installed_pkgsr �SYSTEM_NON_VULNERABLE�
fix_statusrF rH rG rI �should_print_pkg_header� warn_package_cannot_be_installed�fixed_by_livepatch)�selfrF rG rH rI � rT �2/usr/lib/python3/dist-packages/uaclient/cli/fix.py�__init__R s zFixContext.__init__c C sN | j rJtj�t| j ��jt| j �d�t| j ��d�}tt j
|tddd�� d S )N�, )�count�pkgs� F)�width�subsequent_indentZreplace_whitespace)rH r ZSECURITY_AFFECTED_PKGS� pluralize�len�format�join�sorted�print�textwrap�fillr; )rS �msgrT rT rU �print_fix_headere s ����zFixContext.print_fix_headerN��source_pkgs�status�pocketc C s4 | j r0tt||| jt| j�|r&t|�nd d�� d S )N)�pkg_listri rJ �num_pkgs�
pocket_source)rP rb �_format_packages_messagerJ r^ rH �get_pocket_description)rS rh ri rj rT rT rU �print_pkg_headerv s ��zFixContext.print_pkg_header�rY �unfixed_reasonc C s"