| Current Path : /usr/lib/python3/dist-packages/cloudinit/handlers/__pycache__/ |
| Current File : //usr/lib/python3/dist-packages/cloudinit/handlers/__pycache__/cloud_config.cpython-38.pyc |
U
�Ad� � @ sv d dl Z d dlmZ d dlmZ d dlmZmZmZ d dlm Z e�
e�ZdZ
e�d�ZdZd ZG d
d� dej�ZdS )� N)�handlers)�log)�mergers�safeyaml�util)�
PER_ALWAYSz
Merge-Typezdict(replace)+list()+str()z
#cloud-configz#cloud-config-jsonpc @ sL e Zd ZeegZdd� Zdd� Zdd� Zdd� Z d d
� Z
dd� Zd
d� ZdS )�CloudConfigPartHandlerc K sF t jj| tdd� d | _|�d�| _d|kr<|�|d �| _g | _d S )N� )�versionZcloud_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 1 s zCloudConfigPartHandler.__init__c C s� | j s
d S g }| jrT|�dt| j� � | jD ]}|s:d}|�d| � q.|�d� | jd k r�tdg}|�|� |�t�| j�� ng }t �
| j d�|�d� d S )Nz# from %s files�?z# %s� �
i� )r r �append�lenr
�CLOUD_PREFIX�extendr �dumpsr Z
write_file�join)r Z
file_lines�fn�linesr r r �_write_cloud_config9 s$
�
z*CloudConfigPartHandler._write_cloud_configc
C s� d}t dt fD ]}|�|d�}|r|} q.qt�|�}|d krHtd��t�|�}t�|�}g } | �|� | �|� | s|t } || fS )Nr zX-%szempty cloud config)
�MERGE_HEADER�getr Z load_yaml�
ValueErrorr Zdict_extract_mergers�string_extract_mergersr �DEF_MERGERS)
r �payload�headersZmerge_header_headers�hZtmp_h�payload_yamlZmergers_yamlZmergers_headerZall_mergersr r r �_extract_mergersQ s"