HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/uaclient/entitlements/__pycache__/esm.cpython-38.pyc
U

��Jh��@s�ddlZddlmZmZmZddlmZmZmZddl	m
Z
mZmZddl
mZddlmZddlmZddlmZdd	lmZGd
d�dej�ZGdd
�d
e�ZGdd�de�ZdS)�N)�Tuple�Type�Union)�api�messages�system)�APT_KEYS_DIR�DEB822_REPO_FILE_CONTENT�KEYRINGS_DIR)�ESM_APT_ROOTDIR)�repo)�
UAEntitlement)�CanDisableFailure)�set_filename_extensioncsleZdZejjZdZee	e
edfd�dd��Ze
jed��fdd�Zd	d�d
d�Zd	d�dd
�Z�ZS)�ESMBaseEntitlementT.)�returncCsddlm}m}||fS)Nr)�ROSEntitlement�ROSUpdatesEntitlement)Zuaclient.entitlements.rosrr)�selfrr�r�;/usr/lib/python3/dist-packages/uaclient/entitlements/esm.py�dependent_servicessz%ESMBaseEntitlement.dependent_services��progressrcs2ddlm}t��|�}|r.||j�|��|S�Nr)�update_motd_messages)�uaclient.timer.update_messagingr�super�_perform_enable�cfg�disable_local_esm_repo)rrrZenable_performed��	__class__rrrs
z"ESMBaseEntitlement._perform_enableNc
Cs�t��j}|j�d�st�|jtd�d�}ttj	�
t|j�d�}ttj	�
t|j�d�}tj	�
|�sttj	�
|�rxdSdj|d�}dj||d�}t�|tj||t|jdd	��dS)
Nzesm-�sources�listz$https://esm.ubuntu.com/{name}/ubuntu)�namez0{series}-{name}-security {series}-{name}-updates)�seriesr%�)Zurl�suitesZkeyrings_dir�keyring_fileZdeb_src)rZget_release_infor&r%�
startswith�AssertionError�lenr�os�path�normpathr�	repo_file�exists�formatZ
write_filer	r
�
repo_key_file)rr&Zesm_nameZsources_repo_filenameZlist_repo_filenameZesm_urlr(rrr�setup_local_esm_repo#sD
��������z'ESMBaseEntitlement.setup_local_esm_repocCsVtj�tt|j�}t�|�tj�t|j�}t�t	|d��t�t	|d��dS)Nr#r$)
r-r.r/rrr3rZensure_file_absentr0r)rr)Z
repo_filenamerrrr Ls�
���z)ESMBaseEntitlement.disable_local_esm_repo)�__name__�
__module__�__qualname__rZurlsZ
ESM_HOME_PAGEZhelp_doc_urlZcheck_updates_pocket�propertyrrr
rr�ProgressWrapper�boolrr4r �
__classcell__rrr!rr
s	)rcsTeZdZdZdZejZejZ	ej
ZdZe
jeeedeffd��fdd�Z�ZS)�ESMAppsEntitlementZ
UbuntuESMAppszesm-appszubuntu-pro-esm-apps.gpgNrcsBddlm}t��|�\}}|r:||j�t��r:|��||fSr)rrr�disablerrZis_current_series_ltsr4�rrrZdisable_performedZfailr!rrr=fs
zESMAppsEntitlement.disable)r5r6r7�originr%rZESM_APPS_TITLE�titleZESM_APPS_DESCRIPTION�descriptionZESM_APPS_HELP_TEXT�	help_textr3rr9rr:rrr=r;rrr!rr<^s�r<csTeZdZdZdZejZejZ	ej
ZdZe
jeeedeffd��fdd�Z�ZS)�ESMInfraEntitlementz	esm-infraZ	UbuntuESMzubuntu-pro-esm-infra.gpgNrcsBddlm}t��|�\}}|r:||j�t��r:|��||fSr)rrrr=rrZis_current_series_active_esmr4r>r!rrr={s
zESMInfraEntitlement.disable)r5r6r7r%r?rZESM_INFRA_TITLEr@ZESM_INFRA_DESCRIPTIONrAZESM_INFRA_HELP_TEXTrBr3rr9rr:rrr=r;rrr!rrCss�rC)r-�typingrrrZuaclientrrrZuaclient.aptrr	r
Zuaclient.defaultsrZuaclient.entitlementsrZuaclient.entitlements.baser
Z(uaclient.entitlements.entitlement_statusrZ
uaclient.utilrZRepoEntitlementrr<rCrrrr�<module>sQ