File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/landscape.cpython-310.pyc
o
��Jhm � @ s� d dl Z d dlmZmZmZmZ d dlmZmZm Z m
Z
mZmZ d dl
mZ d dlmZmZ e �e�e��Ze�� ZG dd� de�ZdS )� N)�Any�Dict�Optional�Tuple)�api�event_logger�
exceptions�messages�system�util)�
UAEntitlement)�ApplicabilityStatus�ApplicationStatusc s� e Zd ZdZejZejZej j
ZejZ
defdd�Zdefdd�Zdejdefdd �Zdejdefd
d�Zdeeeej f fdd
�Zdeeeej f f� fdd�Zdeeeej f fdd�Z ddeee f deee f dedef� fdd�
Z!� Z"S )�LandscapeEntitlement� landscape�returnc C � dS �N� � ��selfr r �A/usr/lib/python3/dist-packages/uaclient/entitlements/landscape.py�enable_steps � z!LandscapeEntitlement.enable_stepsc C r r r r r r r �
disable_steps r z"LandscapeEntitlement.disable_steps�progressc
C s� dg| j }|�� sd|vr|dg7 }t�d|� |�t�tjj d�
|�d��� z
tj||�� d� W d
S t
jyi } z&t�|� |�� s^|�d|j�� � t
j|j�� |j�� d��W Y d }~d S d }~ww )N�landscape-config�--silentz
Executing: %r� ��command)�pipe_stdouterr�info)�stdout�stderrFT)�
extra_args�is_interactive�LOG�debugr r �redact_sensitive_logsr �EXECUTING_COMMAND�format�joinr
�subpr �ProcessExecutionError� exception�emitr% �strip�LandscapeConfigFailedr$ �r r �cmd�er r r �_perform_enable s,
�� �
���z$LandscapeEntitlement._perform_enablec
C s� ddg}|� tjjd�|�d�� zt�|� W n" tjy: } zt �
|� |�dt|��
� � W Y d }~nd }~ww |�dtj� dS )Nr z --disabler r r# T)r r r+ r, r- r
r. r r/ r( �errorr1 �strr2 �LANDSCAPE_CONFIG_REMAINSr4 r r r �_perform_disable3 s �
��z%LandscapeEntitlement._perform_disablec C s( | � � rt�d�rtjd fS tjtjfS )Nzlandscape-client)�are_required_packages_installedr
�is_systemd_unit_activer �ENABLED�DISABLEDr �LANDSCAPE_SERVICE_NOT_ACTIVEr r r r �application_statusB s ��
�z'LandscapeEntitlement.application_statusc sf t � �� }|d tjkr1| jd �di �}|�dd �}t�� j}| j r1|d ur1||vr1tjt
jfS |S )Nr �entitlement�affordances�series)�super�applicability_statusr
�INAPPLICABLE�entitlement_cfg�getr
�get_release_inforD �affordance_check_seriesr �LANDSCAPE_INAPPLICABLE)r rF �
affordance�affordance_series�current_series�� __class__r r rF P s
�
��z)LandscapeEntitlement.applicability_statusc C s@ t �� rz
t�g d�� W dS tjy dtjf Y S w dS )N)r z--is-registeredr T)FN)r �we_are_currently_rootr
r. r r/ r �LANDSCAPE_NOT_REGISTEREDr r r r �enabled_warning_statuse s � ���z+LandscapeEntitlement.enabled_warning_statusF�orig_access�deltas�allow_enablec s t � j||dd�S )NF)rW )rE �process_contract_deltas)r rU rV rW rP r r rX w s �z,LandscapeEntitlement.process_contract_deltas)F)#�__name__�
__module__�__qualname__�namer �LANDSCAPE_TITLE�title�LANDSCAPE_DESCRIPTION�description�urls�LANDSCAPE_HOME_PAGE�help_doc_url�LANDSCAPE_HELP_TEXT� help_text�intr r r �ProgressWrapper�boolr7 r; r r r �NamedMessagerA r
rF rT r r9 r rX �
__classcell__r r rP r r s:
��
��
�
���r )�logging�typingr r r r �uaclientr r r r r
r �uaclient.entitlements.baser �(uaclient.entitlements.entitlement_statusr
r � getLogger�replace_top_level_logger_namerY r( �get_event_logger�eventr r r r r �<module> s