o
    w7e                     @   s\   d dl Z d dlmZ d dlmZ d dlmZmZ d dlmZ e	e
ZG dd dejZdS )    N)handlers)log)subputil)
PER_ALWAYSc                   @   s*   e Zd ZdgZdd Zdd Zdd ZdS )	BootHookPartHandlerz#cloud-boothookc                 K   s6   t j| t |d| _d | _|r| | _d S d S )N	boothooks)r   Handler__init__r   	get_ipathboothook_dirinstance_idget_instance_id)selfpaths
datasource_kwargs r   >/usr/lib/python3/dist-packages/cloudinit/handlers/boot_hook.pyr
      s   zBootHookPartHandler.__init__c                 C   sJ   t |}tj| j|}t jt || jd d}t 	||
 d |S )Nr   )prefixi  )r   clean_filenameospathjoinr   strip_prefix_suffixdos2unixprefixes
write_filelstrip)r   payloadfilenamefilepathcontentsr   r   r   _write_part!   s   
zBootHookPartHandler._write_partc                 C   s   |t jv rd S | ||}ztj }| jd urt| j|d< tj|g|d W d S  tj	y;   t
td| Y d S  tyK   t
td| Y d S w )NINSTANCE_ID)envz#Boothooks script %s execution errorz'Boothooks unknown error when running %s)r   CONTENT_SIGNALSr#   r   environcopyr   strr   ProcessExecutionErrorr   logexcLOG	Exception)r   datactyper    r   	frequencyr!   r%   r   r   r   handle_part*   s   



zBootHookPartHandler.handle_partN)__name__
__module____qualname__r   r
   r#   r1   r   r   r   r   r      s
    	r   )r   	cloudinitr   r   loggingr   r   cloudinit.settingsr   	getLoggerr2   r,   r	   r   r   r   r   r   <module>   s   

