403Webshell
Server IP : 104.21.4.30  /  Your IP : 104.23.197.229
Web Server : Apache
System : Linux keen-cori.18-142-40-148.plesk.page 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 06:59:36 UTC 2025 x86_64
User : simottodesign.com_2tntp341vs7 ( 10011)
PHP Version : 8.3.31
Disable Function : opcache_get_status
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/uaclient/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/uaclient/__pycache__/livepatch.cpython-38.pyc
U

2�d�3�@s.ddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZmZddlmZmZmZmZmZmZddlmZddlmZdZd	Zd
ZdZe� �Z!e�"e�#e$��Z%ej&Gdd
�d
ej'��Z(Gdd�de�Z)Gdd�de�Z*Gdd�de�Z+Gdd�de�Z,e	e+d�dd�Z-e	e.e	e(d�dd�Z/Gdd�dej0�Z1e	e(d�dd�Z2e.e.e.e.e
e3e	e3fd �d!d"�Z4e.e.e.e.e	eje	e(d#�d$d%�Z5edd&�e(d�d'd(��Z6d4e.e	ee7dd)�d*d+�Z8d5e	e.e	e.e	ee7dd,�d-d.�Z9e.e	e.d/�d0d1�Z:e3d�d2d3�Z;dS)6�N)�	lru_cache)�List�Optional�Tuple)�event_logger�
exceptions�messages�system�util)�
BoolDataValue�
DataObject�Field�IncorrectTypeError�StringDataValue�	data_list)�state_files)�
serviceclientz
http-proxyzhttps-proxyz/snap/bin/canonical-livepatchz/v1/api/kernels/supportedc@s*eZdZe�Ze�Ze�Ze�Ze�ZdS)�LivepatchSupportN)	�__name__�
__module__�__qualname__�object�	SUPPORTED�KERNEL_UPGRADE_REQUIRED�
KERNEL_EOL�UNSUPPORTED�UNKNOWN�rr�4/usr/lib/python3/dist-packages/uaclient/livepatch.pyr s
rc@sDeZdZededdd�ededdd�gZeeee	d�dd	�Z
d
S)�LivepatchPatchFixStatus�nameF�Name�ZrequiredZdict_key�patchedZPatched�r r#cCs||_||_dS�Nr$)�selfr r#rrr�__init__/sz LivepatchPatchFixStatus.__init__N)rrrr
rr�fieldsr�str�boolr'rrrrr)s��rc@s`eZdZededdd�edee�ddd�ededdd�gZee	ee
eee	d	�d
d�ZdS)
�LivepatchPatchStatus�stateF�Stater"�fixesZFixes�versionZVersion�r,r.r/cCs||_||_||_dSr%r0)r&r,r.r/rrrr'DszLivepatchPatchStatus.__init__N)rrrr
rrrr(rr)rr'rrrrr+8s��

�r+c@sXeZdZededdd�ededdd�ededdd�gZeeeeeed	�d
d�Z	dS)
�LivepatchStatusStatus�kernelFZKernelr"�	livepatchZ	Livepatch�	supported�	Supported�r2r3r4cCs||_||_||_dSr%r6)r&r2r3r4rrrr'`szLivepatchStatusStatus.__init__N)
rrrr
rr+r(rr)r'rrrrr1Os$����r1c@s8eZdZedee�ddd�gZeeed�dd�Z	dS)	�LivepatchStatus�statusFZStatusr"�r8cCs
||_dSr%r9)r&r8rrrr'uszLivepatchStatus.__init__N)
rrrr
rr1r(rrr'rrrrr7ks��
�r7)�returncCs<t�st�d�dSzt�tddddg�\}}Wn6tjk
rft�	��t�
d�W5QRXYdSXzt�|�}WnDtj
k
r�t�	��t�
tjjd|d�j�W5QRXYdSXzt�|�}Wn<tk
�rt�	��t�
d	�|��W5QRXYdSX|jdk�s$t|j�d
k�r2t�d�dS|jdS)
Nz$canonical-livepatch is not installedr8z	--verbosez--format�jsonz7canonical-livepatch returned error when checking statuszcanonical-livepatch status)�source�outz<canonical-livepatch status returned unexpected structure: {}�z!canonical-livepatch has no statusr)�is_livepatch_installed�LOG�debugr	�subp�
LIVEPATCH_CMDrZProcessExecutionErrorr
�disable_log_to_console�warningr;�loadsZJSONDecodeErrorrZJSON_PARSER_ERROR�format�msgr7Z	from_dictrr8�len)r=�_Zstatus_jsonZstatus_rootrrrr8|sL
�
�
��
��
r8)�
status_strr:cCsJ|dkrtjS|dkrtjS|dkr*tjS|dkr8tjS|dkrFtjSdS)Nr4zkernel-upgrade-requiredzkernel-end-of-lifeZunsupported�unknown)rrrrrr)rKrrr�(_convert_str_to_livepatch_support_status�srMc@s2eZdZdZeeeeeejeed�dd�ZdS)�UALivepatchClientZ
livepatch_url�r/�flavor�arch�codename�
build_dater:cCs�|||||dk	r|��ndd�}|��}z|jt||d�}WnPtk
r�}	z2t���t�d�t�|	�W5QRXWY�dSd}	~	XYnX|j	dkr�t���t�d�t�|j
�W5QRXdS|j�d�}
|
dks�t
|
t�r�|
r�tjStjSt|
�S)NrL)zkernel-versionZflavourZarchitecturerRz
build-date)�query_params�headersz4error while checking livepatch supported kernels API��z0livepatch supported kernels API was unsuccessfulr5)Z	isoformatrUZrequest_url�"LIVEPATCH_API_V1_KERNELS_SUPPORTED�	Exceptionr
rDr@rE�codeZbodyZ	json_dict�get�
isinstancer*rrrrM)r&r/rPrQrRrSrTrUZresponse�eZapi_supported_valrrr�is_kernel_supported�sB	�
�	�

�


z%UALivepatchClient.is_kernel_supportedN)	rrrZcfg_url_base_attrr)r�datetimerr]rrrrrN�s�rNcCst�}|dkrdSt|j�Sr%)r8rMr4)Z	lp_statusrrr�_on_supported_kernel_cli�sr_)r/rPrQrRr:c	Cs�ztj��}Wntk
r&d}YnX|dk	r�tj�tjj�tjdd�}t	|j
|k|j|k|j|k|j
|k|j|kg�r�|jdkr�t���t�d�W5QRXd|jfSdS)zOCheck local cache of kernel support

    :return: (is_cache_valid, result)
    N�)Zdaysz-livepatch kernel support cache has None valueT)FN)r�livepatch_support_cache�readrXr^�now�timezone�utcZ	timedelta�all�	cached_atr/rPrQrRr4r
rDr@rE)r/rPrQrRZ
cache_dataZone_week_agorrr�_on_supported_kernel_cache�s2
�
���	

�
rhrOcCs�t�j|||||d�}d}|tjkr*d}n|tjkr8d}tj�tj|||||t	j	�
t	jj�d��|dkr�t
���t�d�W5QRX|S)N)r/rPrQrRrSTF)r/rPrQrRr4rgz3livepatch kernel support API response was ambiguous)rNr]rrrrra�writeZLivepatchSupportCacheDatar^rcrdrer
rDr@rE)r/rPrQrRrSr4Zcache_supportedrrr�_on_supported_kernel_apis4�	

��
rj)�maxsizecCs�t�}|dk	rt�d�|St��}|jdksB|jdksB|jdkrRt�d�t	j
St�|j
�}t��j}dj|j|jd�}t||j||�\}}|r�t�d�|dkr�t	j
S|r�t	jS|s�t	jSt�d�t||j|||j�}|dkr�t	j
S|S)z�
    Checks CLI, local cache, and API in that order for kernel support
    If all checks fail to return an authoritative answer, we return None
    Nzusing livepatch cli for supportzHunable to determine enough kernel information to check livepatch supportz{major}.{minor})�major�minorzusing livepatch support cachezusing livepatch support api)r_r@rAr	Zget_kernel_inforPrlrmrErrr
Zstandardize_arch_nameZuname_machine_archZget_release_infoZseriesrGrhrrrjrS)Zcli_saysZkernel_inforQrRZlp_api_kernel_verZis_cache_validZ
cache_saysZapi_saysrrr�on_supported_kernel:s\
����
��

�rn)�
protocol_type�retry_sleepsr:cCs(t�s
dStjtdd�|�g|d�dS)a�
    Unset livepatch configuration settings for http and https proxies.

    :param protocol_type: String either http or https
    :param retry_sleeps: Optional list of sleep lengths to apply between
        retries. Specifying a list of [0.5, 1] tells subp to retry twice
        on failure; sleeping half a second before the first retry and 1 second
        before the second retry.
    N�configz	{}-proxy=�rp)r?r	rBrCrG)rorprrr�unconfigure_livepatch_proxyvs�rs)�
http_proxy�https_proxyrpr:cCsjddlm}|s|r*t�tjj|jd��|rHtj	t
dd�|�g|d�|rftj	t
dd�|�g|d�dS)	a�
    Configure livepatch to use http and https proxies.

    :param http_proxy: http proxy to be used by livepatch. If None, it will
                       not be configured
    :param https_proxy: https proxy to be used by livepatch. If None, it will
                        not be configured
    :@param retry_sleeps: Optional list of sleep lengths to apply between
                               snap calls
    r)�LivepatchEntitlement)�servicerqz
http-proxy={}rrzhttps-proxy={}N)Zuaclient.entitlementsrv�event�inforZSETTING_SERVICE_PROXYrG�titler	rBrC)rtrurprvrrr�configure_livepatch_proxy�s"����r{)�keyr:cCs\t�tdg�\}}t�d�|�|tj�}|r6|�d�nd}|rLt�dd|�}|rX|�	�SdS)z�
    Gets the config value from livepatch.
    :param key: can be any valid livepatch config option
    :return: the value of the livepatch config option, or None if not set
    rqz
^{}: (.*)$r>Nz\"(.*)\"z\g<1>)
r	rBrC�re�searchrG�	MULTILINE�group�sub�strip)r|r=rJ�match�valuerrr�get_config_option_value�sr�cCst�t�dk	Sr%)r	ZwhichrCrrrrr?�sr?)N)NNN)<r^�enumr;Zloggingr}�	functoolsr�typingrrrZuaclientrrrr	r
Zuaclient.data_typesrrr
rrrZuaclient.filesrZ
uaclient.httprZHTTP_PROXY_OPTIONZHTTPS_PROXY_OPTIONrCrWZget_event_loggerrxZ	getLoggerZreplace_top_level_logger_namerr@�unique�Enumrrr+r1r7r8r)rMZUAServiceClientrNr_r*rhrjrn�floatrsr{r�r?rrrr�<module>sx -�3�#�&<�
��
�%

Youez - 2016 - github.com/yon3zu
LinuXploit