Ë
    GKÕií  ã                   óÚ   — d dl Z d dlmZmZmZ d dlmZmZmZ d dl	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ  G d
„ dej.                  «      Z G d„ de«      Z G d„ de«      Zy)é    N)ÚTupleÚTypeÚUnion)ÚapiÚmessagesÚsystem)ÚAPT_KEYS_DIRÚDEB822_REPO_FILE_CONTENTÚKEYRINGS_DIR)ÚESM_APT_ROOTDIR)Úrepo)ÚUAEntitlement)ÚCanDisableFailure)Úset_filename_extensionc                   ó¢   ‡ — e Zd Zej                  j
                  ZdZede	e
e   df   fd„«       Zdej                  defˆ fd„Zd	d„Zd	d„Zˆ xZS )
ÚESMBaseEntitlementTÚreturn.c                 ó   — ddl m}m} ||fS )Nr   )ÚROSEntitlementÚROSUpdatesEntitlement)Úuaclient.entitlements.rosr   r   )Úselfr   r   s      ú;/usr/lib/python3/dist-packages/uaclient/entitlements/esm.pyÚdependent_servicesz%ESMBaseEntitlement.dependent_services   s   € ÷	
ð
 & ~Ð6Ð6ó    Úprogressc                 óz   •— ddl m} t        ‰| �  |«      }|r" || j                  «       | j                  «        |S ©Nr   )Úupdate_motd_messages)Úuaclient.timer.update_messagingr   ÚsuperÚ_perform_enableÚcfgÚdisable_local_esm_repo)r   r   r   Úenable_performedÚ	__class__s       €r   r"   z"ESMBaseEntitlement._perform_enable   s7   ø€ ÝHä ™7Ñ2°8Ó<ÐÙÙ  §¡Ô*Ø×'Ñ'Ô)ØÐr   c           
      óÒ  — t        j                  «       j                  }| j                  j	                  d«      sJ ‚| j                  t        d«      d  }t        t        j                  j                  t        | j                  z   «      d«      }t        t        j                  j                  t        | j                  z   «      d«      }t        j                  j                  |«      st        j                  j                  |«      ry dj                  |¬«      }dj                  ||¬«      }t        j                  |t        j                  ||t         | j"                  d¬	«      «       y )
Nzesm-ÚsourcesÚlistz$https://esm.ubuntu.com/{name}/ubuntu)Únamez0{series}-{name}-security {series}-{name}-updates)Úseriesr*   Ú )ÚurlÚsuitesÚkeyrings_dirÚkeyring_fileÚdeb_src)r   Úget_release_infor+   r*   Ú
startswithÚlenr   ÚosÚpathÚnormpathr   Ú	repo_fileÚexistsÚformatÚ
write_filer
   r   Úrepo_key_file)r   r+   Úesm_nameÚsources_repo_filenameÚlist_repo_filenameÚesm_urlr.   s          r   Úsetup_local_esm_repoz'ESMBaseEntitlement.setup_local_esm_repo#   s.  € Ü×(Ñ(Ó*×1Ñ1ˆà�y‰y×#Ñ# FÔ+Ð+Ð+Ø—9‘9œS ›[˜]Ð+ˆÜ 6Ü�G‰G×ÑÜ $§.¡.Ñ0óð ó	!
Ðô 4Ü�G‰G×ÑÜ $§.¡.Ñ0óð ó	
Ðô �7‰7�>‰>Ð/Ô0´B·G±G·N±NØô5
ð à8×?Ñ?ÀXÐ?ÓNˆØC×JÑJØ ð Kó 
ˆô
 	×ÑØ!Ü$×+Ñ+ØØÜ)Ø!×/Ñ/Øôõ		
r   c                 óx  — t         j                  j                  t        t        z   | j
                  z   «      }t        j                  |«       t         j                  j                  t        | j                  z   «      }t        j                  t        |d«      «       t        j                  t        |d«      «       y )Nr(   r)   )
r5   r6   r7   r   r	   r<   r   Úensure_file_absentr8   r   )r   r0   Úrepo_filenames      r   r$   z)ESMBaseEntitlement.disable_local_esm_repoL   s�   € Ü—w‘w×'Ñ'ÜœlÑ*¨T×-?Ñ-?Ñ?ó
ˆô 	×!Ñ! ,Ô/äŸ™×(Ñ(Ü˜dŸn™nÑ,ó
ˆô 	×!Ñ!Ü" =°)Ó<ô	
ô 	×!Ñ!Ü" =°&Ó9õ	
r   )r   N)Ú__name__Ú
__module__Ú__qualname__r   ÚurlsÚESM_HOME_PAGEÚhelp_doc_urlÚcheck_updates_pocketÚpropertyr   r   r   r   r   ÚProgressWrapperÚboolr"   rA   r$   Ú__classcell__©r&   s   @r   r   r      sd   ø„ Ø—=‘=×.Ñ.€LØÐàð7 E¨$¨}Ñ*=¸sÐ*BÑ$Cò 7ó ð7ð ¨×(;Ñ(;ð  Àõ  ó'
÷R
r   r   c                   ó¤   ‡ — e Zd ZdZdZej                  Zej                  Z	ej                  ZdZdej                  deeedef   f   fˆ fd„Zˆ xZS )ÚESMAppsEntitlementÚUbuntuESMAppszesm-appszubuntu-pro-esm-apps.gpgr   r   Nc                 ó¬   •— ddl m} t        ‰| �  |«      \  }}|r6 || j                  «       t        j                  «       r| j                  «        ||fS r   )r    r   r!   Údisabler#   r   Úis_current_series_ltsrA   ©r   r   r   Údisable_performedÚfailr&   s        €r   rU   zESMAppsEntitlement.disablef   sO   ø€ õ 	Iä"'¡'¡/°(Ó";ÑÐ˜4ÙÙ  §¡Ô*Ü×+Ñ+Ô-Ø×)Ñ)Ô+Ø  $Ð&Ð&r   )rE   rF   rG   Úoriginr*   r   ÚESM_APPS_TITLEÚtitleÚESM_APPS_DESCRIPTIONÚdescriptionÚESM_APPS_HELP_TEXTÚ	help_textr<   r   rM   r   rN   r   r   rU   rO   rP   s   @r   rR   rR   ^   sh   ø„ Ø€FØ€DØ×#Ñ#€EØ×/Ñ/€KØ×+Ñ+€IØ-€Mð
'Ø×+Ñ+ð
'à	ˆt�U˜4Ð!2Ð2Ñ3Ð3Ñ	4÷
'ñ 
'r   rR   c                   ó¤   ‡ — e Zd ZdZdZej                  Zej                  Z	ej                  ZdZdej                  deeedef   f   fˆ fd„Zˆ xZS )ÚESMInfraEntitlementz	esm-infraÚ	UbuntuESMzubuntu-pro-esm-infra.gpgr   r   Nc                 ó¬   •— ddl m} t        ‰| �  |«      \  }}|r6 || j                  «       t        j                  «       r| j                  «        ||fS r   )r    r   r!   rU   r#   r   Úis_current_series_active_esmrA   rW   s        €r   rU   zESMInfraEntitlement.disable{   sO   ø€ õ 	Iä"'¡'¡/°(Ó";ÑÐ˜4ÙÙ  §¡Ô*Ü×2Ñ2Ô4Ø×)Ñ)Ô+Ø  $Ð&Ð&r   )rE   rF   rG   r*   rZ   r   ÚESM_INFRA_TITLEr\   ÚESM_INFRA_DESCRIPTIONr^   ÚESM_INFRA_HELP_TEXTr`   r<   r   rM   r   rN   r   r   rU   rO   rP   s   @r   rb   rb   s   sh   ø„ Ø€DØ€FØ×$Ñ$€EØ×0Ñ0€KØ×,Ñ,€IØ.€Mð
'Ø×+Ñ+ð
'à	ˆt�U˜4Ð!2Ð2Ñ3Ð3Ñ	4÷
'ñ 
'r   rb   )r5   Útypingr   r   r   Úuaclientr   r   r   Úuaclient.aptr	   r
   r   Úuaclient.defaultsr   Úuaclient.entitlementsr   Úuaclient.entitlements.baser   Ú(uaclient.entitlements.entitlement_statusr   Úuaclient.utilr   ÚRepoEntitlementr   rR   rb   © r   r   ú<module>rs      sX   ðÛ 	ß %Ñ %ç *Ñ *ß MÑ MÝ -Ý &Ý 4Ý FÝ 0ôN
˜×-Ñ-ô N
ôb'Ð+ô 'ô*'Ð,õ 'r   