Viewing File: /usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyo

ó
¡ôXc@s•ddlZddlZddlZddlZddlZddlZddlZddl	Z
defd„ƒYZd„Z
d„Zd„ZdS(iÿÿÿÿNtBundleManifestcBsPeZdd„Zedd„ƒZedd„ƒZed„Zed„Z	RS(cCsÇtj|jjƒ|_|dk	r3||j_nd|_d|_d|_	i|_
g|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_d|_g|_dS(N(tloggingt	getLoggert	__class__t__name__tlogtNonetlevelt
image_archt	kernel_idt
ramdisk_idtblock_device_mappingst
product_codest
image_namet
account_idt
image_typetimage_digesttimage_digest_algorithmt
image_sizetbundled_image_sizetenc_keytenc_ivt
enc_algorithmtimage_parts(tselftloglevel((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyt__init__'s&															cCs)t|ƒ}|j||ƒSWdQXdS(N(topentread_from_fileobj(tclstmanifest_filenametprivkey_filenametmanifest_fileobj((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pytread_from_file<sc
Cs¾tjj|ƒjƒ}|ƒ}|j}|jjjƒ|_t	|dƒrf|j
jjƒ|_
nt	|dƒr|jjjƒ|_nt	|dƒrðxQ|jj
ddƒD]7}|jjjƒ}|jjjƒ}||j|<q²Wnt	|dƒr;x9|jj
ddƒD]}	|jj|	jjƒƒqWn|jjjjƒ|_|jjjjƒ|_|jjjjƒ|_|jjjjƒ|_|jjjdƒ|_t|jjjjƒƒ|_ t|jj!jjƒƒ|_"|dk	rÖy%t$|jj%jjƒ|ƒ|_&Wn8t't(fk
rZt$|jj)jjƒ|ƒ|_&nX|jj%jdƒ|_*y%t$|jj+jjƒ|ƒ|_,WqÖt't(fk
rÒt$|jj-jjƒ|ƒ|_,qÖXndgt|jj.jd	ƒƒ|_/xx|jj.j
dd
ƒD]^}
t|
jdƒƒ}t0j1j2|
j3jjƒ|
jjjƒ|
jjdƒƒ|j/|<qWxAt4|j/ƒD]0\}}|dkr†t(dj5|ƒƒ‚q†q†W|S(
NR	R
Rttagtblock_device_mappingtproductcodestproduct_codet	algorithmtcounttparttindexspart {0} must not be None(6tlxmlt	objectifytparsetgetroottmachine_configurationtarchitecturettexttstripRthasattrR	R
RtitertdevicetvirtualR$RtappendtimagetnameR
tuserRttypeRtdigestRtgetRtinttsizeRtbundled_sizeRRt_decrypt_hextuser_encrypted_keyRtAttributeErrort
ValueErrortec2_encrypted_keyRtuser_encrypted_ivRtec2_encrypted_ivtpartsRt	euca2oolstbundlet
BundleParttfilenamet	enumeratetformat(
RR Rtxmltmanifesttmconfigtxml_mappingR4R5t	xml_pcodetxml_partR)R(((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyRAsd		
 ""%%	 cCso|jdkrtdƒ‚n|jdkr<tdƒ‚ntjjj|ƒ}|jj	d|ƒ|jj
d|ƒ|jj
d|ƒ|jj
d|ƒtjj
dƒ}d|_d|_d	|j_tj|j_d
|j_d|_|j}|j|_|jdkrâ|jr„d|_xZt|jjƒƒD]@\}}	tjj
dƒ}
||
_|	|
_|jj|
ƒq=Wn|jrâd|_xF|jD]8}tjj
d
ƒ}|jj|ƒ||jjd<q Wqân|j rú|j |_ n|j!r|j!|_!nd|_"|j#|j"_|j$|j"_%|j|j"_&|j'|j"_(|j"j(j)d|j*ƒ|j+|j"_,|j-|j"_.t/|j|ƒ|j"_0|j"j0j)d|j1ƒ|ràt/|j|ƒ|j"_2nd|j"_2|j"j2j)d|j1ƒt/|j|ƒ|j"_3|r>t/|j|ƒ|j"_4nd|j"_4d|j"_5|j"j5j)dt6t7|j8ƒƒƒx¶t9|j8ƒD]¥\}
}|dkr»tdj:|
ƒƒ‚ntjj
dƒ}|j)dt6|
ƒƒt;j<j=|j>ƒ|_>|j?|_(|j(j)d|j@ƒ|j"j5j|ƒq‹WtjjA|dtBƒtjCjD|ƒ|rštjCjE|jƒtjCjE|j"ƒ}tF||ƒ}nd}||_G|jj
d|ƒtjjA|dtBƒtjCjD|ƒ|jj
dditBd6ƒtjCjE|dtBƒjHƒ}|jj
d|ditBd6ƒ|jj
dƒtjCjE|dtBd|ƒjHƒS(Nsenc_key must not be Nonesenc_iv must not be Nones5creating manifest for EC2 service with fingerprint %ssEC2 certificate:  %ssuser certificate: %ssuser private key: %sROs
2007-10-10RHitmachinetmappingR%iÿÿÿÿR&R'spart {0} must not be NoneR(R)txsi_niltUNSIGNEDshex-encoded signature: %ss-- manifest content --
textraR6tpretty_prints%ss-- end of manifest content --txml_declaration(IRRRCRRHRItutiltget_cert_fingerprintRtinfotdebugR*R+tElementtversiontbundlerR8t__version__treleaseR.RR/RRR#tsortedtitemsR5R4R6RR%R	R
R7R
RR9R:RR;tsetRRR>RR?t_public_encryptRDRRARFRERGtstrtlenRRLRMtostpathtbasenameRKt	hexdigesttdigest_algorithmt
deannotatetTruetetreetcleanup_namespacesttostringt_rsa_sha1_signt	signatureR1(RRtuser_cert_filenametec2_cert_filenameRYtec2_fpRNRPR5R4RQtcodetxml_codeR)R(t	part_elemtto_signRutpretty_manifest((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pytdump_to_strws°																	%	 cCs&|j|j|||d|ƒƒdS(NRY(twriteR~(Rt
manifest_fileRRvRwRY((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pytdump_to_filesN(
Rt
__module__RRtclassmethodR!RtFalseR~R(((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyR&s6ŠcCstjddddd|gdtjdtjƒ}tj|ƒ}|j|ƒ\}}yt|dƒ|SWntk
rnXtd	ƒ‚dS(
Ntopenssltrsautls-decrypts-pkcss-inkeytstdintstdoutisjFailed to decrypt the bundle's encryption key.  Ensure the key supplied matches the one used for bundling.(t
subprocesstPopentPIPEtbinasciit	unhexlifytcommunicateR=RC(thex_encrypted_keyRtpopentbinary_encrypted_keyt
decrypted_keyt_((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyR@s

cCsXtjddddd|dgdtjdtjƒ}|j|ƒ\}}tj|ƒS(	NR…R†s-encrypts-pkcss-inkeys-certinR‡Rˆ(R‰RŠR‹RŽRŒthexlify(tcontentt
cert_filenameRRˆR“((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyRgs
cCswtjƒ}|j|ƒtjdddd|ddgdtjdtjƒ}|j|jƒƒ\}}tj	|ƒS(	NR…tpkeyutls-signs-inkeys-pkeyoptsdigest:sha1R‡Rˆ(
thashlibtsha1tupdateR‰RŠR‹RŽR;RŒR”(R•RR;RRˆR“((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyRt"s
(RŒR˜Rtos.pathRjR‰t
lxml.etreeR*tlxml.objectifyteuca2ools.bundleRHtobjectRR@RgRt(((s=/usr/lib/python2.7/site-packages/euca2ools/bundle/manifest.pyt<module>sâ		
Back to Directory File Manager