o
    ÙKÕic  ã                   @   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-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 )ÚAzureAutoAttachInstance)é   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$AzureAutoAttachInstance.identity_docc                 C   ó   dS )NÚazurer&   ©r!   r&   r&   r'   Ú
cloud_type/   ó   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   Ú	load_fileÚAZURE_CHASSIS_ASSET_TAGÚstripÚAZURE_OVF_ENV_FILE)r!   Úchassis_asset_tagr&   r&   r'   Ú	is_viable3   s
   
z!AzureAutoAttachInstance.is_viablec                 C   r)   )NTr&   r+   r&   r&   r'   Úshould_poll_for_pro_license<   r-   z3AzureAutoAttachInstance.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   
€þ
z.AzureAutoAttachInstance.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     

þ