U
    lHJe
                     @   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	 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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-77Z
UBUNTU_PROc                   @   s~   e Zd Zeejejdddgdee	e
f dddZee	dddZeeddd	Zedd
dZeedddZdS )UAAutoAttachAzureInstance   )Zretry_sleeps)returnc                 C   sp   i }t t D ]Z\}}tj|ddidd}|jdkrHtj|j|jd|dkr`|j	d ||< q|j	||< q|S )	NMetadatatruer   )headersZtimeout   )codebodyr	   Z	signature)
sorted	IMDS_URLSitemsr   readurlr   r   CloudMetadataErrorr   	json_dict)selfZ	responseskeyurlresponse 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_viable1   s
    
z#UAAutoAttachAzureInstance.is_viablec                 C   s   dS )NTr   r!   r   r   r   should_poll_for_pro_license:   s    z5UAAutoAttachAzureInstance.should_poll_for_pro_license)wait_for_changer   c             
   C   s   |rt  tdd}ztj|ddid}W n4 tk
rb } zt| t  W 5 d }~X Y nX |j	dkrt|j
 t  |jdtkS )Nr
    r   r   )r   r   ZlicenseType)r   ZCancelProLicensePollingr   getr   r   OSErrorLOGerrorr   r   r   AZURE_PRO_LICENSE_TYPE)r   r,   r   r   er   r   r   is_pro_license_present>   s    

z0UAAutoAttachAzureInstance.is_pro_license_presentN)__name__
__module____qualname__propertyr   Zretryr   r   r   strr   r    r"   boolr*   r+   r4   r   r   r   r   r      s   r   )Zloggingr#   typingr   r   Zuaclientr   r   r   r   Zuaclient.cloudsr   Z	getLoggerZreplace_top_level_logger_namer5   r0   ZIMDS_BASE_URLZAPI_VERSIONr   r&   r)   r'   r2   r   r   r   r   r   <module>   s   

