o
    ϴf                     @   s   d dl Z d dlmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ e eeZe ZG dd deZdS )    N)AnyDictOptionalTuple)apievent_logger
exceptionsmessagessystemutil)UAEntitlement)ApplicationStatusc                	       s   e Zd ZdZejZejZej	j
ZejZdefddZdefddZdejdefdd	Zdejdefd
dZdeeeej f fddZdeeeej f fddZ	ddeeef deeef dedef fddZ  Z S )LandscapeEntitlement	landscapereturnc                 C      dS 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   dg| j  }| sd|vr|dg7 }td| |ttjj	d
|d ztj||  d W d
S  tjyi } z&t| | s^|d|j  tj|j |j dW Y d }~d	S d }~ww )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   ddg}| tjjd|d zt| W n" tjy: } zt	
| |dt|  W Y d }~nd }~ww |dtj dS )Nr   z	--disabler   r   r"   T)r   r	   r*   r+   r,   r
   r-   r   r.   r'   errorr0   strr1   LANDSCAPE_CONFIG_REMAINSr3   r   r   r   _perform_disable0   s   
 z%LandscapeEntitlement._perform_disablec                 C   s(   |   rtdrtjd fS tjtjfS )Nzlandscape-client)are_required_packages_installedr
   is_systemd_unit_activer   ENABLEDDISABLEDr	   LANDSCAPE_SERVICE_NOT_ACTIVEr   r   r   r   application_status?   s   
z'LandscapeEntitlement.application_statusc                 C   s@   t  rz
tg d W dS  tjy   dtjf Y S w dS )N)r   z--is-registeredr   T)FN)r   we_are_currently_rootr
   r-   r   r.   r	   LANDSCAPE_NOT_REGISTEREDr   r   r   r   enabled_warning_statusM   s   	z+LandscapeEntitlement.enabled_warning_statusForig_accessdeltasallow_enablec                    s   t  j||ddS )NF)rF   )superprocess_contract_deltas)r   rD   rE   rF   	__class__r   r   rH   _   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boolr6   r:   r   r   r   NamedMessager@   rC   r   r8   r   rH   __classcell__r   r   rI   r   r      s4    



r   )loggingtypingr   r   r   r   uaclientr   r   r   r	   r
   r   uaclient.entitlements.baser   (uaclient.entitlements.entitlement_statusr   	getLoggerreplace_top_level_logger_namerK   r'   get_event_loggereventr   r   r   r   r   <module>   s     