
    x[h                         d dl Z d dlZd dlmZmZmZ d dlmZ  e j                  e	      Z
 G d dej                        Zy)    N)handlerssubputil)
PER_ALWAYSc                   $    e Zd ZdgZd Zd Zd Zy)BootHookPartHandlerz#cloud-boothookc                     t         j                  j                  | t               |j	                  d      | _        d | _        |r|j                         | _        y y )N	boothooks)r   Handler__init__r   	get_ipathboothook_dirinstance_idget_instance_id)selfpaths
datasource_kwargss       >/usr/lib/python3/dist-packages/cloudinit/handlers/boot_hook.pyr   zBootHookPartHandler.__init__   sJ    !!$
3!OOK8)99;D     c                 <   t        j                  |      }t        j                  j	                  | j
                  |      }t        j                  t        j                  |      | j                  d         }t        j                  ||j                         d       |S )Nr   )prefixi  )r   clean_filenameospathjoinr   strip_prefix_suffixdos2unixprefixes
write_filelstrip)r   payloadfilenamefilepathcontentss        r   _write_partzBootHookPartHandler._write_part    sq    &&x077<< 1 18<++MM'"4==+;
 	(//"3U;r   c                    |t         j                  v ry | j                  ||      }	 | j                  rdt	        | j                        ini }t
        j                  d       t        j                  |g|d       y # t        j                  $ r t        j                  t
        d|       Y y t        $ r t        j                  t
        d|       Y y w xY w)NINSTANCE_IDzExecuting boothookF)
update_envcapturez#Boothooks script %s execution errorz'Boothooks unknown error when running %s)r   CONTENT_SIGNALSr&   r   strLOGdebugr   ProcessExecutionErrorr   logexc	Exception)r   datactyper#   r"   	frequencyr$   envs           r   handle_partzBootHookPartHandler.handle_part)   s    H,,,##GX6	 ## D$4$4 56 
 II*+IIxjS%@)) 	NKKBHM 	KK>	s   AA; ;.C+#CCN)__name__
__module____qualname__r   r   r&   r6    r   r   r   r      s     ""H<r   r   )loggingr   	cloudinitr   r   r   cloudinit.settingsr   	getLoggerr7   r-   r   r   r:   r   r   <module>r?      s:     	 * * )g!'(** 'r   