%PDF- %PDF-
Mini Shell

Mini Shell

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

�

���f.���ddlZddlZddlmZddlmZmZmZmZddl	Z	ddl
mZddlm
Z
ddlmZmZej"e�ZdZd�ZGd	�d
�Zddd
�dededededef
d�Zdededefd�Z	ddedeedefd�Zdefd�Zy)�N)�	monotonic)�Dict�Optional�Type�Union)�util)�report_diagnostic_event)�UrlError�readurlzhttp://169.254.169.254/metadatac�B�dttj��d�S)N�true)�Metadatazx-ms-client-request-id)�str�uuid�uuid4)�_urls �>/usr/lib/python3/dist-packages/cloudinit/sources/azure/imds.py�
headers_cbrs���"%�d�j�j�l�"3���c	�L�eZdZdZddddd�dedeedeed	dfd
�Zd	efd�Z	y)�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���logging_backoff�max_connection_errors�retry_codes�retry_deadlinerrr �returnc�f�||_||_||_||_d|_d|_d|_y)Nrr)rrrr �_logging_threshold�_request_count�_last_error)�selfrrrr s     r�__init__zReadUrlRetryHandler.__init__%s<�� /���%:��"�&���,���"%������37��rc���|xjdz
c_t|t�std|ztj
��yd}|j�t�|jk\rd}nd}|j�Kt|jtj�r'|xjdzc_|jdkr)d}n&|j�|j|jvrd}|j|jk\r |xj|jzc_nd}|j�-|j |jk7rvd}|j|_nb|j �:t|j t"�r t|j|j �sd}t#|j�|_|s|s*td|j|fztj
��|S)N�z1Polling IMDS failed with unexpected exception: %r��logger_funcFTrz1Polling IMDS failed attempt %d with exception: %r)r$�
isinstancer
r	�LOG�warningr rr�cause�requests�ConnectionError�coderr#rr%�type)r&�req_args�	exception�log�retrys     r�exception_callbackz&ReadUrlRetryHandler.exception_callback:s������q� ���)�X�.�#�C����K�K�
�
������+���t�2�2�2��E��E�
�%�%�1�j��O�O�X�5�5�7
�
�&�&�!�+�&��)�)�Q�.����N�N�&����d�&6�&6�6��E����$�"9�"9�9��#�#�t�';�';�;�#��C��>�>�%����9�>�>�1���#,�>�>�� �
���$��d�.�.��5��i�o�o�t�/?�/?�@��C�#�I�O�O�4�D���e�#�C��&�&�	�2�3��K�K�
�
�r)
�__name__�
__module__�__qualname__�__doc__�floatr�intr'�boolr8�rrrrsZ���"%�/3�
�+/�8��8� (��}�	8�!���8�
�8�*>��>rrT�)�log_response�timeout�url�
retry_handlerrBrCr!c��	t||jtd||��}|jS#t$r$}t	d|zt
j���d}~wwxYw)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_resprCz&Failed to fetch metadata from IMDS: %sr*N)rr8rr
r	r-r.�contents)rDrErBrC�response�errors      r�
_fetch_urlrN{se�� ���&�9�9�!��%��

����������4�u�<����	
�	���s�-�	A�A�Ac���t||��}	tj|jd��S#t$r$}td|ztj���d}~wwxYw)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.
    �rEzutf-8z&Failed to parse metadata from IMDS: %sr*N)rNr�	load_json�decode�
ValueErrorr	r-r.)rDrE�metadatarMs    r�_fetch_metadatarU�sY���#�]�;�H���~�~�h�o�o�g�6�7�7�����4�u�<����	
�	���s�#3�	A �A�A r rc��t||��}	tdz}t||��S#t$rX}|jdk(rCtdtj��t||��}tdz}t||��cYd}~S�d}~wwxYw)	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.
    )rr z./instance?api-version=2021-08-01&extended=truerPi�z,Falling back to IMDS api-version: 2019-06-01r*z /instance?api-version=2019-06-01N)r�IMDS_URLrUr
r2r	r-r.)r rrErDrMs     r� fetch_metadata_with_api_fallbackrX�s���(�3�%��M���I�I���s�-�@�@�����:�:���#�>��K�K�
�0�&;�-��M��?�?�C�"�3�m�D�D�
���s!�%�	B�AB�:B�B�Bc���tdz}tdddd��}t||jtddd	�
�}td|jdz�d�tj�
�|jS)zhFetch extended metadata, falling back to non-extended as required.

    :raises UrlError: on error.
    z'/reprovisiondata?api-version=2019-06-01g@r))rrrNrTFrArGzPolled IMDS z time(s)r*)
rWrrr8rr	r$r-�debugrK)rD�handlerrLs   r�fetch_reprovision_datar\�s���
�>�
>�C�!���
�
�	�G����/�/�����
�H��
�w�-�-�a�/�0��9��I�I�����r)N) �loggingr�timer�typingrrrrr0�	cloudinitr�cloudinit.sources.helpers.azurer	�cloudinit.url_helperr
r�	getLoggerr9r-rWrrrr?r>�bytesrNrUr=rXr\r@rr�<module>res���
���.�.���C�2��g����!��,���\�\�F�� �	� �'� ��	 �
� ��
 �F�	��'��
�	�4CG����2:�3�-��	��@��r

Zerion Mini Shell 1.0