File: //proc/self/root/lib/python3/dist-packages/uaclient/cli/__pycache__/disable.cpython-38.pyc
U
��Jh�* � @ s� d dl Z d dlZd dlZd dlmZmZmZ d dlmZm Z m
Z
mZmZm
Z
mZmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZ d d lmZ d d
lm Z e�!� Z"e�#e�$e%��Z&ej'e(ee ee( e(e(d�dd
�Z)dd�dd�Z*ej+ej,e�-ej.�e�/d�dd� ����Z0ede
j1e
j2e0ej3eede
j4j5d�6e
j7e�'� d��d�ddd�ede
j8j5dd�dd �ed!e
j9j5d"d#�dd"d$gd"d%�ed&e
j:dd �gd'�gd(�Z;dS ))� N)�Any�Dict�List)�config�contract�entitlements�event_logger�
exceptions�messages�status�util)�ProgressWrapper)�ServiceWithDependencies�
_dependencies)�_enabled_services)�cli_util)�ProArgument�ProArgumentGroup�
ProCommand)�HelpCategory)�CanDisableFailure)�cfg�service�all_dependencies�enabled_service_names�called_name�
service_titlec C s� g }|D ]<}|j |ks|j |kr"q|jD ]}|j |kr(|�|j � q(q|D ]:} t�| | �}
tjj||
d�}tj |d�sJt
j||
d��qJd S )N)Zservice_being_disabled�dependent_service)�msg)�nameZ
depends_on�appendr Z get_titler
ZDEPENDENT_SERVICE�formatr Zprompt_for_confirmationr ZDependentServiceStopsDisable)r r r r r r Zdependent_services�sZrequirementr Zdependent_service_titleZuser_msg� r# �6/usr/lib/python3/dist-packages/uaclient/cli/disable.py�prompt_for_dependency_handling s*
���r% T)�
update_statusc C s� | j }|dk r|} |rt� }nttj|d��}| �|�\}}|s�t�| j� |dk r�t|t �r�|j
dk r�t�|j
j� tj
|j
j|j
j| jd� nt�| j� |r�tj|d� |S )a Perform the disable action on a named entitlement.
:param entitlement_name: the name of the entitlement to enable
:param cfg: the UAConfig to pass to the entitlement
:param json_output: output should be json only
@return: True on success, False otherwise
N��
assume_yes)Z error_msgZ
error_coder �r )�enabled_variantr
r �CLIEnableDisableProgress�disable�eventZservice_failedr �
isinstancer �message�infor �errorZservice_processedr ) Zentitlementr �json_outputr( r&