o
    ϴf=                     @   s   d dl mZmZmZmZ d dlmZ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 ZG dd deZd	S )
    )AnyDictOptionalTuple)api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defddZdeeee f f fd	d
Zdejdef fddZdejf fddZdee e!f dee  defddZ"  Z#S )AnboxEntitlementzanbox-cloudzubuntu-pro-anbox-cloud.gpgz{}TAnboxreturnc                 C   s   | j s	dtjgiS i S )Npost_enable)access_onlyr	   ANBOX_RUN_INIT_CMD)self r   =/usr/lib/python3/dist-packages/uaclient/entitlements/anbox.py	messaging   s   zAnboxEntitlement.messagingc                    s>   t   \}}|s||fS t r| jsdttjtj	fS dS )NF)TN)
super
can_enabler
   is_containerr   r   r   ONLY_ACCESS_ONLY_SUPPORTEDr	   !ANBOX_FAIL_TO_ENABLE_ON_CONTAINER)r   retreason	__class__r   r   r   %   s   zAnboxEntitlement.can_enableprogressc                    s   t  |}|s
|S | jdi di }| jjd }t| j}|	|d}t
|di di dd|dd|dd|d	dd
}t| dS )Nentitlement
directivesmachineTokenzanbox-imagesurl resourceTokenaptURLaptKey)anbox_images_urlanbox_images_resource_tokenanbox_cloud_apt_urlanbox_cloud_apt_tokenT)r   _perform_enableentitlement_cfggetmachine_token_filemachine_tokenr   UAContractClientcfgget_resource_machine_accessr   r   write)r   r$   r    r&   r5   clientanbox_images_machine_accessanbox_cloud_datar"   r   r   r1   6   s.   



z AnboxEntitlement._perform_enablec                    s   t  | t  dS )NT)r   _perform_disabler   delete)r   r$   r"   r   r   r=   T   s   z!AnboxEntitlement._perform_disableobligationsr*   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	   ANBOX_TITLEtitleANBOX_DESCRIPTIONdescriptionurlsANBOX_HOME_PAGEhelp_doc_urlANBOX_HELP_TEXT	help_textrepo_key_filerepo_url_tmplaffordance_check_seriessupports_access_onlyoriginpropertyr   r   r   boolr   r   r   r   ProgressWrapperr1   r=   r   strr   r@   __classcell__r   r   r"   r   r      s.    	
r   N)typingr   r   r   r   uaclientr   r   r   r	   r
   (uaclient.entitlements.entitlement_statusr   r   uaclient.entitlements.repor   uaclient.files.state_filesr   r   uaclient.typesr   get_event_loggereventr   r   r   r   r   <module>   s    