File: //lib/python3/dist-packages/cloudinit/handlers/__pycache__/cloud_config.cpython-310.pyc
o
x[h� � @ sd d dl Z d dlZd dlmZmZmZmZ d dlmZ e � e
�ZdZdZ
dZdZG dd � d ej�ZdS )
� N)�handlers�mergers�safeyaml�util)�
PER_ALWAYSz
Merge-Typez
#cloud-configz#cloud-config-jsonpz*# Cloud-config part ignored SCHEMA_ERROR: c @ sL e Zd ZeegZdd� Zdd� Zdd� Zdd� Z d d
� Z
dd� Zd
d� ZdS )�CloudConfigPartHandlerc K sL t jj| tdd� d | _|�d�| _d|v r|�|d �| _g | _g | _d S )N� )�version�cloud_config�cloud_config_path) r �Handler�__init__r � cloud_buf� get_ipath�cloud_fn�
file_names�error_file_names)�self�paths�_kwargs� r �A/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.pyr
2 s
zCloudConfigPartHandler.__init__c C s� | j sd S g }| jr*|�dt| j� � | jD ]
}|sd}|�d| � q|�d� | jD ]}|�t� |� �� q-| jd urQtdg}|�|� |�t �
| j�� ng }t�| j d�
|�d� d S )Nz# from %s files�?z# %s� �
i� )r r �append�lenr �MERGED_PART_SCHEMA_ERROR_PREFIXr �CLOUD_PREFIX�extendr �dumpsr �
write_file�join)r �
file_lines�fn�
error_file�linesr r r �_write_cloud_config; s(
�
z*CloudConfigPartHandler._write_cloud_configc
C s� d}t dt fD ]}|�|d�}|r|} nqt�|�}|d u r$td��t�|�}t�|�}g } | �|� | �|� | sAt�d�} || fS )Nr zX-%szempty cloud configzdict(replace)+list()+str()) �MERGE_HEADER�getr � load_yaml�
ValueErrorr �dict_extract_mergers�string_extract_mergersr )
r �payload�headers�merge_header_headers�h�tmp_h�payload_yaml�mergers_yaml�mergers_header�all_mergersr r r �_extract_mergersU s( �
�z'CloudConfigPartHandler._extract_mergersc C sD |� � }tj|td�}tj�|�}t�d|� |j | j
dd�| _
d S )N)�prefixz!Merging by applying json patch %sF)�in_place)�lstripr �strip_prefix_suffix�JSONP_PREFIX� jsonpatch� JsonPatch�from_string�LOG�debug�applyr )r r. �patchr r r �_merge_patchn s
z#CloudConfigPartHandler._merge_patchc C s: | � ||�\}}t�d|� t�|�}|�| j|�| _d S )NzMerging by applying %s)r7 r@ rA r � construct�merger )r r. r/ r3 �
my_mergers�mergerr r r �_merge_party s
z"CloudConfigPartHandler._merge_partc C s g | _ d | _d S )N)r r )r r r r �_reset s
zCloudConfigPartHandler._resetc
C s |t jkr| �� d S |t jkr| �� | �� d S z4| jd u s#| js&i | _|t jt kr3| � |� n| �
||� dD ]}|�|d�}q;| j�|�
� � W d S typ } z| j�|�
� � t�d||� W Y d }~d S d }~w ty� t�td|� Y d S w )N)r �
� � z2Failed at merging in cloud config part from %s: %sz.Failed at merging in cloud config part from %s)r �
CONTENT_STARTrJ �CONTENT_ENDr'