�
�f� � � � d dl Z d dlmZ d dlmZmZmZmZ d dlZd dlm Z d dl
mZ d dlm
Z
mZ e j e� ZdZ G d� d � Zd
dd�d
ededededef
d�Zd
ededefd�Z ddedee defd�Zdefd�Zy)� N)�time)�Dict�Optional�Type�Union)�util)�report_diagnostic_event)�UrlError�readurlzhttp://169.254.169.254/metadatac �L � e Zd ZdZddddd�dedee dee d dfd
�Zd efd�Z y)�ReadUrlRetryHandleraF Manager 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 time()-based deadline to retry until.
� �?N)� � � i� ��logging_backoff�max_connection_errors�retry_codes�retry_deadliner r r �returnc �f � || _ || _ || _ || _ d| _ d| _ d | _ y )Nr r )r r r r �_logging_threshold�_request_count�_last_error)�selfr r r r s �>/usr/lib/python3/dist-packages/cloudinit/sources/azure/imds.py�__init__zReadUrlRetryHandler.__init__ s< |