
    gm                         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mZ  e j$                   ej&                  e            Z ej,                         Z G d de      Zy)    N)AnyDictOptionalTuple)apievent_logger
exceptionsmessagessystemutil)UAEntitlement)ApplicabilityStatusApplicationStatusc            	           e Zd ZdZej
                  Zej                  Zej                  j                  Zej                  ZdefdZdefdZdej$                  defdZdej$                  defdZdeeeej2                     f   fdZdeeeej2                     f   f fd	Zdeeeej2                     f   fd
Z	 ddeee f   deee f   dedef fdZ! xZ"S )LandscapeEntitlement	landscapereturnc                      yN    selfs    A/usr/lib/python3/dist-packages/uaclient/entitlements/landscape.pyenable_stepsz!LandscapeEntitlement.enable_steps           c                      yr   r   r   s    r   disable_stepsz"LandscapeEntitlement.disable_steps   r   r   progressc           	         dg| j                   z   }|j                         s
d|vr|dgz  }t        j                  d|       |j	                  t        j                  t        j                  j                  dj                  |                         	 t        j                  ||j                                 y
# t        j                  $ r}t        j                  |       |j                         sq|j!                  d|j"                  j%                                t        j&                  |j(                  j%                         |j"                  j%                               Y d }~y	d }~ww xY 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es       r   _perform_enablez$LandscapeEntitlement._perform_enable   s   !"T__4&&(Zs-BJ<C		/3'&&**11#((3-1H	

		KK0G0G0I,IJ  // 	MM!**,fahhnn&67 6688>>+AHHNN4D  	s   &B: :E-BE((E-c                    ddg}|j                  t        j                  j                  dj	                  |                   	 t        j                  |       |j                  dt        j                         y# t        j                  $ rH}t        j                  |       |j                  dt        |      j                                Y d }~wd }~ww xY w)Nr"   z	--disabler$   r%   r(   T)r    r
   r0   r1   r2   r   r3   r	   r4   r-   errorr6   strr7   LANDSCAPE_CONFIG_REMAINSr9   s       r   _perform_disablez%LandscapeEntitlement._perform_disable3   s    !;/&&--chhsm-D	
	2KK
 	fh??@ // 	2IIaLMM&#a&,,.11	2s   A: :C>CCc                     | j                         r't        j                  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   s    r   application_statusz'LandscapeEntitlement.application_statusB   sN     002--.@A%--t44 "**55 r   c                 R   t         |          }|d   t        j                  k(  r| j                  d   j                  di       }|j                  dd       }t        j                         j                  }| j                  r&|$||vr t        j                  t        j                  fS |S )Nr   entitlementaffordancesseries)superapplicability_statusr   INAPPLICABLEentitlement_cfggetr   get_release_inforL   affordance_check_seriesr
   LANDSCAPE_INAPPLICABLE)r   rN   
affordanceaffordance_seriescurrent_series	__class__s        r   rN   z)LandscapeEntitlement.applicability_statusP   s      %w;="&9&F&FF--m<@@rJ !+x >#446==N,,%1"*;; (4433  $#r   c                     t        j                         r	 t        j                  g d       yy# t        j
                  $ r dt        j                  fcY S w xY w)N)r"   z--is-registeredr#   T)FN)r   we_are_currently_rootr   r3   r	   r4   r
   LANDSCAPE_NOT_REGISTEREDr   s    r   enabled_warning_statusz+LandscapeEntitlement.enabled_warning_statuse   sV    
 %%'G  33 55 s   / %AAorig_accessdeltasallow_enablec                 (    t         |   ||d      S )NF)r_   )rM   process_contract_deltas)r   r]   r^   r_   rX   s       r   ra   z,LandscapeEntitlement.process_contract_deltasw   s#     w.e / 
 	
r   )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boolr<   rA   r   r   r   NamedMessagerH   r   rN   r\   r   r?   r   ra   __classcell__)rX   s   @r   r   r      s/   D$$E00K==44L,,Ic s (;(;  .)<)<  	 (8+@+@"AA	B$	"HX-B-B$CC	D$*	tXh3344	5, #	

#s(^

 S#X

 	


 


 

r   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_namerb   r-   get_event_loggereventr   r   r   r   <module>r}      s\     - - J J 4
 g:::8DE%%%'r
= r
r   