Your IP : 216.73.217.13


Current Path : /lib/python3/dist-packages/cloudinit/handlers/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/handlers/__pycache__/cloud_config.cpython-38.pyc

U

�Ad��@svddlZddlmZddlmZddlmZmZmZddlm	Z	e�
e�ZdZ
e�d�ZdZd	ZGd
d�dej�ZdS)�N)�handlers)�log)�mergers�safeyaml�util)�
PER_ALWAYSz
Merge-Typezdict(replace)+list()+str()z
#cloud-configz#cloud-config-jsonpc@sLeZdZeegZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�ZdS)�CloudConfigPartHandlercKsFtjj|tdd�d|_|�d�|_d|kr<|�|d�|_g|_dS)N�)�versionZcloud_configZcloud_config_path)r�Handler�__init__r�	cloud_bufZ	get_ipath�cloud_fn�
file_names)�self�pathsZ_kwargs�r�A/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.pyr1szCloudConfigPartHandler.__init__cCs�|js
dSg}|jrT|�dt|j��|jD]}|s:d}|�d|�q.|�d�|jdk	r�tdg}|�|�|�t�|j��ng}t	�
|jd�|�d�dS)Nz# from %s files�?z# %s��
i�)rr�append�lenr
�CLOUD_PREFIX�extendr�dumpsrZ
write_file�join)rZ
file_lines�fn�linesrrr�_write_cloud_config9s$


�
z*CloudConfigPartHandler._write_cloud_configc
Cs�d}tdtfD]}|�|d�}|r|}q.qt�|�}|dkrHtd��t�|�}t�|�}g}	|	�|�|	�|�|	s|t	}	||	fS)NrzX-%szempty cloud config)
�MERGE_HEADER�getrZ	load_yaml�
ValueErrorrZdict_extract_mergers�string_extract_mergersr�DEF_MERGERS)
r�payload�headersZmerge_header_headers�hZtmp_h�payload_yamlZmergers_yamlZmergers_headerZall_mergersrrr�_extract_mergersQs"




z'CloudConfigPartHandler._extract_mergerscCsD|��}tj|td�}tj�|�}t�d|�|j	|j
dd�|_
dS)N)�prefixz!Merging by applying json patch %sF)Zin_place)�lstriprZstrip_prefix_suffix�JSONP_PREFIX�	jsonpatchZ	JsonPatchZfrom_string�LOG�debugZapplyr
)rr%Zpatchrrr�_merge_patchhs
z#CloudConfigPartHandler._merge_patchcCs:|�||�\}}t�d|�t�|�}|�|j|�|_dS)NzMerging by applying %s)r)r.r/rZ	construct�merger
)rr%r&r(Z
my_mergersZmergerrrr�_merge_partss
z"CloudConfigPartHandler._merge_partcCsg|_d|_dS)N)rr
)rrrr�_resetyszCloudConfigPartHandler._resetc	
Cs�|tjkr|��dS|tjkr4|��|��dSzf|jdksF|jsLi|_|tjtkrf|�	|�n|�
||�dD]}|�|d�}qv|j�|�
��WnPtk
r�}zt�d||�W5d}~XYn"tk
r�t�td|�YnXdS)N)r�
�	� z2Failed at merging in cloud config part from %s: %sz.Failed at merging in cloud config part from %s)rZ
CONTENT_STARTr3ZCONTENT_ENDrr
rZINCLUSION_TYPES_MAPr,r0r2�replacer�stripr"r.Zwarning�	ExceptionrZlogexc)	r�dataZctype�filenamer%Z	frequencyr&�i�errrrr�handle_part}s8

��z"CloudConfigPartHandler.handle_partN)
�__name__�
__module__�__qualname__rr,�prefixesrrr)r0r2r3r>rrrrr,sr)r-Z	cloudinitrrZloggingrrrZcloudinit.settingsrZ	getLoggerr?r.r r#r$rr,rrrrrr�<module>s