HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/esm.cpython-310.pyc
o

��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_extensioncsfeZdZejjZdZede	e
edffdd��Zde
jdef�fdd�Zdd
d�Zddd
�Z�ZS)�ESMBaseEntitlementT�return.cCsddlm}m}||fS)Nr)�ROSEntitlement�ROSUpdatesEntitlement)�uaclient.entitlements.rosrr)�selfrr�r�;/usr/lib/python3/dist-packages/uaclient/entitlements/esm.py�dependent_servicessz%ESMBaseEntitlement.dependent_services�progresscs2ddlm}t��|�}|r||j�|��|S�Nr)�update_motd_messages)�uaclient.timer.update_messagingr�super�_perform_enable�cfg�disable_local_esm_repo)rrr�enable_performed��	__class__rrrs
z"ESMBaseEntitlement._perform_enableNc
Cs�t��j}|j�d�s
J�|jtd�d�}ttj�	t
|j�d�}ttj�	t
|j�d�}tj�|�s:tj�|�r<dSdj
|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&�)�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)rr'�esm_name�sources_repo_filename�list_repo_filename�esm_urlr*rrr�setup_local_esm_repo#sB
��������z'ESMBaseEntitlement.setup_local_esm_repocCsVtj�tt|j�}t�|�tj�t|j�}t�t	|d��t�t	|d��dS)Nr$r%)
r1r2r3rrr8r�ensure_file_absentr4r)rr,�
repo_filenamerrrr Ls�
���z)ESMBaseEntitlement.disable_local_esm_repo)rN)�__name__�
__module__�__qualname__r�urls�
ESM_HOME_PAGE�help_doc_url�check_updates_pocket�propertyrrr
rr�ProgressWrapper�boolrr=r �
__classcell__rrr"rr
s
	)rc�VeZdZdZdZejZejZ	ej
ZdZde
jdeeedefff�fdd�Z�ZS)	�ESMAppsEntitlement�
UbuntuESMAppszesm-appszubuntu-pro-esm-apps.gpgrrNc�Bddlm}t��|�\}}|r||j�t��r|��||fSr)rrr�disablerr�is_current_series_ltsr=�rrr�disable_performed�failr"rrrOf�
zESMAppsEntitlement.disable)r@rArB�originr&r�ESM_APPS_TITLE�title�ESM_APPS_DESCRIPTION�description�ESM_APPS_HELP_TEXT�	help_textr8rrHrrIrrrOrJrrr"rrL^���rLcrK)	�ESMInfraEntitlementz	esm-infra�	UbuntuESMzubuntu-pro-esm-infra.gpgrrNcrNr)rrrrOrr�is_current_series_active_esmr=rQr"rrrO{rTzESMInfraEntitlement.disable)r@rArBr&rUr�ESM_INFRA_TITLErW�ESM_INFRA_DESCRIPTIONrY�ESM_INFRA_HELP_TEXTr[r8rrHrrIrrrOrJrrr"rr]sr\r])r1�typingrrr�uaclientrrr�uaclient.aptrr	r
�uaclient.defaultsr�uaclient.entitlementsr�uaclient.entitlements.baser
�(uaclient.entitlements.entitlement_statusr�
uaclient.utilr�RepoEntitlementrrLr]rrrr�<module>sQ