HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/handlers/__pycache__/cloud_config.cpython-310.pyc
o

�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|vr|�|d�|_g|_dS)N�)�version�cloud_config�cloud_config_path)r�Handler�__init__r�	cloud_buf�	get_ipath�cloud_fn�
file_names)�self�paths�_kwargs�r�A/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.pyr1s
zCloudConfigPartHandler.__init__cCs�|jsdSg}|jr*|�dt|j��|jD]
}|sd}|�d|�q|�d�|jdurBtdg}|�|�|�t�|j��ng}t	�
|jd�|�d�dS)Nz# from %s files�?z# %s��
i�)rr�append�lenr�CLOUD_PREFIX�extendr�dumpsr�
write_file�join)r�
file_lines�fn�linesrrr�_write_cloud_config9s$


�
z*CloudConfigPartHandler._write_cloud_configc
Cs�d}tdtfD]}|�|d�}|r|}nqt�|�}|dur$td��t�|�}t�|�}g}	|	�|�|	�|�|	s>t	}	||	fS)NrzX-%szempty cloud config)
�MERGE_HEADER�getr�	load_yaml�
ValueErrorr�dict_extract_mergers�string_extract_mergersr�DEF_MERGERS)
r�payload�headers�merge_header_headers�h�tmp_h�payload_yaml�mergers_yaml�mergers_header�all_mergersrrr�_extract_mergersQs$�




z'CloudConfigPartHandler._extract_mergerscCsD|��}tj|td�}tj�|�}t�d|�|j	|j
dd�|_
dS)N)�prefixz!Merging by applying json patch %sF)�in_place)�lstripr�strip_prefix_suffix�JSONP_PREFIX�	jsonpatch�	JsonPatch�from_string�LOG�debug�applyr)rr-�patchrrr�_merge_patchhs
z#CloudConfigPartHandler._merge_patchcCs:|�||�\}}t�d|�t�|�}|�|j|�|_dS)NzMerging by applying %s)r6r?r@r�	construct�merger)rr-r.r2�
my_mergers�mergerrrr�_merge_partss
z"CloudConfigPartHandler._merge_partcCsg|_d|_dS)N)rr)rrrr�_resetys
zCloudConfigPartHandler._resetc	
Cs�|tjkr|��dS|tjkr|��|��dSz4|jdus#|js&i|_|tjtkr3|�	|�n|�
||�dD]}|�|d�}q;|j�|�
��WdStyh}zt�d||�WYd}~dSd}~wtyxt�td|�YdSw)N)r�
�	� z2Failed at merging in cloud config part from %s: %sz.Failed at merging in cloud config part from %s)r�
CONTENT_STARTrI�CONTENT_ENDr%rr�INCLUSION_TYPES_MAPr;rCrH�replacer�stripr)r?�warning�	Exceptionr�logexc)	r�data�ctype�filenamer-�	frequencyr.�i�errrrr�handle_part}s8

��
��z"CloudConfigPartHandler.handle_partN)
�__name__�
__module__�__qualname__rr;�prefixesrr%r6rCrHrIr[rrrrr,sr)r<�	cloudinitrr�loggingrrr�cloudinit.settingsr�	getLoggerr\r?r&r+r,rr;r
rrrrr�<module>s