Your IP : 216.73.216.52


Current Path : /usr/lib/python3/dist-packages/uaclient/daemon/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/uaclient/daemon/__pycache__/retry_auto_attach.cpython-38.pyc

U

8�-d��@s�ddlZddlZddlZddlmZmZmZmZddlmZ	ddl
mZmZddl
mZddlmZddlmZmZe�d�Zd	d	d
ddd
ddddddddddddgZdZeed�dd�Zed�dd�Zedd�dd�ZdS)�N)�
exceptions�lock�messages�system)r)�FullAutoAttachOptions�full_auto_attach)�UAConfig)�AUTO_ATTACH_STATUS_MOTD_FILE)�notices�state_fileszpro.daemon.retry_auto_attachi�iii i@8i�pi�Qi�i��iFi��z./run/ubuntu-advantage/flags/auto-attach-failed)�e�returncCst|tj�rtj�|j�St|tj�r,tjSt|tj	�rHtj
j|jd�St|tj�rbtj
�|j�St|tj�rttjSt|tj�r�|jr�|jr�tjj|j|jd�}q�tjj|jd�}ntj}|d�t|��7}|St|tj�r�d�|j�St�d�|��t|��ptjSdS)N)�pid)�code�url)rz: "{}"z"{}"zUnexpected exception: {})�
isinstance�api_exceptionsZInvalidProImagerZ$RETRY_ERROR_DETAIL_INVALID_PRO_IMAGE�formatZcontract_server_msgZNonAutoAttachImageErrorZ(RETRY_ERROR_DETAIL_NON_AUTO_ATTACH_IMAGE�
LockHeldErrorZRETRY_ERROR_DETAIL_LOCK_HELDrZContractAPIErrorZ%RETRY_ERROR_DETAIL_CONTRACT_API_ERRORZ	api_errorZConnectivityErrorZ%RETRY_ERROR_DETAIL_CONNECTIVITY_ERRORZUrlErrorrrZ!RETRY_ERROR_DETAIL_URL_ERROR_CODEZ RETRY_ERROR_DETAIL_URL_ERROR_URLZ$RETRY_ERROR_DETAIL_URL_ERROR_GENERIC�strZUserFacingError�msg�LOG�error�RETRY_ERROR_DETAIL_UNKNOWN)r�failure_reason�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_absentr	r
�remove�Notice�AUTO_ATTACH_RETRY_FULL_NOTICE�AUTO_ATTACH_RETRY_TOTAL_FAILURErrrr�cleanupNs


��r')rr
cCs�|jr
dStj��}|dk	r6|j}t|d�}|j}nd}t}d}t|�D�]�\}}tj�	tj
j�}|tj|d�}|j
ddd�}tj�tj|||d��|}	|	dkr�tj}	z|��}Wntk
r�YnXtjj||d|	|��d�}
t�t|
d�z@tj|dd	��(tjtjj||d|	|��d�W5QRXWnt j!k
�rVYnXt"�#|�|j�rp�qLz>tj$��}t%�}|dk	�r�|j&|_&|j'|_'t(|�W�qLWqJt)j*k
�r�t+�,d
�Y�qLYqJt)j-k
�r}
zt+�.|
j/�WY�
�qLW5d}
~
XYqJtk
�rH}
zt0|
�}t+�1|
�W5d}
~
XYqJXqJt2|�|j�s�tj�tjt3t�|d��|}	|	dk�r�tj}	tj4jt3t�d|	d�}
t�t|
d�tjtjj5t3t�d|	d�dS)Nr)Zseconds)�secondZmicrosecond)�interval_indexr�)�num_attempts�reasonZnext_run_datestringz

z+pro.daemon.retry_auto_attach.notice_updates)rZlock_holderz&already attached, ending retry service)r+r,)6Zis_attachedrr �readr)�RETRY_INTERVALSr�	enumerate�datetimeZnow�timezoneZutcZ	timedelta�replace�writeZRetryAutoAttachStaterrZ
astimezone�	ExceptionZAUTO_ATTACH_RETRY_NOTICErZ	isoformatrZ
write_filer	rZSpinLockr
�addr$r%rr�time�sleepr"r�enableZenable_betarrZAlreadyAttachedErrorr�infoZEntitlementsNotEnabledErrorZwarningrrrr'�lenZ&AUTO_ATTACH_RETRY_TOTAL_FAILURE_NOTICEr&)rZpersisted_state�offsetZ	intervalsr�indexZintervalZlast_attemptZnext_attemptZ
msg_reasonZauto_attach_status_msgZpersisted_optionsZoptionsrrrr�retry_auto_attachZs�
��
���
�
�

��

���
�r=)r0Zloggingr6ZuaclientrrrrZuaclient.apirZ2uaclient.api.u.pro.attach.auto.full_auto_attach.v1rrZuaclient.configrZuaclient.daemonr	Zuaclient.filesr
rZ	getLoggerrr.ZFLAG_FILE_PATHr4rrr'r=rrrr�<module>s@
�&