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

ó
ƒjbc
@s/ddlZddlZddlmZddlmZddlmZejeƒZ	e
ejgƒZde
fd„ƒYZde
fd„ƒYZd	„Zd
dddddddd
„Zd
ddddddddd„	Zd
ddddddddd„	Zd
ddddddddd„	ZdS(iÿÿÿÿN(tlog(t
url_helper(tutiltMetadataLeafDecodercBs eZdZd„Zd„ZRS(s.Decodes a leaf blob into something meaningful.cCs<|s
tS|jƒ}|jdƒr8|jdƒr8tStS(Nt{t}(tFalsetstript
startswithtendswithtTrue(tselfttext((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt_maybe_json_objectscCs§|s
dSytj|ƒ}Wntk
r1|SX|j|ƒr„ytj|ƒSWq„ttfk
r€}tj	d||ƒq„Xn|j
dƒdkr£|jƒS|S(Nts6Field %s looked like a json object, but it was not: %ss
iÿÿÿÿ(Rt
decode_binarytUnicodeDecodeErrorR
tjsontloadst
ValueErrort	TypeErrortLOGtwarningtfindt
splitlines(Rtfieldtblobte((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt__call__s
	
(t__name__t
__module__t__doc__R
R(((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyRs	tMetadataMaterializercBs/eZdd„Zd„Zd„Zd„ZRS(cCsL||_d|_||_||_|dkr?tƒ|_n	||_dS(N(t_blobtNonet_mdt	_base_urlt_callerRt
_leaf_decoder(RRtbase_urltcallertleaf_decoder((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt__init__5s				cCs8i}g}tj|ƒ}|s+||fSd„}d„}xî|jƒD]à}|jƒ}||ƒ}|sJ|r|qJn|dkrŽqJn||ƒr¹||kr*|j|ƒq*qJ|jddƒ}|}	t|ƒdkr |\}
}tj|
ƒ}
|
dk	r d|
}	|}q n|	||<qJW||fS(NcSs|jdƒrtStSdS(Nt/(R	R
R(titem((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pythas_childrenGscSs |jdƒr|jdƒS|S(NR+(R	trstrip(R,((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytget_nameMs
ssecurity-credentialst=is%s/openssh-key(	RRRRtappendtsplittlentsafe_intR"(RRtleavestchildrenR-R/Rt
field_nametcontentstresourcetidenttsub_contents((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt_parse?s6
		
cCs8|jdk	r|jS|j|j|jƒ|_|jS(N(R#R"t_materializeR!R$(R((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytmaterializejscCs4|j|ƒ\}}i}xa|D]Y}tj||ƒ}|jdƒsV|d7}n|j|ƒ}|j||ƒ||<q"Wi}	xQ|jƒD]C\}
}tj||ƒ}|j|ƒ}
|j|
|
ƒ|	|
<q’Wi}|j|ƒxA|	j	ƒD]3}
|
|krt
jd|ƒqù|	|
||
<qùW|S(NR+s&Duplicate key found in results from %s(R<Rtcombine_urlR	R%R=titemsR&tupdatetkeysRR(RRR'R5R6tchild_contentstct	child_urlt
child_blobt
leaf_contentsRR9tleaf_urlt	leaf_blobtjoined((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyR=ps*


	
N(RRR"R*R<R>R=(((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyR 4s
	+	cCs
|j|kS(s/Returns False if cause.code is in status_codes.(tcode(tstatus_codest
_request_argstcause((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytskip_retry_on_codes‰stlatestshttp://169.254.169.254icCsêtj||ƒ}tj|dƒ}d}	y[|sHtjttƒ}ntj|d|d|d|d|d|d|ƒ}
|
j}	Wn^tjk
rÂ}|j	tkræt
jtd	|ƒqæn$t
k
råt
jtd	|ƒnX|	S(
Ns	user-dataRtssl_detailsttimeouttretriestexception_cbt
headers_cbtheaders_redacts$Failed fetching userdata from url %s(RR?t	functoolstpartialROtSKIP_USERDATA_CODEStread_file_or_urlR8tUrlErrorRKRtlogexcRt	Exception(tapi_versiontmetadata_addressRQRRRSRURVRTtud_urlt	user_datatresponseR((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytget_instance_userdataŽs$		

c
sÜtj|||ƒ}
tjtjd|d|d|d|d|d|	ƒ‰‡fd†}ySˆ|
ƒ}t|j|
|d|ƒ}
|
jƒ}t|t	ƒs¨i}n|SWn(t
k
r×tjt
d	||
ƒiSXdS(
NRQRRRSRURVRTcs
ˆ|ƒjS(N(R8(turl(R((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytmcaller·sR)sFailed fetching %s from url %s(RR?RWRXRZR R8R>t
isinstancetdictR]RR\R(ttreeR^R_RQRRRSR)RURVRTtmd_urlReRbtmaterializertmd((R(s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt_get_instance_metadataªs&					
c		CsCtddd|d|d|d|d|d|d	|d
|d|ƒ
S(NRhs
meta-data/R^R_RQRRRSR)RVRURT(Rl(	R^R_RQRRRSR)RURVRT((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytget_instance_metadataÈsc		CsCtddd|d|d|d|d|d|d	|d
|d|ƒ
S(NRhsdynamic/instance-identityR^R_RQRRRSR)RVRURT(Rl(	R^R_RQRRRSR)RURVRT((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pytget_instance_identityÙs(RWRt	cloudinitRtloggingRRt	getLoggerRRt	frozensett	NOT_FOUNDRYtobjectRR ROR"RcRlRmRn(((s7/usr/lib/python2.7/site-packages/cloudinit/ec2_utils.pyt<module>	s@ U					
Back to Directory File Manager