File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/esm.cpython-310.pyc
o
    ��Jh�  �                   @   s�   d dl Z d dlmZmZmZ d dlmZmZmZ d dl	m
Z
mZmZ d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ G d
d� dej�ZG dd
� d
e�ZG dd� 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_extensionc                       sf   e Zd ZejjZdZede	e
e df fdd��Zde
jdef� fdd�Zdd
d�Zddd
�Z�  ZS )�ESMBaseEntitlementT�return.c                 C   s   ddl m}m} ||fS )Nr   )�ROSEntitlement�ROSUpdatesEntitlement)�uaclient.entitlements.rosr   r   )�selfr   r   � r   �;/usr/lib/python3/dist-packages/uaclient/entitlements/esm.py�dependent_services   s   z%ESMBaseEntitlement.dependent_services�progressc                    s2   ddl m} t� �|�}|r|| j� | ��  |S �Nr   )�update_motd_messages)�uaclient.timer.update_messagingr   �super�_perform_enable�cfg�disable_local_esm_repo)r   r   r   �enable_performed��	__class__r   r   r      s   
z"ESMBaseEntitlement._perform_enableNc              
   C   s�   t �� j}| j�d�s
J �| jtd�d � }ttj�	t
| j �d�}ttj�	t
| j �d�}tj�|�s:tj�|�r<d S dj
|d�}dj
||d�}t �|tj
||t| jdd	�� d S )
Nzesm-�sources�listz$https://esm.ubuntu.com/{name}/ubuntu)�namez0{series}-{name}-security {series}-{name}-updates)�seriesr&