U
    Jhc                     @   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)PublicCloudAutoAttachInstancez 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 )AzureAutoAttachInstance   )Zretry_sleeps)returnc                 C   s   i }t t D ]j\}}tj|ddidd}|jdkrHtj|j|jd|dkrp|j	d }|||< t
j| q|j	||< q|S )	NMetadatatruer   )headersZtimeout   )codebodyr
   	signature)sorted	IMDS_URLSitemsr   readurlr   r   CloudMetadataErrorr   	json_dictr   ZsecretsZ
add_secret)selfZ	responseskeyurlresponser    r    7/usr/lib/python3/dist-packages/uaclient/clouds/azure.pyidentity_doc   s$      
 
z$AzureAutoAttachInstance.identity_docc                 C   s   dS )NZazurer    r   r    r    r!   
cloud_type/   s    z"AzureAutoAttachInstance.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_viable3   s
    
z!AzureAutoAttachInstance.is_viablec                 C   s   dS )NTr    r#   r    r    r!   should_poll_for_pro_license<   s    z3AzureAutoAttachInstance.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    

z.AzureAutoAttachInstance.is_pro_license_presentN)__name__
__module____qualname__propertyr   Zretryr   r   r   strr   r"   r$   boolr,   r-   r6   r    r    r    r!   r      s   r   )Zloggingr%   typingr   r   Zuaclientr   r   r   r   r   Zuaclient.cloudsr	   Z	getLoggerZreplace_top_level_logger_namer7   r2   ZIMDS_BASE_URLZAPI_VERSIONr   r(   r+   r)   r4   r   r    r    r    r!   <module>   s   

