o
    ϴfY                     @   s   d dl Z d dlZd dlmZmZ d dlmZmZmZm	Z	m
Z
 d dlmZ e e
eZdZdZed e ed e d	Zd
ZdZdZdZG dd deZdS )    N)AnyDict)
exceptionshttpsecret_managersystemutil)AutoAttachCloudInstancez http://169.254.169.254/metadata/z
2020-09-01zattested/document?api-version=zinstance/compute?api-version=)pkcs7computez#/sys/class/dmi/id/chassis_asset_tagz%/var/lib/cloud/seed/azure/ovf-env.xmlz 7783-7084-3265-9085-8269-3286-77
UBUNTU_PROc                   @   s~   e Zd Zeejej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efd
dZdedefddZdS )UAAutoAttachAzureInstance)   r   r   )retry_sleepsreturnc                 C   s   i }t t D ]5\}}tj|ddidd}|jdkr$tj|j|jd|dkr8|j	d }|||< t
j| q|j	||< q|S )	NMetadatatruer   )headerstimeout   )codebodyr
   	signature)sorted	IMDS_URLSitemsr   readurlr   r   CloudMetadataErrorr   	json_dictr   secrets
add_secret)self	responseskeyurlresponser    r&   7/usr/lib/python3/dist-packages/uaclient/clouds/azure.pyidentity_doc   s   


z&UAAutoAttachAzureInstance.identity_docc                 C      dS )Nazurer&   r!   r&   r&   r'   
cloud_type/      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   	load_fileAZURE_CHASSIS_ASSET_TAGstripAZURE_OVF_ENV_FILE)r!   chassis_asset_tagr&   r&   r'   	is_viable3   s
   
z#UAAutoAttachAzureInstance.is_viablec                 C   r)   )NTr&   r+   r&   r&   r'   should_poll_for_pro_license<   r-   z5UAAutoAttachAzureInstance.should_poll_for_pro_licensewait_for_changec             
   C   s   |rt  tdd}ztj|ddid}W n ty, } z	t| t  d }~ww |j	dkr<t|j
 t  |jdtkS )Nr    r   r   )r   r   licenseType)r   CancelProLicensePollingr   getr   r   OSErrorLOGerrorr   r   r   AZURE_PRO_LICENSE_TYPE)r!   r9   r$   r%   er&   r&   r'   is_pro_license_present@   s   

z0UAAutoAttachAzureInstance.is_pro_license_presentN)__name__
__module____qualname__propertyr   retryr   r   r   strr   r(   r,   boolr7   r8   rC   r&   r&   r&   r'   r      s    r   )loggingr.   typingr   r   uaclientr   r   r   r   r   uaclient.cloudsr	   	getLoggerreplace_top_level_logger_namerD   r?   IMDS_BASE_URLAPI_VERSIONr   r1   r5   r3   rA   r   r&   r&   r&   r'   <module>   s     

