File: //usr/lib/python3/dist-packages/uaclient/files/__pycache__/notices.cpython-310.pyc
o
��Jh�! � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z m
Z
mZmZm
Z
e �e
�e��Ze
�� Zedg d��ZG dd � d ee�ZG d
d� d�Zdadd
� Zdeddfdd�Zdeddfdd�Zdee fdd�ZdS )� N)�
namedtuple)�Enum)�List)�defaults�event_logger�messages�system�util�NoticeFileDetails)�order_id�label�is_permanent�messagec @ s* e Zd Zedddejd�Zeddddd�Zed d
dejd�Zedddej d�Z ed
ddej
d�Zedddejd�Zedddej
d�Z
edddejd�Zedddejjd�Zedddejd�Zedddejd�Zedddejd�Zeddddd�Zedd dejd�Zed!d"dejd�Zed#d$dejd�Zd%S )&�Notice�contract_expired�5T)r r r
r �reboot_required�10FzSystem reboot required�enable_reboot_required�11�reboot_script_failed�12�fips_reboot_required�20�fips_system_reboot_required�21�fips_install_out_of_date�22�fips_disable_reboot_required�23�fips_proc_file_error�24�fips_manual_disable_url�25�wrong_fips_metapackage_on_cloud�lp_lts_reboot_required�30�operation_in_progress�60z"Operation in progress: {operation}�auto_attach_retry_full_notice�70�auto_attach_total_failure�71�limited_to_release�80N)�__name__�
__module__�__qualname__r
r �CONTRACT_EXPIRED�REBOOT_REQUIRED�ENABLE_REBOOT_REQUIRED_TMPL�ENABLE_REBOOT_REQUIRED�REBOOT_SCRIPT_FAILED�FIPS_REBOOT_REQUIRED_MSG�FIPS_REBOOT_REQUIRED�FIPS_SYSTEM_REBOOT_REQUIRED�FIPS_INSTALL_OUT_OF_DATE�FIPS_DISABLE_REBOOT_REQUIRED�FIPS_PROC_FILE_ERROR�tmpl_msg�NOTICE_FIPS_MANUAL_DISABLE_URL�FIPS_MANUAL_DISABLE_URL�&NOTICE_WRONG_FIPS_METAPACKAGE_ON_CLOUD�WRONG_FIPS_METAPACKAGE_ON_CLOUD�LIVEPATCH_LTS_REBOOT_REQUIRED�OPERATION_IN_PROGRESS�AUTO_ATTACH_RETRY_NOTICE�AUTO_ATTACH_RETRY_FULL_NOTICE�&AUTO_ATTACH_RETRY_TOTAL_FAILURE_NOTICE�AUTO_ATTACH_RETRY_TOTAL_FAILURE�LIMITED_TO_RELEASE� rI rI �8/usr/lib/python3/dist-packages/uaclient/files/notices.pyr s� ���������������
�r c @ s| e Zd Zdedefdd�Zdefdd�Zdedee fd d
�Zdedede fdd
�Z
dedefdd�Zdee fdd�ZdS )�NoticesManager�notice_details�descriptionc C s^ t �� st�d|jj� dS |jjrtjntj }d�
|jj|jj�}t�
tj�||�|� dS )z�Adds a notice file. If the notice is found,
it overwrites it.
:param notice_details: Holds details concerning the notice file.
:param description: The content to be written to the notice file.
z.NoticesManager.add(%s) called as non-root userN�{}-{})r �we_are_currently_root�LOG�warning�valuer r
r �NOTICES_PERMANENT_DIRECTORY�NOTICES_TEMPORARY_DIRECTORY�formatr r �
write_file�os�path�join)�selfrL rM � directory�filenamerI rI rJ �addt s"