�
܍~c� � � � d dl Z d dlmZ d dlmZ d dlmZmZmZ d dlm Z ej
e� � ZdZ
ej d� � ZdZd Z G d
� dej � � ZdS )� N)�handlers)�log)�mergers�safeyaml�util)�
PER_ALWAYSz
Merge-Typezdict(replace)+list()+str()z
#cloud-configz#cloud-config-jsonpc �@ � e Zd ZeegZd� Zd� Zd� Zd� Z d� Z
d� Zd� ZdS ) �CloudConfigPartHandlerc �� � t j � | t d�� � d | _ |� d� � | _ d|v r |� |d � � | _ g | _ d S )N� )�version�cloud_config�cloud_config_path)r �Handler�__init__r � cloud_buf� get_ipath�cloud_fn�
file_names)�self�paths�_kwargss �A/usr/lib/python3/dist-packages/cloudinit/handlers/cloud_config.pyr zCloudConfigPartHandler.__init__1 si � ���!�!�$�
�A�!�>�>�>��������7�7��
��'�)�)�!�O�O�G�4G�,H�I�I�D�M������ c � � | j sd S g }| j re|� dt | j � � z � � | j D ]}|sd}|� d|z � � �|� d� � | j �Kt
dg}|� |� � |� t j | j � � � � ng }t j
| j d� |� � d� � d S )Nz# from %s files�?z# %s� �
i� )r r �append�lenr �CLOUD_PREFIX�extendr �dumpsr �
write_file�join)r �
file_lines�fn�liness r �_write_cloud_configz*CloudConfigPartHandler._write_cloud_config9 s
� ��}� ��F��
��?� "����/�3�t��3G�3G�H�I�I�I��o�
1�
1��� ��B��!�!�&�B�-�0�0�0�0����b�!�!�!��>�%� ���E�
�L�L��$�$�$��L�L�����7�7�8�8�8�8��E����
�t�y�y��'7�'7��?�?�?�?�?r c �r � d}t dt z fD ]}|� |d� � }|r|} n�t j |� � }|�t d� � �t j |� � }t j |� � }g } | � |� � | � |� � | st } || fS )Nr zX-%szempty cloud config)
�MERGE_HEADER�getr � load_yaml�
ValueErrorr �dict_extract_mergers�string_extract_mergersr" |