Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/uaclient/entitlements/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

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

���f�7�@s�ddlZddlmZmZmZmZddlmZmZm	Z	m
Z
mZmZm
Z
mZmZddlmZmZddlmZddlmZddgZd	d
d�Ze��Ze�e�e��ZGdd
�d
e�Zdd�Z dS)�N)�Any�Dict�Optional�Tuple)	�api�event_logger�
exceptions�http�	livepatch�messages�snap�system�util)�EntitlementWithMessage�
UAEntitlement)�ApplicationStatus)�StaticAffordanceg�?g�?z)Invalid Auth-Token provided to livepatch.z2Your running kernel is not supported by Livepatch.)zUnknown Auth-Tokenzunsupported kernelc	sFeZdZejjZdZejZ	ej
ZejZ
dZdZdZdZedeedffdd��Zedeedffdd	��Zdefd
d�Zdefdd
�Zdejdefdd�Z		d"dejdededefdd�Zdejfdd�Z dee!e"ej#ffdd�Z$deee"ej#ffdd�Z%dd�Z&	d#de'e(e)fde'e(e)fdedef�fd d!�
Z*�Z+S)$�LivepatchEntitlementr
FT�return.cCs0ddlm}ddlm}t|tj�t|tj�fS)Nr��FIPSEntitlement)�RealtimeKernelEntitlement)�uaclient.entitlements.fipsr�uaclient.entitlements.realtimerrr�LIVEPATCH_INVALIDATES_FIPS�REALTIME_LIVEPATCH_INCOMPATIBLE)�selfrr�r�A/usr/lib/python3/dist-packages/uaclient/entitlements/livepatch.py�incompatible_services,s���z*LivepatchEntitlement.incompatible_servicescs\ddlm}||jd�}t|��dtjk��tjj	|j
d�dd�dftj�fdd�dffS)	Nrr)�cfg)�titlecSst��S�N)r
�is_containerrrrr�<lambda>Ksz9LivepatchEntitlement.static_affordances.<locals>.<lambda>Fcs�Sr"rr��is_fips_enabledrrr$Ps)rrr �bool�application_statusr�ENABLEDr�"SERVICE_ERROR_INSTALL_ON_CONTAINER�formatr!�!LIVEPATCH_ERROR_WHEN_FIPS_ENABLED)rr�fips_entrr%r�static_affordances;s ���
��z'LivepatchEntitlement.static_affordancescC�dS)N�r�rrrr�enable_stepsU�z!LivepatchEntitlement.enable_stepscCr/)N�rr1rrr�
disable_stepsXr3z"LivepatchEntitlement.disable_steps�progressc
Cs�|�tj�t��s|�dtjjdd��t��t�	�sU|�dtjjdd��zt�
d�Wn%tjyT}zt
jd|d�|�dtjjdd��WYd	}~nd	}~wwt�|�zt�d�Wn$tjy�}zt
jd
|d�t�tjjdd��WYd	}~nd	}~wwt�d|jjtj�}t�d
|jjtj�}tj||tjd�t��s�|�dtjjdd��zt�
d�Wntjy�}ztjt |�d��d	}~wwt�!||�|j"|ddd�S)zYEnable specific entitlement.

        @return: True on success, False otherwise.
        �info�snapd)�packagesz
snapd snapz!Failed to install snapd as a snap��exc_infozsnap install snapd��commandNzFailed to refresh snapd snapzsnap refresh snapdr	�https)�
http_proxy�https_proxy�retry_sleepszcanonical-livepatch snapzcanonical-livepatch��	error_msgT)�process_directives�
process_token)#r6r�INSTALLING_LIVEPATCHr�is_snapd_installed�emit�INSTALLING_PACKAGESr+�
install_snapd�is_snapd_installed_as_a_snap�install_snapr�ProcessExecutionError�LOG�warning�EXECUTING_COMMAND_FAILED�run_snapd_wait_cmd�refresh_snap�eventr7r	�validate_proxyr r?�PROXY_VALIDATION_SNAP_HTTP_URLr@�PROXY_VALIDATION_SNAP_HTTPS_URL�configure_snap_proxy�SNAP_INSTALL_RETRIESr
�is_livepatch_installed�ErrorInstallingLivepatch�str�configure_livepatch_proxy�setup_livepatch_config)rr6�er?r@rrr�_perform_enable[s~������
	������������z$LivepatchEntitlement._perform_enablerDrEc
Cs�|�tj�|j���|j�}|rBzt|�Wn*tj	yA}zt
jt|�|d�|�
dtjjt|�d��WYd}~dSd}~ww|r�|�d�}|sXt
�d|j�|jjd}|��\}}|tjkr�t
�d	�|�
dtj�z
t�tjd
g�Wntj	y�}zt
jt|�|d�WYd}~dSd}~wwztjtjd|gdd
�WdStj	y�}z0tj}	t��D]\}
}|
t|�vr�|	|7}	nq�|	tjkr�|	t|�7}	|�
d|	�WYd}~dSd}~wwdS)aProcesss configuration setup for livepatch directives.

        :param process_directives: Boolean set True when directives should be
            processsed.
        :param process_token: Boolean set True when token should be
            processsed.
        r:r7rBNF�
resourceTokenzHNo specific resourceToken present. Using machine token as %s credentials�machineTokenz&Disabling livepatch before re-enabling�disable�enableT��capture)r6r�SETTING_UP_LIVEPATCH�machine_token_file�entitlements�get�name�process_config_directivesrrMrN�errorr[rH�LIVEPATCH_UNABLE_TO_CONFIGUREr+�debugr!�
machine_tokenr(r�DISABLEDr7�LIVEPATCH_DISABLE_REATTACHr
�subpr
�
LIVEPATCH_CMD�LIVEPATCH_UNABLE_TO_ENABLE�
ERROR_MSG_MAP�items)rr6rDrE�entitlement_cfgr^�livepatch_tokenr(�_details�msg�
error_message�
print_messagerrrr]�sr
����	
��

��
���
��
z+LivepatchEntitlement.setup_livepatch_configcCsBt��sdStjdg}|�tjjd�|�d��tj	|dd�dS)zYDisable specific entitlement

        @return: True on success, False otherwise.
        Trb� r<rd)
r
rYrsr6r�EXECUTING_COMMANDr+�joinr
rr)rr6�cmdrrr�_perform_disable�s
�z%LivepatchEntitlement._perform_disablec
Cs�tjdf}t��stjtjfSzt��}Wntj	y3}ztj
tjj|j
d�fWYd}~Sd}~ww|dur>tjtjfS|S)N)�livepatch_error)rr)r
rYrpr�LIVEPATCH_NOT_ENABLED�statusrrM�WARNING� LIVEPATCH_CLIENT_FAILURE_WARNINGr+�stderr�+LIVEPATCH_APPLICATION_STATUS_CLIENT_FAILURE)rr��livepatch_statusr^rrrr(�s$
�����z'LivepatchEntitlement.application_statuscCszt��}|tjjkrt��}dtjj|j	|j
d�fS|tjjkr0t��}dtjj|j	|j
d�fS|tjj
kr;dtjfSdS)NT)�version�arch)FN)r
�on_supported_kernel�LivepatchSupport�UNSUPPORTEDr
�get_kernel_infor�LIVEPATCH_KERNEL_NOT_SUPPORTEDr+�
uname_release�uname_machine_arch�
KERNEL_EOL�LIVEPATCH_KERNEL_EOL�KERNEL_UPGRADE_REQUIRED�!LIVEPATCH_KERNEL_UPGRADE_REQUIRED)r�support�kernel_inforrr�enabled_warning_status
s,�����z+LivepatchEntitlement.enabled_warning_statuscCs"t��tjjkrt��stjSdSr")r
r�r�r�r
r#r�*LIVEPATCH_KERNEL_NOT_SUPPORTED_DESCRIPTIONr1rrr�status_description_override*s��z0LivepatchEntitlement.status_description_override�orig_access�deltas�allow_enablec
s�t��|||�r
dS|�di�}|�di��dd�}|r'|�t���\}}|S|��\}}|tjkr4dS|�di�}	t	ddg�}
t
|
�|	��}t
|�d	d��}t||g�rot
�d
�t�tjj|jd��|jt��||d�SdS)
a1Process any contract access deltas for this entitlement.

        :param orig_access: Dictionary containing the original
            resourceEntitlement access details.
        :param deltas: Dictionary which contains only the changed access keys
        and values.
        :param allow_enable: Boolean set True if allowed to perform the enable
            operation. When False, a message will be logged to inform the user
            about the recommended enabled service.

        :return: True when delta operations are processed; False when noop.
        T�entitlement�obligations�enableByDefaultF�
directives�caCerts�remoteServerr`zANew livepatch directives or token. running setup_livepatch_config)�service)r6rDrE)�super�process_contract_deltasrircr�ProgressWrapperr(rrp�setr'�intersection�anyrNr7rSr�#SERVICE_UPDATING_CHANGED_DIRECTIVESr+rjr])
rr�r�r��delta_entitlement�process_enable_default�enable_success�_r(�delta_directives�supported_deltasrDrE��	__class__rrr�3sB�
�����z,LivepatchEntitlement.process_contract_deltas)TT)F),�__name__�
__module__�__qualname__r�urls�LIVEPATCH_HOME_PAGE�help_doc_urlrj�LIVEPATCH_TITLEr!�LIVEPATCH_DESCRIPTION�description�LIVEPATCH_HELP_TEXT�	help_text�#affordance_check_kernel_min_version�affordance_check_kernel_flavor�affordance_check_series�affordance_check_arch�propertyrrrrr.�intr2r5rr�r'r_r]r�rr�NamedMessager(r�r�rr[rr��
__classcell__rrr�rrs\I����
�A
�
� 
�
�
���rcCs�|sdS|�di��di�}|�d�}|r#tjtjdd�|�gdd�|�d	d
�}|�d�r4|dd�}|rFtjtjdd
�|�gdd�dSdS)a�Process livepatch configuration directives.

    We process caCerts before remoteServer because changing remote-server
    in the canonical-livepatch CLI performs a PUT against the new server name.
    If new caCerts were required for the new remoteServer, this
    canonical-livepatch client PUT could fail on unmatched old caCerts.

    @raises: ProcessExecutionError if unable to configure livepatch.
    Nr�r�r��configzca-certs={}Trdr���/���zremote-server={})rir
rrr
rsr+�endswith)r r��ca_certs�
remote_serverrrrrkls0

��
�
��rk)!�logging�typingrrrr�uaclientrrrr	r
rrr
r�uaclient.entitlements.baserr�(uaclient.entitlements.entitlement_statusr�uaclient.typesr�LIVEPATCH_RETRIESru�get_event_loggerrS�	getLogger�replace_top_level_logger_namer�rNrrkrrrr�<module>s ,�P

Spamworldpro Mini