
    x[hk                         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j*                  defdZ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| S )z'Get instantiated KVP telemetry handler.	telemetryN)r   registered_itemsget
isinstancer   HyperVKvpReportingHandler)kvp_handlers    =/usr/lib/python3/dist-packages/cloudinit/sources/azure/kvp.pyget_kvp_handlerr      s6    /@@DDK k8#E#EF    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   LOGdebug	write_key)r   r   s     r   report_via_kvpr      s4    !#K		BC/8r   errorc                 4    t        | j                               S )N)r   as_encoded_report)r   s    r   report_failure_to_hostr    &   s    %11344r   c                  >   	 t        j                         } t        j                  ddt        j                          dt        j                  t        j                        j                          d|  g      }t        |      S # t        $ r}d|} Y d }~d }~ww xY w)Nzfailed to read vm id: zresult=successzagent=Cloud-Init/z
timestamp=zvm_id=)r
   query_vm_id	Exceptionr	   encode_reportr   version_stringr   nowr   utc	isoformatr   )vm_idid_errorr   s      r   report_success_to_hostr+   *   s    6$$& !! 6 6 89:hll3==?@AUG		
F &!!  6(56s   B 	BBB)loggingr   r   typingr   	cloudinitr   cloudinit.reportingr   r   cloudinit.sources.azurer	   r
   	getLogger__name__r   r   r   strboolr   ReportableErrorr    r+    r   r   <module>r7      sz   
  '   G 4g!("D"DE 3 4 5&"8"8 5T 5" "r   