
    gc                         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 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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                       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
)AzureAutoAttachInstance)   r   r   )retry_sleepsreturnc                    i }t        t        j                               D ]  \  }}t        j                  |ddid      }|j
                  dk7  r+t        j                  |j
                  |j                        |dk(  r4|j                  d   }|||<   t        j                  j                  |       |j                  ||<    |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   s         7/usr/lib/python3/dist-packages/uaclient/clouds/azure.pyidentity_docz$AzureAutoAttachInstance.identity_doc   s     	y01 	4HC||j&11H }}# 33!X]]  g~$..{;	!*	#&&11)<!)!3!3	#	4     c                      y)Nazure r$   s    r)   
cloud_typez"AzureAutoAttachInstance.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!AzureAutoAttachInstance.is_viable3   sP     77>>/0 & 0 01F G&*;*A*A*CCww~~011r+   c                      y)NTr.   r/   s    r)   should_poll_for_pro_licensez3AzureAutoAttachInstance.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_presentz.AzureAutoAttachInstance.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*   r0   boolr;   r=   rI   r.   r+   r)   r   r      s     TZZ
--IFd38n  G $ C   24 2 2T O O$ Or+   r   )loggingr2   typingr   r   uaclientr   r   r   r   r	   uaclient.cloudsr
   	getLoggerreplace_top_level_logger_namerJ   rE   IMDS_BASE_URLAPI_VERSIONr   r5   r9   r7   rG   r   r.   r+   r)   <module>rY      s     	  C C 9g:::8DE2==K>>L	
 > < < % 7O; 7Or+   