HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/sources/azure/__pycache__/imds.cpython-310.pyc
o

�Ad��@s�ddlmZddlZddlmZddlmZddlmZddl	m
Z
mZe�e
�ZdZGdd	�d	�Zd
ddd
�dededededef
dd�Z	ddededefdd�Zddedefdd�Zdefdd�ZdS)�)�DictN)�log)�util)�report_diagnostic_event)�UrlError�readurlzhttp://169.254.169.254/metadatac@s:eZdZdddd�dededdfd	d
�Zdefdd�ZdS)
�ReadUrlRetryHandler)��i�i��
��?)�retry_codes�max_connection_errors�logging_backoffrr�returnNcCs"||_||_||_d|_d|_dS)Nrr)rrr
�_logging_threshold�_request_count)�selfr
rr�r�>/usr/lib/python3/dist-packages/cloudinit/sources/azure/imds.py�__init__s

zReadUrlRetryHandler.__init__cCs�|jd7_t|t�std|tjd�dSd}d}t|jtjtj	f�r4|j
d8_
|j
dkr3d}n|j|jvr<d}|j|j
krK|j
|j9_
nd}|sQ|s]td|j|ftjd�|S)N�z1Polling IMDS failed with unexpected exception: %r��logger_funcFTrz1Polling IMDS failed attempt %d with exception: %r)r�
isinstancerr�LOG�warning�cause�requests�ConnectionError�Timeoutr�coder
rr�info)r�req_args�	exceptionr�retryrrr�exception_callback&s>
���
���z&ReadUrlRetryHandler.exception_callback)�__name__�
__module__�__qualname__�int�floatr�boolr&rrrrrs�	�
�
�rTr�)�log_response�retries�timeout�urlr.r/r0rc
CsXt�}zt||jddid|||d�}W|jSty+}z
td|tjd��d}~ww)zLFetch URL from IMDS.

    :raises UrlError: on error fetching metadata.
    �Metadata�trueF)�exception_cb�headers�infinite�log_req_respr/r0z&Failed to fetch metadata from IMDS: %srN)rrr&rrrr�contents)r1r.r/r0�handler�response�errorrrr�
_fetch_urlMs(�����r<c
CsFt||d�}zt�|�WSty"}z
td|tjd��d}~ww)zFetch IMDS metadata.

    :raises UrlError: on error fetching metadata.
    :raises ValueError: on error parsing metadata.
    �r/z&Failed to parse metadata from IMDS: %srN)r<r�	load_json�
ValueErrorrrr)r1r/�metadatar;rrr�_fetch_metadatajs	���rAc
Csjztd}t||d�WSty4}z|jdkr/tdtjd�td}t||d�WYd}~S�d}~ww)z�Fetch extended metadata, falling back to non-extended as required.

    :raises UrlError: on error fetching metadata.
    :raises ValueError: on error parsing metadata.
    z./instance?api-version=2021-08-01&extended=truer=i�z,Falling back to IMDS api-version: 2019-06-01rz /instance?api-version=2019-06-01N)�IMDS_URLrArr!rrr)r/r1r;rrr� fetch_metadata_with_api_fallbacks
���rCcCsRtd}tdddd�}t||jddidd	d
d�}td|jd
�d�tjd�|jS)zhFetch extended metadata, falling back to non-extended as required.

    :raises UrlError: on error.
    z'/reprovisiondata?api-version=2019-06-01g@r)r	r
)rrr
r2r3TFr-)r4r5r6r7r0zPolled IMDS rz time(s)r)	rBrrr&rrr�debugr8)r1r9r:rrr�fetch_reprovision_data�s&��	�rE)r)�typingrr�	cloudinitr�loggingr�cloudinit.sources.helpers.azurer�cloudinit.url_helperrr�	getLoggerr'rrBr�strr,r*�bytesr<rArCrErrrr�<module>s>
;�����
����
�