File: //lib/python3/dist-packages/uaclient/cli/__pycache__/enable.cpython-38.pyc
U
��JhD � @ s� d dl Z d dlZd dlmZmZmZmZmZ d dlm Z m
Z
mZmZm
Z
mZmZmZmZmZ d dlmZmZ d dlmZmZmZ d dlmZmZ d dlmZ d dlm Z d d l!m"Z"m#Z#m$Z$ d d
l%m&Z& e�'e�(e)��Z*edde+fd
e+fdeee,ef fg�Z-d5e
j.e+ee j/ d�dd�Z0e
j.e,ee ee e,e,e,d�dd�Z1e+ee,ef ee, ee, eee,ef eee,ef e+d�dd�Z2e
j.e,e,e+e+e+eee, ee ee e-d�
dd�Z3e j4e j5e �6e j7�e8d�dd����Z9e$dej:ej;e9e&j<de#e"d ej=j>d!�?ej@e
�.� d"��d#�d$d%d&�e"d'ejAj>dd(�d)d*�e"d+ejBd)d*�e"d,ejCd)d*�e"d-ejDj>d.d/�d$d.d0gd.d1�e"d2ejEd$d*�gd3�gd4�ZFdS )6� N)�Any�Dict�List�
NamedTuple�Optional)
�api�config�contract�entitlements�event_logger�
exceptions�lock�messages�status�util)�ServiceWithDependencies�
_dependencies)�
EnableOptions�EnableResult�_enable)�EnabledService�_enabled_services)�_is_attached)�cli_util)�ProArgument�ProArgumentGroup�
ProCommand)�HelpCategory�_EnableOneServiceResult�success�needs_reboot�error)�cfg�access_only�progress_objectc
C s� t �|�}tj| d||d�}d}d}z,tjdd�� |j|d�\}}W 5 Q R X W n. tk
r~ } zt�� |�W 5 d}~X Y nX |s�|dk r�|j dk r�|j } nt
j} tj
d| d��tdgg dg d �S )
a
Landscape gets special treatment because it currently not supported by our
enable API. This function is a temporary workaround until we have a proper
API for enabling landscape, which will happen after Landscape is fully
integrated with the contracts backend.
� landscape)�called_namer# �
extra_argsFNzcli.enable._enable_landscape)Zlock_holder)�progress)�service�reason)�enabledZdisabled�reboot_requiredr )r ZProgressWrapperr
ZLandscapeEntitlementr
Z RetryLock�enable� ExceptionZclear_lock_file_if_present�messager ZGENERIC_UNKNOWN_ISSUEr �EntitlementNotEnabledErrorr )
r"