Ë
    GKÕi=  ã                   ó¨   — 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j*                  «       Z G d„ de«      Zy	)
é    )ÚAnyÚDictÚOptionalÚTuple)ÚapiÚcontractÚevent_loggerÚmessagesÚsystem)ÚCanEnableFailureÚCanEnableFailureReason)ÚRepoEntitlement)ÚAnboxCloudDataÚanbox_cloud_credentials_file)ÚMessagingOperationsDictc                   óF  ‡ — 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„«       Zdeeee   f   fˆ fd„Zd	ej8                  defˆ fd
„Zd	ej8                  fˆ fd„Zdee e!f   dee    defd„Z"ˆ xZ#S )ÚAnboxEntitlementzanbox-cloudzubuntu-pro-anbox-cloud.gpgz{}TÚAnboxÚreturnc                 óD   — | j                   sdt        j                  giS i S )NÚpost_enable)Úaccess_onlyr
   ÚANBOX_RUN_INIT_CMD)Úselfs    ú=/usr/lib/python3/dist-packages/uaclient/entitlements/anbox.pyÚ	messagingzAnboxEntitlement.messaging   s$   € à×ÒØ!¤H×$?Ñ$?Ð#@ÐAÐAàˆIó    c                 óÈ   •— t         ‰| �  «       \  }}|s||fS t        j                  «       r6| j                  s*dt        t        j                  t        j                  «      fS y)NF)TN)
ÚsuperÚ
can_enabler   Úis_containerr   r   r   ÚONLY_ACCESS_ONLY_SUPPORTEDr
   Ú!ANBOX_FAIL_TO_ENABLE_ON_CONTAINER)r   ÚretÚreasonÚ	__class__s      €r   r    zAnboxEntitlement.can_enable%   sa   ø€ Ü‘gÑ(Ó*‰ˆˆVáØ˜�;Ðä×ÑÔ ¨×)9Ò)9àÜ Ü*×EÑEÜ×>Ñ>óðð ð r   Úprogressc           	      ó   •— t         ‰| �  |«      }|s|S | j                  j                  di «      j                  di «      }| j                  j
                  d   }t        j                  | j                  «      }|j                  |d«      }t        |j                  di «      j                  di «      j                  dd«      |j                  dd«      |j                  dd«      |j                  d	d«      ¬
«      }t        j                  |«       y)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*   r9   ÚclientÚanbox_images_machine_accessÚanbox_cloud_datar&   s	           €r   r5   z AnboxEntitlement._perform_enable6   sý   ø€ Ü‰gÑ% hÓ/ˆáØˆJà×)Ñ)×-Ñ-¨m¸RÓ@×DÑDØ˜"ó
ˆ
ð ×/Ñ/×=Ñ=¸nÑMˆÜ×*Ñ*¨4¯8©8Ó4ˆØ&,×&HÑ&HØ˜>ó'
Ð#ô *Ø8×<Ñ<¸]ÈBÓOß‰S�˜rÓ"ß‰S�˜‹^Ø(C×(GÑ(GØ ó)ð !+§¡¨x¸Ó <Ø",§.¡.°¸2Ó">ô	
Ðô 	%×*Ñ*Ð+;Ô<àr   c                 óL   •— t         ‰| �  |«       t        j                  «        y)NT)r   Ú_perform_disabler   Údelete)r   r'   r&   s     €r   rB   z!AnboxEntitlement._perform_disableT   s   ø€ Ü‰Ñ  Ô*Ü$×+Ñ+Ô-Ør   Úobligationsr.   c                  ó   — y)NF© )r   rD   r.   s      r   Ú_should_enable_by_defaultz*AnboxEntitlement._should_enable_by_default]   s   € ð r   )$Ú__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   ÚProgressWrapperr5   rB   r   Ústrr   rG   Ú__classcell__)r&   s   @r   r   r      sÝ   ø„ Ø€DØ× Ñ €EØ×,Ñ,€KØ—=‘=×0Ñ0€LØ×(Ñ(€IØ0€MØ€MØ"ÐØÐØ€FàðÐ2ò ó ðð˜E $¨Ð1AÑ(BÐ"BÑCõ ð"¨×(;Ñ(;ð Àõ ð<¨×)<Ñ)<õ ðØ  S ™>ðØ:BÀ3¹-ðà	÷r   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   rF   r   r   ú<module>rg      sC   ðß -Ó -ç BÕ B÷õ 7÷õ 3à%ˆ×%Ñ%Ó'€ôN�õ Nr   