HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/uaclient/daemon/__pycache__/retry_auto_attach.cpython-38.pyc
U

��JhU�@s�ddlZddlZddlZddlmZmZmZmZmZddl	mZ
ddlmZm
Z
ddlmZddlmZddlmZddlmZmZe�e�e��Zd	d	d
ddd
ddddddddddddgZdZeed�dd�Zed�dd�Z edd�dd�Z!dS)�N)�
exceptions�lock�messages�system�util)r)�FullAutoAttachOptions�full_auto_attach)�_is_attached)�UAConfig)�AUTO_ATTACH_STATUS_MOTD_FILE)�notices�state_filesi�iii i@8i�pi�Qi�i��iFi��z./run/ubuntu-advantage/flags/auto-attach-failed)�e�returncCs�t|tj�rtjj|jd�St|tj�r.tjSt|tj	�rJtj
j|jd�St|tj�rftj
j|jd�St|tj�r�tjj|jd�d�t|j��St|tj�r�d�|j�Stjd|d�t|�p�tjSdS)	N)Zdetail)�pid)�	error_msg)�urlz: "{}"z"{}"zUnexpected exception)�exc_info)�
isinstance�api_exceptionsZInvalidProImagerZ$RETRY_ERROR_DETAIL_INVALID_PRO_IMAGE�formatrZNonAutoAttachImageErrorZ(RETRY_ERROR_DETAIL_NON_AUTO_ATTACH_IMAGE�
LockHeldErrorZRETRY_ERROR_DETAIL_LOCK_HELDrZContractAPIErrorZ%RETRY_ERROR_DETAIL_CONTRACT_API_ERRORZbodyZConnectivityErrorZ RETRY_ERROR_DETAIL_URL_ERROR_URLr�strZcause_errorZUbuntuProError�msg�LOG�error�
UNKNOWN_ERROR)r�r�C/usr/lib/python3/dist-packages/uaclient/daemon/retry_auto_attach.py�,full_auto_attach_exception_to_failure_reason)s,����r��cfgcCs>tj��tj��t�t�t�tj	j
�t�tj	j�dS)N)r
�retry_auto_attach_state_file�delete�retry_auto_attach_options_filerZensure_file_absentrr�remove�Notice�AUTO_ATTACH_RETRY_FULL_NOTICE�AUTO_ATTACH_RETRY_TOTAL_FAILUREr rrr�cleanupAs


��r))r!rcCs�t|�jrdStj��}|dk	r:|j}t|d�}|j}nd}t}d}t|�D�]\}}t	j	�
t	jj�}|t	j
|d�}|jddd�}tj�tj|||d��|}	|	dkr�tj}	z|��}Wntk
r�YnXtjj||d|	|��d�}
t�td|
d�z>tjd	d
��(tjtjj ||d|	|��d�W5QRXWnt!j"k
�r\YnXt#�$|�t|�j�rz�qVz>tj%��}t&�}|dk	�r�|j'|_'|j(|_(t)|�W�qVWqNt*j+k
�r�t,�-d�Y�qVYqNt*j.k
�r}
zt,�/|
j0�WY�
�qVW5d}
~
XYqNtk
�rR}
zt1|
�}t,�2|
�W5d}
~
XYqNXqNt3|�t|�j�s�tj�tjt4t�|d��|}	|	dk�r�tj}	tj5jt4t�d|	d�}
t�td|
d�tjtjj6t4t�d|	d�dS)
Nr)Zseconds)�secondZmicrosecond)�interval_index�failure_reason�)�num_attempts�reasonZnext_run_datestring�
z

z+pro.daemon.retry_auto_attach.notice_updates)Zlock_holderz&already attached, ending retry service)r.r/)7r	Zis_attachedr
r"�readr+�RETRY_INTERVALSr,�	enumerate�datetimeZnow�timezoneZutcZ	timedelta�replace�writeZRetryAutoAttachStaterrZ
astimezone�	ExceptionZAUTO_ATTACH_RETRY_NOTICErZ	isoformatrZ
write_filerrZ	RetryLockr�addr&r'rr�time�sleepr$r�enableZenable_betarrZAlreadyAttachedErrorr�infoZEntitlementsNotEnabledErrorZwarningrrrr)�lenZ&AUTO_ATTACH_RETRY_TOTAL_FAILURE_NOTICEr()r!Zpersisted_state�offsetZ	intervalsr,�indexZintervalZlast_attemptZnext_attemptZ
msg_reasonZauto_attach_status_msgZpersisted_optionsZoptionsrrrr�retry_auto_attachMs�

��
�
��
�
�

��

��
�
�rA)"r4Zloggingr:ZuaclientrrrrrZuaclient.apirZ2uaclient.api.u.pro.attach.auto.full_auto_attach.v1rrZ(uaclient.api.u.pro.status.is_attached.v1r	Zuaclient.configr
Zuaclient.daemonrZuaclient.filesrr
Z	getLoggerZreplace_top_level_logger_name�__name__rr2ZFLAG_FILE_PATHr8rrr)rArrrr�<module>sB�