File: //usr/lib/python3/dist-packages/uaclient/clouds/__pycache__/aws.cpython-310.pyc
o
��wc� � @ s� d dl Z d dlmZmZ d dlmZ d dlmZmZm Z d dl
mZ dZdZ
ee
fZdZd Zd
ZdZdZd
ZdZed ZG dd� de�ZdS )� N)�Any�Dict)� HTTPError)�
exceptions�system�util)�AutoAttachCloudInstancez169.254.169.254z[fd00:ec2::254]zhttp://{}/latest/api/tokenz0http://{}/latest/dynamic/instance-identity/pkcs7z/sys/hypervisor/uuidz /sys/class/dmi/id/product_serialz/sys/class/dmi/id/product_uuid�21600zX-aws-ec2-metadata-tokenz-ttl-secondsc @ s� e Zd ZdZdZdd� Zeeje g d�d�de
eef fdd���Z
d d
� Zeje g d�d�dd
� �Zedefdd��Zedefdd��Zdefdd�Zdedefdd�ZdS )�UAAutoAttachAWSInstanceNc C s | � � }tjt�| j�|dd�S )N� )�headers�timeout)�_request_imds_v2_token_headersr �readurl�IMDS_URL�format�_ip_address)�selfr � r �5/usr/lib/python3/dist-packages/uaclient/clouds/aws.py�_get_imds_url_response s �z.UAAutoAttachAWSInstance._get_imds_url_response)g �?r r )�retry_sleeps�returnc C s | � � \}}d|iS )N�pkcs7)r )r �response�_headersr r r �identity_doc% s z$UAAutoAttachAWSInstance.identity_docc C s� t D ]=}z| j|d�}W n/ ty } z|�d }~w ty; } zdj|t|dd�d�}t�|� W Y d }~qd }~ww || _ | jd u rOt �
dd�t � ��|S )N)�
ip_addressz8Could not reach AWS IMDS at http://{endpoint}: {reason}
�reason� )�endpointr z6No valid AWS IMDS endpoint discovered at addresses: %sz, )�IMDS_IP_ADDRESS�_get_imds_v2_token_headersr � Exceptionr �getattr�logging�debugr r �UserFacingError�join)r �addressr �e�msgr r r r + s0 �����
��z6UAAutoAttachAWSInstance._request_imds_v2_token_headers)r � � c
C s� | j dkrd S | j rt| j iS ztjt�|�dttidd�\}}W n ty= } z|j dkr8d| _ W Y d }~d S � d }~ww || _ t| j iS )N�IMDSv1�PUTr )�methodr r
i� )
�
_api_token�AWS_TOKEN_PUT_HEADERr r �IMDS_V2_TOKEN_URLr �AWS_TOKEN_REQ_HEADER�AWS_TOKEN_TTL_SECONDSr �code)r r r r r* r r r r"