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

ó
oBú]c@s§ddlmZddlZddlZddlmZddlmZmZmZddl	m
Z
mZmZm
Z
ddlmZddlmZddlmZejeƒZd	efd
„ƒYZdefd„ƒYZd
efd„ƒYZdefd„ƒYZd„Zdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZ defd„ƒYZ!defd„ƒYZ"d„Z#dS(iÿÿÿÿ(ttimeN(tStringIO(tNoSectionErrort
NoOptionErrortRawConfigParser(tPER_INSTANCEt
PER_ALWAYStPER_ONCEtCFG_ENV_NAME(tlog(t
type_utils(tutiltLockFailurecBseZRS((t__name__t
__module__(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRst	DummyLockcBseZRS((R
R(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR"stDummySemaphorescBsAeZd„Zejed„ƒZd„Zd„Zd„Z	RS(cCsdS(N((tself((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt__init__'sccstƒVdS(N(R(Rt_namet_freqt_clear_on_fail((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytlock*scCstS(N(tFalse(RRR((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pythas_run.scCstS(N(tTrue(RRR((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytclear1scCsdS(N((R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt	clear_all4s(
R
RRt
contextlibtcontextmanagerRRRRR(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR&s			tFileLockcBseZd„Zd„ZRS(cCs
||_dS(N(tfn(RR((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR9scCsdtj|ƒ|jfS(Ns<%s using file %r>(R
tobj_nameR(R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt__str__<s(R
RRR!(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR8s	cCs|jddƒS(Nt-t_(treplace(tname((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytcanon_sem_name@stFileSemaphorescBsSeZd„Zejed„ƒZd„Zd„Zd„Z	d„Z
d„ZRS(cCs
||_dS(N(tsem_path(RR(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyREsccsUt|ƒ}y|j||ƒVWn-tk
rP|rJ|j||ƒn‚nXdS(N(R&t_acquiret	ExceptionR(RR%tfreqt
clear_on_fail((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRHs
cCsat|ƒ}|j||ƒ}ytj|ƒWn+ttfk
r\tjtd|ƒtSXt	S(NsFailed deleting semaphore %s(
R&t	_get_pathRtdel_filetIOErrortOSErrortlogexctLOGRR(RR%R+tsem_file((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRRscCsHytj|jƒWn-ttfk
rCtjtd|jƒnXdS(Ns&Failed deleting semaphore directory %s(Rtdel_dirR(R/R0R1R2(R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR\s
cCs|j||ƒrdS|j||ƒ}dtjƒtƒf}ytj||ƒWn+tt	fk
r‚tj
td|ƒdSXt|ƒS(Ns%s: %s
s Failed writing semaphore file %s(
RtNoneR-tostgetpidRRt
write_fileR/R0R1R2R(RR%R+R3tcontents((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR)cscCs|s|tkrtSt|ƒ}|j||ƒ}tjj|ƒrKtS||krŒtjj|j||ƒƒrŒtj	d||ƒtStS(Nsœ%s has run without canonicalized name [%s].
likely the migrator has not yet run. It will run next boot.
run manually with: cloud-init single --name=migrator(
RRR&R-R6tpathtexistsRR2twarning(RR%R+tcnameR3((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRss*	
cCsP|j}|s|tkr/tjj||ƒStjj|d||fƒSdS(Ns%s.%s(R(RR6R:tjoin(RR%R+R(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR-Šs	(R
RRRRRRRRR)RR-(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR'Ds			
			tRunnerscBs)eZd„Zd„Zded„ZRS(cCs||_i|_dS(N(tpathstsems(RR@((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR“s	cCs™|tks|rdSd}|tkr>|jjdƒ}n!|tkr_|jjdƒ}n|sidS||jkrŽt|ƒ|j|<n|j|S(Ntsem(	RR5RR@t	get_ipathRt	get_cpathRAR'(RR+R(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt_get_sem—sc	Csá|j|ƒ}|s!tƒ}n|s0g}n|j||ƒr_tjd||ƒtdfS|j|||ƒg}|std|ƒ‚nGtjd||ƒt	|t
ƒrÁ||}n||Œ}t|fSWdQXdS(Ns%s already ran (freq=%s)sFailed to acquire lock for %ssRunning %s using lock (%s)(RERRR2tdebugRR5RRt
isinstancetdictR(	RR%tfunctortargsR+R,RBtlktresults((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytrunªs 	
N(R
RRRER5RRM(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR?’s		tConfigMergercBsSeZdddded„Zd„Zd„Zd„Zd„Ze	d„ƒZ
RS(cCs:||_||_||_||_||_d|_dS(N(t_pathst_dst_fnst	_base_cfgt_include_vendorR5t_cfg(RR@t
datasourcetadditional_fnstbase_cfgtinclude_vendor((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRÀs					cCsxg}|jrty8|jjƒ}|rFt|tƒrF|j|ƒnWqttk
rptjtd|jƒqtXn|S(Ns2Failed loading of datasource config object from %s(	RPtget_config_objRGRHtappendR*RR1R2(Rtd_cfgstds_cfg((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt_get_datasource_configsËs	
cCsjg}ttjkrftjt}y|jtj|ƒƒWqftk
rbtjtd|ƒqfXn|S(Ns%Failed loading of env. config from %s(	RR6tenvironRZRt	read_confR*R1R2(Rte_cfgste_fn((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt_get_env_configs×s

cCsØg}|js|Sdg}|jr5|jdƒnxœ|D]”}|jj|ƒ}|r<tjj|ƒr<y|jtj|ƒƒWqÐt	k
r©t
jd|ƒqÐtk
rÌtj
t
d|ƒqÐXq<q<W|S(Ntcloud_configtvendor_cloud_configs5Skipped loading cloud-config from %s due to non-root.s&Failed loading of cloud-config from %s(RORSRZt
get_ipath_curR6R:tisfileRR_tPermissionErrorR2RFR*R1(Rti_cfgstcc_pathstcc_ptcc_fn((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt_get_instance_configsâs&			



cCsÉg}|jrgxU|jD]G}y|jtj|ƒƒWqtk
r_tjtd|ƒqXqWn|j|jƒƒ|j|j	ƒƒ|j|j
ƒƒ|jr¼|j|jƒntj|ƒS(Ns'Failed loading of configuration from %s(
RQRZRR_R*R1R2textendRbRlR]RRt
mergemanydict(Rtcfgstc_fn((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt	_read_cfgûs	
	cCs(|jdkr!|jƒ|_n|jS(N(RTR5Rq(R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytcfgsN(R
RR5RRR]RbRlRqtpropertyRr(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRN¿s					tContentHandlerscBsMeZd„Zd„Zd„Zd„Zeed„Zd„Z	d„Z
RS(cCsi|_g|_dS(N(t
registeredtinitialized(R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRs	cCs
|j|ƒS(N(t
is_registered(Rtitem((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt__contains__ scCs
|j|ƒS(N(t_get_handler(Rtkey((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt__getitem__#scCs
||jkS(N(Ru(Rtcontent_type((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRw&scCsŸtƒ}xI|jƒD];}|r2|j|ƒq|j|ƒs|j|ƒqqWx|D]}||j|<q\W|r›||jkr›|jj|ƒn|S(N(tsett
list_typestaddRwRuRvRZ(RtmodRvt	overwritettypestt((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytregister)s	
cCs|j|S(N(Ru(RR}((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRz7scCst|jjƒƒS(N(tlistRutitems(R((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR‡:s(R
RRRyR|RwRRR…RzR‡(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRts					tPathscBs\eZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	RS(cCsF||_|jddƒ|_|jddƒ|_tjj|jdƒ|_tjj|jdƒ|_|jdƒ|_	tjj|jdƒ|_
|jd	d
ƒ}tjj|dƒ|_idd6d
d
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d%6|_||_
dS(&Nt	cloud_dirs/var/lib/cloudtrun_dirs/run/cloud-inittinstances
boot-finishedtupstart_dirtseedt
templates_dirs/etc/cloud/templates/s%s.tmplthandlerstscriptssscripts/vendortvendor_scriptsRBt	boothookss
user-data.txttuserdata_rawsuser-data.txt.ituserdatasobj.pkltobj_pklscloud-config.txtRcsvendor-cloud-config.txtRdtdatasvendor-data.txttvendordata_rawsvendor-data.txt.it
vendordatas.instance-idtinstance_idsmanual-cleantmanual_clean_markertwarnings(RotgetR‰RŠR6R:R>t
instance_linkt
boot_finishedtupstart_conf_dtseed_dirttemplate_tpltlookupsRU(Rt	path_cfgstdsttemplate_dir((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR?s6	
cCs|j|j|ƒS(N(R-R(RR%((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyReascCs|j|j|ƒS(N(R-R‰(RR%((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRDfscCs–|js
dS|jjƒ}|dkr,dSt|ƒjtjdƒ}tjj|j	d|ƒ}|j
j|ƒ}|r’tjj||ƒ}n|S(NR#t	instances(RUR5tget_instance_idtstrR$R6tsepR:R>R‰R¢Rœ(RR%tiidt
path_safe_iidtipathtadd_on((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt
_get_ipathks	cCs.|j|ƒ}|s&tjdƒdS|SdS(Ns?No per instance data available, is there an datasource/iid set?(R®R2R<R5(RR%R¬((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRC{s

cCs*|dkr|Stjj||j|ƒS(N(R5R6R:R>R¢(RtbaseR%((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR-„scCs|j|j|ƒS(N(R-RŠ(RR%((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytget_runpath‰sN(
R
RR5RReRDR®RCR-R°(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRˆ>s"	tDefaultingConfigParsercBseeZdZdZeZd	Zd„Zd	d„Z	d„Z
d„Zd„Zd„Z
d	d„ZRS(
igcCsJ|j}ytj|||ƒ}Wn!tk
r5ntk
rEnX|S(N(tDEF_BASERRœRR(Rtsectiontoptiontvalue((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRœœs	

cCsL|j|ƒr2|jƒdkr2|j|ƒntj||||ƒdS(Ntdefault(thas_sectiontlowertadd_sectionRR~(RR³R´Rµ((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR~¦s"cCs,|j||ƒr(tj|||ƒndS(N(t
has_optionRt
remove_option(RR³R´((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR»«scCs,|j||ƒs|jStj|||ƒS(N(RºtDEF_BOOLEANRt
getboolean(RR³R´((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR½¯scCs,|j||ƒs|jStj|||ƒS(N(Rºt	DEF_FLOATRtgetfloat(RR³R´((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR¿´scCs,|j||ƒs|jStj|||ƒS(N(RºtDEF_INTRtgetint(RR³R´((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyRÁ¹scCsWd}tƒ}|j|ƒ|jƒ|jƒ}|rSdj||dgƒ}n|S(Nts
(RtwritetflushtgetvalueR>(RtheaderR9toutputstream((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt	stringify¾s	

N(R
RRÀR¾RR¼R5R²RœR~R»R½R¿RÁRÈ(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyR±–s	
				cCs|S(N((tobject((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pytidentityÉs($RRR6tsixRtsix.moves.configparserRRRtcloudinit.settingsRRRRt	cloudinitR	tloggingR
Rt	getLoggerR
R2R*RRÉRRRR&R'R?RNRtRˆR±RÊ(((s5/usr/lib/python2.7/site-packages/cloudinit/helpers.pyt<module>s*"	N-[$X3
Back to Directory File Manager