U
    M[^G                     @   s   d dl Z d dlmZ zd dlmZmZ W n ek
r<   Y nX 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)	HTTPError)AnyDict)AutoAttachCloudInstance)utilz http://169.254.169.254/metadata/z
2019-06-04z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                   @   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 )UAAutoAttachAzureInstance         )Zretry_sleepszDict[str, Any])returnc                 C   sR   i }t t D ]<\}}tj|ddid\}}|dkrD|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_viable2   s
    
z#UAAutoAttachAzureInstance.is_viableN)__name__
__module____qualname__propertyr   Zretryr   r   strr   boolr   r   r   r   r   r      s   r   )r   Zurllib.errorr   typingr   r   ImportErrorZuaclient.cloudsr   Zuaclientr   ZIMDS_BASE_URLZAPI_VERSIONr   r   r   r   r   r   r   r   r   <module>   s    

