HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/uaclient/clouds/__pycache__/aws.cpython-310.pyc
o

nHJe�@s�ddlZddlmZmZddlmZmZmZmZddl	m
Z
dZdZeefZ
dZdZd	Zd
ZdZdZd
ZedZe�e�e��ZGdd�de
�ZdS)�N)�Any�Dict)�
exceptions�http�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�eZdZdZdZdd�Zeeje	j
gd�d�deee
ffdd���Zd	d
�Zeje	j
gd�d�dd
��Zedefdd��Zedefdd��Zdefdd�Zdedefdd�ZdS)�UAAutoAttachAWSInstanceNcCsB|��}tjt�|j�|dd�}|jdkr|jStj	|j|jd��)N�)�headers�timeout����code�body)
�_request_imds_v2_token_headersr�readurl�IMDS_URL�format�_ip_addressrrr�CloudMetadataError)�selfr�response�r�5/usr/lib/python3/dist-packages/uaclient/clouds/aws.py�_get_imds_url_responses�
�z.UAAutoAttachAWSInstance._get_imds_url_response)g�?rr)�retry_sleeps�returncCsd|��iS)N�pkcs7)r�rrrr�identity_doc+sz$UAAutoAttachAWSInstance.identity_doccCs|tD]+}z|j|d�}Wnty)}zt�d|t|dd��WYd}~qd}~ww||_|jdur<tjd�	t�d��|S)N)�
ip_addressz*Could not reach AWS IMDS at http://%s: %s
�reason�z, )�	addresses)
�IMDS_IP_ADDRESS�_get_imds_v2_token_headers�	Exception�LOG�warning�getattrrr�AWSNoValidIMDS�join)r�addressr�errrr0s$
���
�z6UAAutoAttachAWSInstance._request_imds_v2_token_headers)r��cCs||jdkrdS|jrt|jiStjt�|�dttidd�}|jdkr+|j	|_t|jiS|jdkr5d|_dSt
j|j|j	d��)N�IMDSv1�PUTr)�methodrr
ri�r)�
_api_token�AWS_TOKEN_PUT_HEADERrr�IMDS_V2_TOKEN_URLr�AWS_TOKEN_REQ_HEADER�AWS_TOKEN_TTL_SECONDSrrrr)rr"rrrrr'Cs&

�


�z2UAAutoAttachAWSInstance._get_imds_v2_token_headerscC�dS)N�awsrr rrr�
cloud_type[�z"UAAutoAttachAWSInstance.cloud_typecCs�zt�t�}d|dd�krWdSWn	tyYnwt�t���}t�t���}d|dd�kr=|dd�kr@dSdSdS)z$This machine is a viable AWSInstance�ec2r�TF)r�	load_file�SYS_HYPERVISOR_PRODUCT_UUID�FileNotFoundError�DMI_PRODUCT_UUID�lower�DMI_PRODUCT_SERIAL)r�hypervisor_uuid�dmi_uuid�
dmi_serialrrr�	is_viable_s
��"�z!UAAutoAttachAWSInstance.is_viablecCr:)�UnsupportedFrr rrr�should_poll_for_pro_licenseqr=z3UAAutoAttachAWSInstance.should_poll_for_pro_license�wait_for_changecCst���)N)r�InPlaceUpgradeNotSupportedError)rrLrrr�is_pro_license_presentusz.UAAutoAttachAWSInstance.is_pro_license_present)�__name__�
__module__�__qualname__r5rr�propertyr�retryrrr�strrr!rr'r<�boolrIrKrNrrrrr
s 
r
)�logging�typingrr�uaclientrrrr�uaclient.cloudsr�IMDS_IPV4_ADDRESS�IMDS_IPV6_ADDRESSr&r7rrArErCr9r6r8�	getLogger�replace_top_level_logger_namerOr)r
rrrr�<module>s"