U
    M[^~                     @   sr   d dl mZ zd dlmZmZ W n ek
r4   Y nX d dlmZ d dlm	Z	 dZ
dZdZdZG d	d
 d
eZdS )    )	HTTPError)AnyDict)AutoAttachCloudInstance)utilz=http://169.254.169.254/latest/dynamic/instance-identity/pkcs7z/sys/hypervisor/uuidz /sys/class/dmi/id/product_serialz/sys/class/dmi/id/product_uuidc                   @   sV   e Zd ZeejedddgdddddZeedd	d
Z	ee
dddZdS )UAAutoAttachAWSInstance         )Zretry_sleepszDict[str, Any])returnc                 C   s   t t\}}d|iS )NZpkcs7)r   ZreadurlIMDS_URL)selfZresponseZ_headers r   5/usr/lib/python3/dist-packages/uaclient/clouds/aws.pyidentity_doc   s    z$UAAutoAttachAWSInstance.identity_docc                 C   s   dS )NZawsr   )r   r   r   r   
cloud_type   s    z"UAAutoAttachAWSInstance.cloud_typec                 C   s   z$t t}d|dd kr"W dS W n tk
r8   Y nX t t }t t }d|dd   krz|dd krn ndS dS )z$This machine is a viable AWSInstanceZec2r      TF)r   Z	load_fileSYS_HYPERVISOR_PRODUCT_UUIDFileNotFoundErrorDMI_PRODUCT_UUIDlowerDMI_PRODUCT_SERIAL)r   Zhypervisor_uuidZdmi_uuidZ
dmi_serialr   r   r   	is_viable!   s    

(z!UAAutoAttachAWSInstance.is_viableN)__name__
__module____qualname__propertyr   Zretryr   r   strr   boolr   r   r   r   r   r      s   r   N)Zurllib.errorr   typingr   r   ImportErrorZuaclient.cloudsr   Zuaclientr   r   r   r   r   r   r   r   r   r   <module>   s   