Current Dir: /snap/core22/2955/usr/lib/python3/dist-packages/cloudinit/sources/azure/__pycache__/

[FILE] errors.cpython-310.pyc [ edit | delete | rename ]
[FILE] identity.cpython-310.pyc [ edit | delete | rename ]
[FILE] imds.cpython-310.pyc [ edit | delete | rename ]
[FILE] kvp.cpython-310.pyc [ edit | delete | rename ]
[FILE] __init__.cpython-310.pyc [ edit | delete | rename ]

Viewing: /snap/core22/2955/usr/lib/python3/dist-packages/cloudinit/sources/azure/__pycache__/imds.cpython-310.pyc

o

��i��@s�ddlZddlZddlmZddlmZmZmZmZddl	Z	ddl
mZddlm
Z
ddlmZmZe�e�ZdZdd	�ZGd
d�d�Zdd
d�dededededef
dd�Zdededefdd�Z	ddedeedefdd�Zdefdd�ZdS)�N)�	monotonic)�Dict�Optional�Type�Union)�util)�report_diagnostic_event)�UrlError�readurlzhttp://169.254.169.254/metadatacCsdtt���d�S)N�true)�Metadatazx-ms-client-request-id)�str�uuid�uuid4)�_url�r�>/usr/lib/python3/dist-packages/cloudinit/sources/azure/imds.py�
headers_cbs
�rc	@sLeZdZdZddddd�dedeedeed	dfd
d�Zd	efdd
�Z	dS)�ReadUrlRetryHandleraKManager for readurl retry behavior using exception_callback().

    :param logging_backoff: Backoff to limit logging.
    :param max_connection_errors: Number of connection errors to retry on.
    :param retry_codes: Set of http codes to retry on.
    :param retry_deadline: Optional monotonic()-based deadline to retry until.
    ��?N)i�i�i�i�)�logging_backoff�max_connection_errors�retry_codes�retry_deadlinerrr�returncCs.||_||_||_||_d|_d|_d|_dS)Nrr)rrrr�_logging_threshold�_request_count�_last_error)�selfrrrrrrr�__init__%s

zReadUrlRetryHandler.__init__cCs@|jd7_t|t�std|tjd�dSd}|jdur't�|jkr'd}nd}|jdurDt|j	t
j�rD|jd8_|jdkrCd}n
|jdurQ|j|j
vrQd}|j|jkr`|j|j9_nd}|jdurt|j|jkrsd}|j|_n|jdus�t|jt�r�t|j	|j�s�d}t|j	�|_|s�|s�td|j|ftjd�|S)N�z1Polling IMDS failed with unexpected exception: %r��logger_funcFTrz1Polling IMDS failed attempt %d with exception: %r)r�
isinstancer	r�LOG�warningrrr�cause�requests�ConnectionError�coderrrr�type)r�	exception�log�retryrrr�exception_callback:s^
��
�
�

�

����z&ReadUrlRetryHandler.exception_callback)
�__name__�
__module__�__qualname__�__doc__�floatr�intr�boolr.rrrrrs ����
�rT�)�log_response�timeout�url�
retry_handlerr7r8rc
CsLzt||jtd||d�}W|jSty%}z
td|tjd��d}~ww)a'Fetch URL from IMDS.

    :param url: url to fetch.
    :param log_response: log responses in readurl().
    :param retry_deadline: time()-based deadline to retry until.
    :param timeout: Read/connection timeout in seconds for readurl().

    :raises UrlError: on error fetching metadata.
    T��exception_cbr�infinite�log_req_respr8z&Failed to fetch metadata from IMDS: %sr!N)r
r.rr	rr$r%�contents)r9r:r7r8�response�errorrrr�
_fetch_url{s$�����rBc
CsLt||d�}z	t�|�d��WSty%}z
td|tjd��d}~ww)z�Fetch IMDS metadata.

    :param url: url to fetch.
    :param retry_deadline: time()-based deadline to retry until.

    :raises UrlError: on error fetching metadata.
    :raises ValueError: on error parsing metadata.
    �r:zutf-8z&Failed to parse metadata from IMDS: %sr!N)rBr�	load_json�decode�
ValueErrorrr$r%)r9r:�metadatarArrr�_fetch_metadata�s
���rHrrc
Cs�t||d�}ztd}t||d�WSty@}z#|jdkr;tdtjd�t||d�}td}t||d�WYd}~S�d}~ww)	z�Fetch extended metadata, falling back to non-extended as required.

    :param retry_deadline: time()-based deadline to retry until.

    :raises UrlError: on error fetching metadata.
    :raises ValueError: on error parsing metadata.
    )rrz./instance?api-version=2021-08-01&extended=truerCi�z,Falling back to IMDS api-version: 2019-06-01r!z /instance?api-version=2019-06-01N)r�IMDS_URLrHr	r)rr$r%)rrr:r9rArrr� fetch_metadata_with_api_fallback�s,
�
����rJcCsNtd}tdddd�}t||jtdddd	�}td
|jd�d�tjd�|j	S)
zhFetch extended metadata, falling back to non-extended as required.

    :raises UrlError: on error.
    z'/reprovisiondata?api-version=2019-06-01g@r N)rrrTFr6r;zPolled IMDS z time(s)r!)
rIrr
r.rrrr$�debugr?)r9�handlerr@rrr�fetch_reprovision_data�s&��	�rM)N) �loggingr�timer�typingrrrrr'�	cloudinitr�cloudinit.sources.helpers.azurer�cloudinit.url_helperr	r
�	getLoggerr/r$rIrrr
r5r4�bytesrBrHr3rJrMrrrr�<module>sR
c�����
�#��
����
� 
Upload File: