Your IP : 216.73.217.13


Current Path : /lib/python3/dist-packages/cloudinit/sources/azure/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/sources/azure/__pycache__/imds.cpython-38.pyc

U

�Ad��@s�ddlmZddlZddlmZddlmZddlmZddl	m
Z
mZe�e
�ZdZGdd	�d	�Zd
ddd
�eeeeed�dd�Zdeeed�dd�Zdeed�dd�Zed�dd�ZdS)�)�DictN)�log)�util)�report_diagnostic_event)�UrlError�readurlzhttp://169.254.169.254/metadatac@s6eZdZdddd�eedd�dd�Zed	�d
d�ZdS)�ReadUrlRetryHandler)��i�i��
��?)�retry_codes�max_connection_errors�logging_backoffN)rr�returncCs"||_||_||_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__�rcCs�|jd7_t|t�s.td|tjd�dSd}d}t|jtjtj	f�rh|j
d8_
|j
dkrxd}n|j|jkrxd}|j|j
kr�|j
|j9_
nd}|s�|s�td|j|ftjd�|S)N�z1Polling IMDS failed with unexpected exception: %r�Zlogger_funcFTrz1Polling IMDS failed attempt %d with exception: %r)r�
isinstancerr�LOG�warning�cause�requests�ConnectionErrorZTimeoutr�coder
rr�info)rZreq_argsZ	exceptionrZretryrrr�exception_callback&s>
��
�
��z&ReadUrlRetryHandler.exception_callback)�__name__�
__module__�__qualname__�int�floatr�boolr"rrrrrs�	�rTr�)�log_response�retries�timeout)�urlr*r+r,rc
Csdt�}z t||jddid|||d�}Wn6tk
r\}ztd|tjd��W5d}~XYnX|jS)zLFetch URL from IMDS.

    :raises UrlError: on error fetching metadata.
    �Metadata�trueF)�exception_cb�headers�infinite�log_req_respr+r,z&Failed to fetch metadata from IMDS: %srN)rrr"rrrr�contents)r-r*r+r,�handler�response�errorrrr�
_fetch_urlMs$�
	�r8)r-r+rc
CsTt||d�}zt�|�WStk
rN}ztd|tjd��W5d}~XYnXdS)zFetch IMDS metadata.

    :raises UrlError: on error fetching metadata.
    :raises ValueError: on error parsing metadata.
    �r+z&Failed to parse metadata from IMDS: %srN)r8rZ	load_json�
ValueErrorrrr)r-r+Zmetadatar7rrr�_fetch_metadatajs	�r;)r+rc
Cstztd}t||d�WStk
rn}z:|jdkr\tdtjd�td}t||d�WY�S�W5d}~XYnXdS)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=truer9i�z,Falling back to IMDS api-version: 2019-06-01rz /instance?api-version=2019-06-01N)�IMDS_URLr;rr rrr)r+r-r7rrr� fetch_metadata_with_api_fallbacks
�r=rcCsRtd}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
r.r/TFr))r0r1r2r3r,zPolled IMDS rz time(s)r)	r<rrr"rrr�debugr4)r-r5r6rrr�fetch_reprovision_data�s&��	�r?)r)r)�typingrrZ	cloudinitrZloggingrZcloudinit.sources.helpers.azurerZcloudinit.url_helperrrZ	getLoggerr#rr<r�strr(r&�bytesr8r;r=r?rrrr�<module>s4
;����