File: //usr/lib/python3/dist-packages/uaclient/entitlements/__pycache__/esm.cpython-310.pyc
o
nHJej � @ s� d dl Z d dlmZmZmZ d dlmZmZmZ d dl m
Z
mZmZ d dl
mZ d dlmZ d dlmZ d dlmZ G d d
� d
ej�ZG dd� de�ZG d
d� de�ZdS )� N)�Tuple�Type�Union)�gpg�messages�system)�APT_KEYS_DIR�ESM_REPO_FILE_CONTENT�KEYRINGS_DIR)�ESM_APT_ROOTDIR)�repo)�
UAEntitlement)�CanDisableFailurec sb e Zd ZejjZedee e
df fdd��Zddedef� fdd�
Z
dd
d�Zddd
�Z� ZS )�ESMBaseEntitlement�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_servicesF�silentc s4 ddl m} t� j|d�}|r|| j� | �� |S �Nr )�update_motd_messages)r )�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 � }tj�t | j
j| jd� �}| j}tj�
|�r/d S t �|tj||d�� tj�t|�}tj�t t | �}tjtj�|�dd� t�||� d S )Nzesm-��name)r$ �seriesT)�exist_ok)r �get_release_infor% r$ �
startswith�len�os�path�normpathr �repo_list_file_tmpl�format�
repo_key_file�exists�
write_filer �joinr
r �makedirs�dirnamer �export_gpg_key)r r% �esm_name�
repo_filename�keyring_file�source_keyring_file�destination_keyring_filer r r �setup_local_esm_repo! s&