
Ke*                 @   s   d  d l  m Z m Z m Z m Z d  d l m Z m Z m Z m	 Z	 d  d l
 m Z m Z d  d l m Z d  d l m Z m Z d  d l m Z e j   Z Gd d   d e  Z d	 S)
    )AnyDictOptionalTuple)contractevent_loggermessagessystem)CanEnableFailureCanEnableFailureReason)RepoEntitlement)AnboxCloudDataanbox_cloud_credentials_file)MessagingOperationsDictc                   s   e  Z d  Z d Z e j Z e j Z e j	 j
 Z e j Z d Z d Z d Z d Z d Z e e d d d     Z e e e e f d   f d	 d
    Z d e e d   f d d   Z d   f d d  Z e e e f e e e d d d    Z    S)AnboxEntitlementzanbox-cloudzubuntu-pro-anbox-cloud.gpgz{}TZAnbox)returnc             C   s!   |  j  s d t j g i Si  Sd  S)NZpost_enable)access_onlyr   ZANBOX_RUN_INIT_CMD)self r   =/usr/lib/python3/dist-packages/uaclient/entitlements/anbox.py	messaging   s    	zAnboxEntitlement.messagingc                sX   t    j   \ } } | s% | | f St j   rT |  j rT d t t j t j	  f Sd S)NFT)TN)
super
can_enabler	   Zis_containerr   r
   r   ZONLY_ACCESS_ONLY_SUPPORTEDr   Z!ANBOX_FAIL_TO_ENABLE_ON_CONTAINER)r   retreason)	__class__r   r   r   %   s    
zAnboxEntitlement.can_enableF)silentr   c                s   t    j d |  } | s | S|  j j d i   j d i   } |  j j d } t j |  j  } | j | d d d } t	 d | j d i   j d i   j d	 d
  d | j d d
  d | j d d
  d | j d d
   } t
 j |  d S)Nr   Zentitlement
directivesZmachineTokenzanbox-imagesZ	save_fileFZanbox_images_urlZurl Zanbox_images_resource_tokenresourceTokenZanbox_cloud_apt_urlZaptURLZanbox_cloud_apt_tokenZaptKeyT)r   _perform_enableZentitlement_cfggetZcfgmachine_tokenr   ZUAContractClientZget_resource_machine_accessr   r   write)r   r   r   r   r"   ZclientZanbox_images_machine_accessZanbox_cloud_data)r   r   r   r    6   s&    z AnboxEntitlement._perform_enablec                s!   t    j d |  t j   d S)Nr   T)r   _perform_disabler   Zdelete)r   r   )r   r   r   r$   T   s    
z!AnboxEntitlement._perform_disable)obligationsr   r   c             C   s   d S)NFr   )r   r%   r   r   r   r   _should_enable_by_default]   s    z*AnboxEntitlement._should_enable_by_default)!__name__
__module____qualname__namer   ZANBOX_TITLEtitleZANBOX_DESCRIPTIONZdescriptionZurlsZANBOX_HOME_PAGEZhelp_doc_urlZANBOX_HELP_TEXTZ	help_textZrepo_key_fileZrepo_url_tmplZaffordance_check_seriesZsupports_access_onlyoriginpropertyr   r   r   boolr   r
   r   r    r$   r   strr   r&   r   r   )r   r   r      s"   			)!
r   N)Ztypingr   r   r   r   Zuaclientr   r   r   r	   Z(uaclient.entitlements.entitlement_statusr
   r   Zuaclient.entitlements.repor   Zuaclient.files.state_filesr   r   Zuaclient.typesr   Zget_event_loggerZeventr   r   r   r   r   <module>   s   ""