Ë
    GKÕi,
  ã                   óž   — d dl Z d dlmZmZmZmZmZmZ d dlm	Z	  e j                   ej                  e«      «      ZdZdZdZ G d„ de	«      Zy)	é    N)ÚconfigÚ
exceptionsÚhttpÚlogÚsecret_managerÚutil)ÚAutoAttachInstancez/dev/lxd/sockz/1.0/ubuntu-proz/1.0/ubuntu-pro/tokenc                   ób   — e Zd Zedefd„«       Zdefd„Zdedefd„Zdej                  de
fd„Zy)	ÚLXDAutoAttachInstanceÚreturnc                  ó   — y)NT© ©Úselfs    ú5/usr/lib/python3/dist-packages/uaclient/clouds/lxd.pyÚ	is_viablezLXDAutoAttachInstance.is_viable   s   € àó    c                  ó   — y)zSYes, but only once - is_pro_license_present doesn't
        support wait_for_changeTr   r   s    r   Úshould_poll_for_pro_licensez1LXDAutoAttachInstance.should_poll_for_pro_license   s   € ð r   Úwait_for_changec                óx  — |rt        j                  «       ‚t        j                  t        dt
        «      }|j                  dk7  rAt        j                  dt        j                  |j                  |j                  ¬«      ¬«       y|j                  j                  dd«      d	k7  rt        j                  d
«       yy)NÚGETéÈ   z4LXD instance API returned error for ubuntu-pro query)ÚcodeÚbody)ÚextraFÚguest_attachÚoffÚonzNguest_attach config is not turned on. The machine will not try to auto-attach.T)r   ÚCancelProLicensePollingr   Úunix_socket_requestÚLXD_INSTANCE_API_SOCKET_PATHÚ$LXD_INSTANCE_API_ENDPOINT_UBUNTU_PROr   ÚLOGÚerrorr   r   r   Ú	json_dictÚgetÚinfo)r   r   Úresps      r   Úis_pro_license_presentz,LXDAutoAttachInstance.is_pro_license_present   sœ   € Ùä×4Ñ4Ó6Ð6ä×'Ñ'Ü(ØÜ0ó
ˆð
 �9‰9˜ÒÜ�I‰IØFÜ—i‘i T§Y¡Y°T·Y±YÔ?ð ô ð ð �>‰>×Ñ˜n¨eÓ4¸Ò<Ü�H‰HØ`ôð àr   Úcfgc                 óì  — t        j                  t        dt        «      }|j                  dk(  rt        j                  «       ‚|j                  dk(  rt        j                  «       ‚|j                  dk7  rDt        j                  |j                  dj                  t        t        «      |j                  ¬«      ‚|j                  j                  dd«      }t        j                  j                  |«       |S )	z{
        Cloud-specific implementation of acquiring the pro token using whatever
        method suits the platform
        ÚPOSTi”  i“  r   zunix://{}{})r   Úurlr   Úguest_tokenÚ )r   r!   r"   Ú0LXD_INSTANCE_API_ENDPOINT_UBUNTU_PRO_GUEST_TOKENr   r   ÚLXDAutoAttachNotAvailableÚLXDAutoAttachNotAllowedÚExternalAPIErrorÚformatr   r&   r'   r   ÚsecretsÚ
add_secret)r   r+   r)   r/   s       r   Úacquire_pro_tokenz'LXDAutoAttachInstance.acquire_pro_token1   sÊ   € ô
 ×'Ñ'Ü(ØÜ<ó
ˆð
 �9‰9˜ÒÜ×6Ñ6Ó8Ð8Ø�Y‰Y˜#ÒÜ×4Ñ4Ó6Ð6Ø�Y‰Y˜#ÒÜ×-Ñ-Ø—Y‘YØ!×(Ñ(Ü0ÜDóð —Y‘Yôð ð —n‘n×(Ñ(¨¸Ó;ˆÜ×Ñ×)Ñ)¨+Ô6ØÐr   N)Ú__name__Ú
__module__Ú__qualname__ÚpropertyÚboolr   r   r*   r   ÚUAConfigÚstrr8   r   r   r   r   r      sQ   „ Øð˜4ò ó ðð¨Tó ð
¸ð À$ó ð4 V§_¡_ð ¸ô r   r   )ÚloggingÚuaclientr   r   r   r   r   r   Úuaclient.cloudsr	   Ú	getLoggerÚreplace_top_level_logger_namer9   r$   r"   r#   r1   r   r   r   r   ú<module>rE      sP   ðÛ ç H× HÝ .à€g×ÑÐ:˜×:Ñ:¸8ÓDÓE€à.Ð Ø'8Ð $Ø3JÐ 0ô=Ð.õ =r   