File: //usr/lib/python3/dist-packages/uaclient/clouds/__pycache__/aws.cpython-310.pyc
o
��Jh� � @ s� d dl Z d dlZd dlmZmZ d dlmZmZmZm Z m
Z
d dlmZ dZ
dZe
efZdZdZd Zd
ZdZdZd
ZdZed Ze�e
�e��ZG dd� de�ZdS )� N)�Any�Dict)�
exceptions�http�secret_manager�system�util)�PublicCloudAutoAttachInstancez169.254.169.254z[fd00:ec2::254]zhttp://{}/latest/api/tokenz0http://{}/latest/dynamic/instance-identity/pkcs7z3http://{}/latest/dynamic/instance-identity/documentz/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 ZdZdZdefdd�Zeej e
jg d�d�deee
f fdd ���Zej e
jg d�d�defd
d��Zedefdd
��Zdd� Zej e
jg d�d�dd� �Zedefdd��Zedefdd��Zdefdd�Zdedefdd�ZdS )�AWSAutoAttachInstanceN�urlc C s2 t j||dd�}|jdkr|jS tj|j|jd��)N� )�headers�timeout�� ��code�body)r �readurlr r r �CloudMetadataError)�selfr r �response� r �5/usr/lib/python3/dist-packages/uaclient/clouds/aws.py�_get_imds_url_response s
�z,AWSAutoAttachInstance._get_imds_url_response)g �?r
r
)�retry_sleeps�returnc C s6 | � � }t�| j�}| j||d�}tj�|� d|iS )N�r �pkcs7)�_request_imds_v2_token_headers�IMDS_URL�format�_ip_addressr r �secrets�
add_secret)r r r �imds_url_responser r r �identity_doc* s
z"AWSAutoAttachInstance.identity_docc
C sf | � � }t�| j�}z
t�| j||d��}W |S tjy2 } zt� d|� i W Y d}~S d}~ww )a
Get the instance identity doc associated with the current instance.
See
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/retrieve-iid.html
for more context.
@return: Dict containing the instance identity document.
r z-Error decoding instance identity document: %sN)
r �
_IMDS_IID_URLr! r"