File: //proc/thread-self/root/usr/lib/python3/dist-packages/uaclient/__pycache__/status.cpython-38.pyc
U
��Jhr � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dlm Z d dl
mZmZm
Z
mZmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d d lmZmZ d d
l m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z) d d
l*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 e�3� Z4e�5e�6e7��Z8dZ9dZ:dZ;e)j<j=e2j>ej? e2j@ e)jAj=e2jBejC e2j@ e)jDj=e2jEejF e2j@ e)jGj=e2jEejH e2j@ e)jIj=e2jJejK e2j@ e&jLj=e2j>ejM e2j@ e&jNj=e2jEejO e2j@ e9e2j>ejP e2j@ e:e2j>ejQ e2j@ e;e2j>ejR e2j@ i
ZSdZTdZUdjVejWejXejYejZd�Z[dZ\dZ]dde�^� dddddg e(jAj=ej_i g dddg e)jDj=d�dddg d�dd�Z`d d!� Zaeebef d"�d#d$�Zceeebef d%�d&d'�Zdeeebef d%�d(d)�Zeeebef d"�d*d+�ZfdFeegeebef d,�d-d.�Zhe
eebef ebeebef d/�d0d1�ZidGebegeeebef ejf d2�d3d4�Zkebebd5�d6d7�Zle
e
eb ebd8�d9d:�ZmdHe
eebebf eeb e
eb d;�d<d=�Znee ebd>�d?d@�ZodIeebef egebdA�dBdC�ZpdDdE� ZqdS )J� N)�OrderedDict)�datetime�timezone)�Enum)�Any�Dict�List�Optional�Tuple)�event_logger�
exceptions� livepatch�lock�messages�util�version)�_is_attached)�UA_CONFIGURABLE_KEYS�UAConfig)�get_available_resources�get_contract_information)�ATTACH_FAIL_DATE_FORMAT�PRINT_WRAP_WIDTH)�entitlement_factory)�ContractStatus�UserFacingAvailability�UserFacingConfigStatus�UserFacingStatus)�
machine_token�notices�state_files�user_config_file)�Notice)�TxtColorZ essentialZstandardZadvancedz({name: <17}{available: <11}{description}zJ{name: <17}{available: <11}{entitled: <11}{auto_enabled: <16}{description}z4{name: <17}{entitled: <10}{status: <13}{description}��name�entitled�status�descriptionz4{name: <17}{entitled: <19}{status: <22}{description}z={marker} {name: <15}{entitled: <19}{status: <22}{description}zUContent provided in json response is currently considered Experimental and may changez0.1F� ��idr% �
created_at�products�tech_support_level�r% r+ r, Zexternal_account_ids)Z_docZ_schema_versionr �
machine_id�attached� effective�expires�origin�services�execution_status�execution_details�featuresr �contract�account� simulatedc C s dd� | � � D �S )Nc S s4 g | ],}|j js|j jn|j j|jj|jjd ��qS ))r% Zreason_code�reason)�entitlement�
is_variantr% �variant_nameZ named_msg�msg��.0�service� rD �1/usr/lib/python3/dist-packages/uaclient/status.py�
<listcomp>� s
��
�z,_get_blocked_by_services.<locals>.<listcomp>)Zblocking_incompatible_services)�entrD rD rE �_get_blocked_by_services� s
�rH )�returnc
s� d }d}| � � }| �� }| j�kr&dnd}i }|tjkr@tj} nz| j�kr\tj} �| j }n^| �� \} }
| tj kr�|
j|
j
d�}n
|
r�|
j
}| tjkr�d}| jr�� �fdd�| j�� D �}t
| �}| j| j|j| j|||||d� }| js�||d<