Current File : //lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyo
�
oB�]c@s�ddlZddlmZddlmZddlmZddlmZddlmZddlm	Z	ej
e�ZdZ
ejd	�Zd
ZdZdejfd
��YZdS(i����N(thandlers(tlog(tmergers(tutil(tsafeyaml(t
PER_ALWAYSs
Merge-Typesdict(replace)+list()+str()s
#cloud-configs#cloud-config-jsonptCloudConfigPartHandlercBsSeZeegZd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZRS(cKsftjj|tdd�d|_|jd�|_d|krY|j|d�|_ng|_dS(Ntversionitcloud_configtcloud_config_path(	RtHandlert__init__RtNonet	cloud_buft	get_ipathtcloud_fnt
file_names(tselftpathst_kwargs((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyR4s	cCs�|js
dSg}|jrz|jdt|j��x1|jD]&}|sUd}n|jd|�q@W|jd�n|jdk	r�tdg}|j|�|jtj	|j��ng}t
j|jdj|�d�dS(Ns# from %s filest?s# %sts
i�(
RRtappendtlenR
RtCLOUD_PREFIXtextendRtdumpsRt
write_filetjoin(Rt
file_linestfntlines((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt_write_cloud_config<s"				
c
Cs�d}x:tdtgD](}|j|d�}|r|}PqqWtj|�}tj|�}tj|�}g}	|	j|�|	j|�|	s�t}	n||	fS(NRsX-%s(	tMERGE_HEADERtgetRt	load_yamlRtdict_extract_mergerststring_extract_mergersRtDEF_MERGERS(
Rtpayloadtheaderstmerge_header_headersthttmp_htpayload_yamltmergers_yamltmergers_headertall_mergers((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt_extract_mergersTs

	cCsb|j�}tj|dt�}tjj|�}tjd|�|j	|j
dt�|_
dS(Ntprefixs!Merging by applying json patch %stin_place(tlstripRtstrip_prefix_suffixtJSONP_PREFIXt	jsonpatcht	JsonPatchtfrom_stringtLOGtdebugtapplyR
tFalse(RR'tpatch((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt_merge_patchhs
cCsS|j||�\}}tjd|�tj|�}|j|j|�|_dS(NsMerging by applying %s(R0R9R:Rt	constructtmergeR
(RR'R(R,t
my_mergerstmerger((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt_merge_partsscCsg|_d|_dS(N(RRR
(R((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt_resetys	cCs|tjkr|j�dS|tjkrD|j�|j�dSy�|jdks`|jrli|_n|tjt	kr�|j
|�n|j||�x dD]}|j|d�}q�W|jj
|j��Wn$tk
r�tjtd|�nXdS(Ns
s
s	t s.Failed at merging in cloud config part from %s(s
s
s	(Rt
CONTENT_STARTRDtCONTENT_ENDR R
RRtINCLUSION_TYPES_MAPR5R>RCtreplaceRtstript	ExceptionRtlogexcR9(RtdatatctypetfilenameR't	frequencyR(ti((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pythandle_part}s&




(t__name__t
__module__RR5tprefixesRR R0R>RCRDRR(((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyR/s						(R6t	cloudinitRRtloggingRRRtcloudinit.settingsRt	getLoggerRSR9R!R%R&RR5R
R(((sC/usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyt<module>s