o
    K&b                     @   s~   d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 dZ
dZe
d e e
d	 e d
ZdZdZdZG dd de	ZdS )    N)AnyDict)	HTTPError)util)AutoAttachCloudInstancez http://169.254.169.254/metadata/z
2020-09-01zattested/document?api-version=zinstance/compute?api-version=)pkcs7Zcomputez#/sys/class/dmi/id/chassis_asset_tagz%/var/lib/cloud/seed/azure/ovf-env.xmlz 7783-7084-3265-9085-8269-3286-77c                   @   s\   e Zd Zeejeg dddeee	f fddZ
edefddZedefdd	Zd
S )UAAutoAttachAzureInstance)         )Zretry_sleepsreturnc                 C   sR   i }t t D ]\}}tj|ddid\}}|dkr"|d ||< q|||< q|S )NZMetadatatrue)Zheadersr   Z	signature)sorted	IMDS_URLSitemsr   Zreadurl)selfZ	responseskeyZurlZurl_responseZ_headers r   7/usr/lib/python3/dist-packages/uaclient/clouds/azure.pyidentity_doc   s   

z&UAAutoAttachAzureInstance.identity_docc                 C   s   dS )NZazurer   )r   r   r   r   
cloud_type'   s   z$UAAutoAttachAzureInstance.cloud_typec                 C   s2   t jtrtt}t| krdS t jtS )z&This machine is a viable AzureInstanceT)	ospathexistsDMI_CHASSIS_ASSET_TAGr   Z	load_fileAZURE_CHASSIS_ASSET_TAGstripAZURE_OVF_ENV_FILE)r   Zchassis_asset_tagr   r   r   	is_viable+   s
   
z#UAAutoAttachAzureInstance.is_viableN)__name__
__module____qualname__propertyr   Zretryr   r   strr   r   r   boolr   r   r   r   r   r      s    r   )r   typingr   r   Zurllib.errorr   Zuaclientr   Zuaclient.cloudsr   ZIMDS_BASE_URLZAPI_VERSIONr   r   r   r   r   r   r   r   r   <module>   s    

