Viewing File: /usr/lib/python2.7/site-packages/cloudinit/handlers/cloud_config.pyc

ó
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
Back to Directory File Manager