
    |f
                         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 j                   e	j                  e            ZdZdZedz   ez   edz   ez   d	Zd
ZdZdZdZ G d de      Zy)    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-77
UBUNTU_PROc                       e Zd Ze ej
                  ej                  g d      dee	e
f   fd              Zede	fd       Zedefd       ZdefdZdedefd	Zy
)UAAutoAttachAzureInstance)   r   r   )retry_sleepsreturnc                 J   i }t        t        j                               D ]  \  }}t        j                  |ddid      }|j
                  dk7  r+t        j                  |j
                  |j                        |dk(  r|j                  d   ||<   r|j                  ||<    |S )	NMetadatatruer   )headerstimeout   )codebodyr
   	signature)
sorted	IMDS_URLSitemsr   readurlr   r   CloudMetadataErrorr   	json_dict)self	responseskeyurlresponses        7/usr/lib/python3/dist-packages/uaclient/clouds/azure.pyidentity_docz&UAAutoAttachAzureInstance.identity_doc   s     	y01 	4HC||j&11H }}# 33!X]]  g~!)!3!3K!@	#!)!3!3	#	4     c                      y)Nazure r!   s    r&   
cloud_typez$UAAutoAttachAzureInstance.cloud_type-   s    r(   c                     t         j                  j                  t              r1t	        j
                  t              }t        |j                         k(  ryt         j                  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_tags     r&   	is_viablez#UAAutoAttachAzureInstance.is_viable1   sP     77>>/0 & 0 01F G&*;*A*A*CCww~~011r(   c                      y)NTr+   r,   s    r&   should_poll_for_pro_licensez5UAAutoAttachAzureInstance.should_poll_for_pro_license:   s    r(   wait_for_changec                   |rt        j                         t        j                  dd      }	 t	        j
                  |ddi      }|j                  dk7  r3t        j                  |j                         t        j                         |j                  j                  d      t        k(  S # t        $ r.}t        j                  |       t        j                         d }~ww xY w)Nr    r   r   )r   r   licenseType)r   CancelProLicensePollingr   getr   r   OSErrorLOGerrorr   r   r    AZURE_PRO_LICENSE_TYPE)r!   r;   r$   r%   es        r&   is_pro_license_presentz0UAAutoAttachAzureInstance.is_pro_license_present>   s    4466mmIr*	7||C*f1EFH
 ==CIIhmm$4466!!%%m48NNN  	7IIaL4466	7s   B+ +	C"4)CC"N)__name__
__module____qualname__propertyr   retryr   r   r   strr   r'   r-   boolr8   r:   rF   r+   r(   r&   r   r      s     TZZ
--IFd38n  G   C   24 2 2T O O$ Or(   r   )loggingr/   typingr   r   uaclientr   r   r   r   uaclient.cloudsr	   	getLoggerreplace_top_level_logger_namerG   rB   IMDS_BASE_URLAPI_VERSIONr   r2   r6   r4   rD   r   r+   r(   r&   <module>rV      s     	  3 3 3g:::8DE2==K>>L	
 > < < % 5O 7 5Or(   