U
    LdX                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ e eZeej ddd	Zeed
ddZe
jedddZedddZdS )    N)datetime)Optional)version)handlersinstantiated_handler_registry)errorsidentity)returnc                  C   s    t jd} t| tjsdS | S )z'Get instantiated KVP telemetry handler.Z	telemetryN)r   Zregistered_itemsget
isinstancer   HyperVKvpReportingHandler)kvp_handler r   =/usr/lib/python3/dist-packages/cloudinit/sources/azure/kvp.pyget_kvp_handler   s    r   )reportr	   c                 C   s,   t  }|dkrtd dS |d|  dS )z/Report to host via PROVISIONING_REPORT KVP key.Nz.KVP handler not enabled, skipping host report.FZPROVISIONING_REPORTT)r   LOGdebugZ	write_key)r   r   r   r   r   report_via_kvp   s    
r   )errorr	   c                 C   s   t |  S )N)r   Zas_encoded_report)r   r   r   r   report_failure_to_host&   s    r   c               
   C   sr   zt  } W n, tk
r8 } zd|} W 5 d }~X Y nX tddt  dt 	  d|  g}t
|S )Nzfailed to read vm id: zresult=successzagent=Cloud-Init/z
timestamp=zvm_id=)r   Zquery_vm_id	Exceptionr   Zencode_reportr   Zversion_stringr   ZutcnowZ	isoformatr   )Zvm_idZid_errorr   r   r   r   report_success_to_host*   s    	r   )Zloggingr   typingr   Z	cloudinitr   Zcloudinit.reportingr   r   Zcloudinit.sources.azurer   r   Z	getLogger__name__r   r   r   strboolr   ZReportableErrorr   r   r   r   r   r   <module>   s   
