
    i                         d dl Z d dlmZ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 j                  e      Zdeej                      fdZd	edefd
Zdee   defdZy)    N)datetimetimezone)Optional)version)handlersinstantiated_handler_registry)errorsidentityreturnc                  Z   t         j                  j                  d      } t        | t        j
                        sy| j                  t        j
                  j                  k(  r	 t        j                         | _
        | S | S # t        $ r!}t        j                  d|       Y d}~| S d}~ww xY w)z@Get instantiated KVP telemetry handler, setting vm_id if needed.	telemetryNzFailed to query Azure vm_id: %s)r   registered_itemsget
isinstancer   HyperVKvpReportingHandler_vm_id	ZERO_GUIDr
   query_vm_idvm_id	ExceptionLOGdebug)kvp_handleres     =/usr/lib/python3/dist-packages/cloudinit/sources/azure/kvp.pyget_kvp_handlerr      s    /@@DDK k8#E#EF X??III	< ( 4 4 6K ;  	<II7;;	<s   #B   	B*	B%%B*reportc                 l    t               }|t        j                  d       y|j                  d|        y)z/Report to host via PROVISIONING_REPORT KVP key.z.KVP handler not enabled, skipping host report.FPROVISIONING_REPORTT)r   r   r   	write_key)r   r   s     r   report_via_kvpr!   "   s4    !#K		BC/8    r   c                     t        j                  ddt        j                          dt	        j
                  t        j                        j                          d|  g      }t        |      S )Nzresult=successzagent=Cloud-Init/z
timestamp=zvm_id=)
r	   encode_reportr   version_stringr   nowr   utc	isoformatr!   )r   r   s     r   report_success_to_hostr)   -   sf    !! 6 6 89:hll3==?@AUG		
F &!!r"   )loggingr   r   typingr   	cloudinitr   cloudinit.reportingr   r   cloudinit.sources.azurer	   r
   	getLogger__name__r   r   r   strboolr!   r)    r"   r   <module>r4      sl   
  '   G 4g!("D"DE $3 4 
"Xc] 
"t 
"r"   