403Webshell
Server IP : 172.67.131.151  /  Your IP : 104.23.243.115
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__/status.cpython-38.pyc
U

2�dr�@s�ddlZddlZddlZddlZddlmZddlmZmZddlm	Z	m
Z
mZmZm
Z
ddlmZmZmZmZmZmZddlmZddlmZmZddlmZmZdd	lmZmZdd
l m!Z!ddl"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)dd
l*m+Z+ddl,m-Z-e�.�Z/e�0e�1e2��Z3dZ4dZ5dZ6e&j7j8e-j9e&j7j8e-j:e&j;j8e-j<e&j;j8e-j:e&j=j8e-j>e&j=j8e-j:e&j?j8e-j>e&j?j8e-j:e&j@j8e-jAe&j@j8e-j:e#jBj8e-j9e#jBj8e-j:e#jCj8e-j>e#jCj8e-j:e4e-j9e4e-j:e5e-j9e5e-j:e6e-j9e6e-j:i
ZDdZEdZFdZGdZHdZIdde�J�dddddge%j;j8ejKigdddge&j=j8d�dddgd�dd�ZLdd�ZMe
eNe	fd �d!d"�ZOee
eNe	fd#�d$d%�ZPee
eNe	fd#�d&d'�ZQe
eNe	fd �d(d)�ZRe
eNe	fd �d*d+�ZSdFeeTe
eNe	fd,�d-d.�ZUee
eNe	feNe
eNe	fd/�d0d1�ZVdGeNeTe
e
eNe	feWfd2�d3d4�ZXeNeNd5�d6d7�ZYeeeNeNd8�d9d:�ZZdHee
eNeNfeeNeeNd;�d<d=�Z[eeeNd>�d?d@�Z\dIe
eNe	feTeNdA�dBdC�Z]dDdE�Z^dS)J�N)�OrderedDict)�datetime�timezone)�Any�Dict�List�Optional�Tuple)�event_logger�
exceptions�	livepatch�messages�util�version)�_is_attached)�UA_CONFIGURABLE_KEYS�UAConfig)�get_available_resources�get_contract_information)�ATTACH_FAIL_DATE_FORMAT�PRINT_WRAP_WIDTH)�entitlement_factory)�ContractStatus�UserFacingAvailability�UserFacingConfigStatus�UserFacingStatus)�notices�state_files)�Notice)�TxtColorZ	essentialZstandardZadvancedz({name: <17}{available: <11}{description}zJ{name: <17}{available: <11}{entitled: <11}{auto_enabled: <14}{description}z0SERVICE          ENTITLED  STATUS    DESCRIPTIONz4{name: <17}{entitled: <19}{status: <19}{description}z={marker} {name: <15}{entitled: <19}{status: <19}{description}zUContent provided in json response is currently considered Experimental and may changez0.1F���id�name�
created_at�products�tech_support_level�r#r"r$Zexternal_account_ids)Z_docZ_schema_versionr�
machine_id�attached�	effective�expires�origin�services�execution_status�execution_details�featuresr�contract�account�	simulatedcCsdd�|��D�S)NcSs4g|],}|jjs|jjn|jj|jj|jjd��qS))r#Zreason_code�reason)�entitlement�
is_variantr#�variant_nameZ	named_msg�msg��.0�service�r<�1/usr/lib/python3/dist-packages/uaclient/status.py�
<listcomp>ys��
�z,_get_blocked_by_services.<locals>.<listcomp>)Zblocking_incompatible_services)�entr<r<r=�_get_blocked_by_servicesxs�r@)�returnc

s�d}d}|��}|��}|j�kr&dnd}i}|tjkr@tj}	nz|j�kr\tj}	�|j}n^|��\}	}
|	tj	kr�|
j|
j
d�}n
|
r�|
j
}|	tjkr�d}|jr���fdd�|j��D�}t
|�}|j|j|j|	j|||||d�	}|js�||d<|S)	Nr �no�yes)�code�messagecs$i|]\}}|t|�d�����qS)��cfg)�_attached_service_status)r:r7Zvariant_cls�rG�inapplicable_resourcesr<r=�
<dictcomp>�s��z,_attached_service_status.<locals>.<dictcomp>)	r#�description�entitled�status�status_details�description_override�	available�
blocked_by�warning�variants)�status_description_override�contract_statusr#r�
UNENTITLEDr�UNAVAILABLE�INAPPLICABLEZuser_facing_status�WARNINGr8rT�itemsr@Zpresentation_namerL�valuer6)
r?rJrGrSrOrPrVrQrTZ
ent_statusZdetailsrR�service_statusr<rIr=rH�sL


�
�	�rH)rGrAcCs�t�tj�t�tj�t�t�}|jd}|d}t	j
j}|�|dd|�
d�t��pZg|d|d|�
dd	�|�
d
g�|d�|jjd|jjd|jj�
dd	�|jj�
dg�d
�d��|�
d�r�|jj|d<|�
d�r�|d|d<|j�
d�}|�st|�}dd�t|dd�d�D�}|D]\}zt||�
dd	�d�}Wntjk
�rZY�q YnX||�}	|d�t|	||���q |djdd�d�|jj�
di��
d�}
|
�r�|
�
di��
d�}|�r�||d d!<|S)"z8Return configuration of attached status as a dictionary.�machineTokenInfo�contractInfoZ	machineIdTr,r"r#�	createdAtr r%r!�externalAccountIDsr')r(r)r,rr1r2�effectiveTor+�
effectiveFromr*ZavailableResourcescSs&i|]}|�d�s|d|�d��qS)rQr#rL��get�r:�resourcer<r<r=rK�s
�z$_attached_status.<locals>.<dictcomp>cSs|�dd�S�Nr#r rd��xr<r<r=�<lambda>��z"_attached_status.<locals>.<lambda>��key�rGr#r-cSs|�dd�Srhrdrir<r<r=rk�rl�supportr5�affordances�supportLevelr1r&)r�removerZAUTO_ATTACH_RETRY_FULL_NOTICEZAUTO_ATTACH_RETRY_TOTAL_FAILURE�copy�deepcopy�DEFAULT_STATUSZ
machine_tokenrrYr\�updatere�listZmachine_token_filer2Zcontract_expiry_datetimer�sortedrr�EntitlementNotFoundError�appendrH�sort�entitlements)rG�responser^r_r&�	resourcesrJrg�ent_clsr?rprrr<r<r=�_attached_status�sz




�

�����

�
�

��r�cCs�t�t�}t|�}|D]�}|�d�r.tjj}ntjj}zt	||�dd�d�}Wn6t
jk
r�t�
tjj|�dd�d��YqYnX|jdkr�t��tjjkr�||�}|��}nd}|d	�|�d
|d�|j||d��q|d	jdd
�d�|S)z#Return unattached status as a dict.rQr#r rozwithout a 'name' key)r;rNr-�presentedAs)r#rLrPrQcSs|�dd�Srhrdrir<r<r=rk4rlz$_unattached_status.<locals>.<lambda>rm)rtrurvrrer�	AVAILABLEr\rXrrrz�LOG�debugr
Z!AVAILABILITY_FROM_UNKNOWN_SERVICE�formatr#r�on_supported_kernel�LivepatchSupport�UNSUPPORTEDrUr{rLr|)rGr~rrgrQr�Zlp�descr_overrider<r<r=�_unattached_statussH



�

��
���
��r�c
	Cs�tj|jdd�}||O}|r |St�|�}g}|�di�D]j}|d}zt||d�}Wn$tjk
rz|�	|�Yq:YnXt
jj}	|j
r�|�dd�|	kr:|�	|�q:|r�||d<|S)z1Remove beta services from response dict if neededzfeatures.allow_beta)�configZ
path_to_valuer-r#rorNr )rZis_config_value_truerGrtrurerrrzr{r�ACTIVEr\�is_beta)
rG�show_allr~Zconfig_allow_betaZnew_responseZreleased_resourcesrg�
resource_namer�Zenabled_statusr<r<r=�_handle_beta_resources9s,�


r�cCs�t}|jj}tj}|��\}}t��p(g}|dkrN|jj}tj	j
||d�j}n"tj
jrp|jj}d}tjj
|d�}||||j|j|jd�}i}	tD]}
t||
�r�t||
�|	|
<q�|	|dd<|S)aGReturn a dict with execution_status, execution_details and notices.

    Values for execution_status will be one of UserFacingConfigStatus
    enum:
        inactive, active, reboot-required
    execution_details will provide more details about that state.
    notices is a list of tuples with label and description items.
    r)�pid�lock_holderzconfiguration changes)�	operation)r.r/rZconfig_pathr�r0r��	ua_config)r�INACTIVEr\r
�NO_ACTIVE_OPERATIONSZcheck_lock_inforrxr�Z	LOCK_HELDr�r8rZreboot_cmd_marker_fileZ
is_presentZREBOOTREQUIREDZENABLE_REBOOT_REQUIRED_TMPLZcfg_pathrGr0r�hasattr�getattr)rGZ
userStatusZ
status_valZstatus_descZlock_pidr�Znotices_listr��retr�rnr<r<r=�_get_config_status]s<	�
��	
r�)rGr�rAcCspt|�jrt|�}nt|�}|�t|��t��r>|�d|�t	|||�}|sldd�|�
dg�D�}||d<|S)aReturn status as a dict, using a cache for non-root users

    When unattached, get available resources from the contract service
    to report detailed availability of different resources for this
    machine.

    Write the status-cache when called by root.
    zstatus-cachecSs g|]}|�dd�dkr|�qS�rQrCrdr9r<r<r=r>�s�zstatus.<locals>.<listcomp>r-)r�is_attachedr�r�rwr�rZwe_are_currently_rootZwrite_cacher�re)rGr�r~�available_servicesr<r<r=rN�s	


�rN)r}�entitlement_namerAcCs`|D]N}|�d�|kr|�d�r$dnd|�di��d�r<dnd|�di�d�Sqddid�S)	z0Extract information from the entitlements array.�typerMrCrBZobligationsZenableByDefaultrq)rM�auto_enabledrqrd)r}r�r5r<r<r=�_get_entitlement_information�s�
�r�)�tokenr�rAc
CsNd}t�t�}zt||�}WnRtjk
rn}z2t|d�rZ|jdkrZtjt	j
jt	j
jd��|�W5d}~XYnX|�
di�}|�
di�}|�|�
dd	�|�
d
d	�|�
dd	�|�
dg�d
�|�
d
d	�|�
d�|�
dd	�|�
dg�d�dd��t�tj�}	|�
d��rx|�
d�|d<|d}
|
|	}|��dk�rxt	jj|dd|
�t�d�}tj|j|jd�t�d|jd�d}|�
d��r�|�
d�|d<|d}
|	|
}|��dk�r�t	jj|dd|
�t�d�}tj|j|jd�t�d|jd�d}t|�}dd�t|dd�d �D�}|�
d!g�}|D]�}|�
d
d	�}zt||d"�}Wntjk
�rhY�q*YnX||d#�}t ||�}|d$�!|�
d%|j�|j"|d&|d'|j|k�r�d(nd)d*���q*|d$j#d+d�d �t |d,�}|d&�r|d-�
d.�}|�r||dd/<|�t$|��t%|||�}|�sFd0d�|�
d$g�D�}||d$<||fS)1z�Get a status dictionary based on a token.

    Returns a tuple with the status dictionary and an integer value - 0 for
    success, 1 for failure
    rrDi�)r8Zmsg_codeNr_ZaccountInfor"r r#r`r%)r"r#r$r%rar'T)r1r2r3rbr+r1)Zcontract_id�date)Z	error_msgZ
error_codezThis token is not valid.
�
�rcr*cSsg|]}|ds|d�qS)rQr#r<rfr<r<r=r>�s�z#simulate_status.<locals>.<listcomp>cSs|dS)Nr#r<rir<r<r=rkrlz!simulate_status.<locals>.<lambda>rmZresourceEntitlementsrorFr-r�rMr�rCrB)r#rLrMr�rQcSs|�dd�Srhrdrir<r<r=rkrlrprqrrr&cSs g|]}|�dd�dkr|�qSr�rdr9r<r<r=r>'s�)&rtrurvrrZContractAPIErrorr�rD�UserFacingErrorr
ZATTACH_INVALID_TOKENr8r#rerwr�nowrZutcZ
total_secondsZATTACH_FORBIDDEN_EXPIREDr��strftimer�event�error�infoZATTACH_FORBIDDEN_NOT_YETrryrrzr�r{rLr|r�r�)rGr�r�r�r~Zcontract_information�eZ
contract_infoZaccount_infor�Zexpiration_datetimeZdeltarEZeffective_datetimerrJr}rgr�r�r?Zentitlement_informationrprrr�r<r<r=�simulate_status�s�
�



�

����
�
��
����


�r�)�stringrAcCstj��rt�||�S|S)z=Return colorized string if using a tty, else original string.)�sys�stdout�isatty�STATUS_COLORre)r�r<r<r=�colorize1sr�)�commandsrAcCstd}|D]}|r|d7}|d�|�7}qd�tj|tddd��}d|krTd	}d
}nd}d}d
jtj|||tjd�S)Nr z && � z \
�z  )�widthZsubsequent_indentr�z{
  z
}z{ z }z%{color}{prefix}{content}{suffix}{end})Zcolor�prefix�content�suffix�end)�join�textwrapZwraprr�r�DISABLEGREY�ENDC)r�r��cmdZwrapped_contentr�r�r<r<r=�colorize_commands6s0���r�)�column_data�headerrAcshg}|r|�|�tdd�|D��}|dkrPd�|��|��fdd�|D��n|�dd�|D��|S)z�Return a list of content lines to print to console for a section

    Content lines will be center-aligned based on max value length of first
    column.
    cSsg|]}t|d��qS)r)�len�r:Zpairr<r<r=r>]sz.get_section_column_content.<locals>.<listcomp>rz{{:>{}}}: {{}}csg|]}�j|��qSr<)r�r���templater<r=r>`scSsg|]}|d�qS)r�r<r�r<r<r=r>cs)r{�maxr��extend)r�r�r�Ztemplate_lengthr<r�r=�get_section_column_contentRs

r�)r+rAcCs8|dkrdSz|��}Wntk
r,YnX|�d�S)NzUnknown/Expiredz%c %Z)Z
astimezone�	Exceptionr�)r+r<r<r=�format_expiresgsr�)rNr�rAc
Cs�|�d��s�|�d�rl|�dd�s(tjStjddddd	d
�g}|�dg�D]}|�tjf|��qJd�|�S|�dd�s�tjg}nhtjddd	d�g}|�dg�D]H}|�d
�}|r�|n
|�dd�}|�tj|�dd�|�dd�|d��q�|�d�}|�r|�d�|�|�|�d��rV|�d�t	|�di��
��D]\}}|�d�||���q8|�sl|�dtjg�|�dtjj
g�t��tjjk�r�|�dtjg�d�|�Sg}	d}
|�dd��s�tjg}�ndtg}|�dg�D�]N}|�dd�}|�d
�}|�r|n
|�dd�}|�dd�t|�t|�dd��|d�}
|�dd�}|dk	�rl|�dd�}|dk	�rl|	�|�|�d�}|�r�|�s�d}
d�|
d�|
d<|�tjf|
��|�r�|�r�t|�
��D]h\}\}}|t|�d k�r�d!nd"}|�tj||�d�t|�dd��t|�dd��|�dd�d#���qq�|
�rL|�d�|�tj�|�d��sft|	�d$k�r�|�d�|�d�|�d�}|�r�|�|�t|	�d$k�r�|�|	�|�d��r�|�d�t	|�di��
��D]\}}|�d�||���q�|�d�|�s$|
�r|�tj�n|�tj�|�d%�g}|�d&i��dd'�}|�rZ|�d(|f�|�d)i��dd'�}|�r�|�d*|f�|�d+d�d,k�r�|�d-t|�d.��f�|�d)i��d/d'�}|�d0t|�f�|�r�|�d�|�t|d1��d�|�S)2z&Format status dict for tabular output.r)r3r-NZSERVICEr��ENTITLEDZAUTO_ENABLEDZDESCRIPTION)r#rQrMr�rLr�)r#rQrLrPrLr r#rQrZNOTICESr0z	
FEATURESz{}: {}FrMrN)r#rMrNrLrSrErTTz{}*r�u├u└)�markerr#rMrNrLrz*Enable services with: pro enable <service>r2�unknownZAccountr1ZSubscriptionr,ZfreezValid untilr+r&zTechnical support level)r�)rer
ZSTATUS_NO_SERVICES_AVAILABLE�STATUS_SIMULATED_TMPLr�r{r��STATUS_UNATTACHED_TMPLr�ryr[ZSTATUS_ALL_HINTZ
UNATTACHEDr8rr�r�r�Z)LIVEPATCH_KERNEL_NOT_SUPPORTED_UNATTACHED�
STATUS_HEADERr��STATUS_TMPL�	enumerater��VARIANT_STATUS_TMPLZSTATUS_SERVICE_HAS_VARIANTSZSTATUS_ALL_HINT_WITH_VARIANTSr�r�)rNr�r�r;r�rLrrnr\Zservice_warningsZhas_variantsr]rMZfmt_argsrSZwarning_messagerT�idx�_Zvariantr�ZpairsZaccount_nameZ
contract_namer&r<r<r=�format_tabularqs

��	

��
�
�

��



���

�
�
�




��









�
r�c	Cst|�}d}t�}||d<|D]^}|d|ks<|�d�|krzt||dd�}Wntjk
rjYqYnX|}||�}q~q|dkr�t�d�|���t|�j	r�t
|i|�}|d}	|d|d<|	|d<|	dkr�|jr�d	|d
<n"|dr�tj
j}
ntjj}
|
|d<|j|d<|S)
z�Return help information from an uaclient service as a dict

    :param name: Name of the service for which to return help data.

    :raises: UserFacingError when no help is available.
    Nr#r�rozNo help available for '{}'rNrM�enabledTZbetarQ�help)rrrerrrzr�r�rr�rHr�rr�r\rXZ	help_info)rGr#rZ
help_resourceZ
response_dictrgZhelp_ent_clsZhelp_entr]Z
status_msgrQr<r<r=r�sB�

�



r�)F)F)N)F)_rtZloggingr�r��collectionsrrr�typingrrrrr	Zuaclientr
rrr
rrZ(uaclient.api.u.pro.status.is_attached.v1rZuaclient.configrrZuaclient.contractrrZuaclient.defaultsrrZuaclient.entitlementsrZ(uaclient.entitlements.entitlement_statusrrrrZuaclient.filesrrZuaclient.files.noticesrZuaclient.messagesrZget_event_loggerr�Z	getLoggerZreplace_top_level_logger_name�__name__r�Z	ESSENTIALZSTANDARDZADVANCEDr�r\ZOKGREENr�r�ZFAILrYr�rXrZZ
WARNINGYELLOWr�rWr�r�r�r�r�r�Zget_versionr�rvr@�strrHr�r�r�r��boolrNr��intr�r�r�r�r�r�r�r<r<r<r=�<module>s� ����� ���� 
�;H1$+!
���y��
$

Youez - 2016 - github.com/yon3zu
LinuXploit