Current File : //lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyo
�
��Xc@s�ddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
d�Zdefd��YZ
dS(	i����N(tBundleAndUploadImage(t
CreateTags(t
RegisterImage(tcheck_dict_whitelistttransform_dictcCsd|krt||�SdS(s�
    This is a factory method that takes a dict with image profile
    information and returns a profile object.  While it currently always
    returns instance-store images, it is meant to handle multiple types
    in the future.
    tbundleN(tInstanceStoreImageProfile(tprofile_dicttarch((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pytbuild_image_profile#sRcBs8eZd�Zd�Zd�Zd�Zdd�ZRS(cCs�t|dddddg�i|_i|_i|_|jd�pIi}|jd|�|j|�|jd�p{i}|jd|�|j|�|j|jd�p�i�dS(NtprofileRtprovidestregisterttagR(	Rtbundle_argst
register_argsttag_argstgett
setdefaultt,_InstanceStoreImageProfile__load_bundle_argst._InstanceStoreImageProfile__load_register_argst)_InstanceStoreImageProfile__load_tag_args(tselfRRRR((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyt__init__/s				

cCsHt|ddg�|jj|�|jjd�sDtd��ndS(NRRsregister: arch is required(RRtupdateRt
ValueError(Rtargs((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyt__load_bundle_args>scCs�t|ddddddg�|jjt|idd6dd6d	d6d
d6��|jjd�sutd��n|jjdd�p�i}t|t	�s�td��nx�|j
�D]�\}}i|d
6}|dkr�d|d<q�t|tj�r|j
d�r||d<q�t|t	�r�t|idd6dd6dd6�|d<|djd�r�|djd�r�td��q�q�td��q�WdS(NRRsblock-device-mappingstdescriptiontplatformsvirtualization-typetArchitecturetDescriptiontPlatformtVirtualizationTypesregister: arch is requireds<register: block-device-mappings must be an associative arrayt
DeviceNametnonettruetNoDevicet	ephemeraltVirtualNamet
SnapshotIdssnapshot-idt
VolumeSizesvolume-sizetDeleteOnTerminationsdelete-on-terminationtEbss9register: block device mapping {0} requires a volume-sizes)register: unreadable block device mapping(RRRRRRtpoptNonet
isinstancetdicttitemstsixtstring_typest
startswith(RRtmappingstdevicetmapping_infotmapping((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyt__load_register_argsDs>		





cCst|d�g}x5|j�D]'\}}|ji|d6|d6�q W|r{|jjdg�|jdj|�ndS(NR
tKeytValuetTag(RR0tappendRRtextend(RRttagstkeytval((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyt__load_tag_argshs
cCs�t|j�}x.d)D]&}|j|�r||||<qqWtd	|d
d	d|d
d	jd|d
d	jjd
|d
d
d|d|j�ddd|d|jd�dddd|�}	y|	j�}
Wn/t	k
r}t
dj|jd���nXt|j
�}|jd�r7|d|d<n|jd�rW|d|d<n|jd�sv|j|d<ntd	|dd	d|dd	jd|dd	jjd
|dd
d|
ddd d!d"j|j�tjj�jd#��|�}	|	j�}
|
d$}t|j�}|g|d%<|jd&g�|r�x<|j�D]+\}}|d&ji|d'6|d(6�qTWntd	|dd	d|dd	jd|dd	jjd
|dd
|�}	|	j�|S(*Nt
privatekeytcerttec2certtusertbuckettlocationtkerneltramdisktservicets3tconfigtlogleveltauthtimagetprefixt
image_typetmachinet
image_sizet
show_progresstmax_pending_partsit	part_sizei�s{0} is requireditKernelIdt	RamdiskIdRtec2t
ImageLocationt	manifestsR?tNames{0}-{1}s%F-%H-%m-%stimageIdt
ResourceIdR;R9R:(RBRCRDRERFRGRHRI(R/RRRRLtlogtleveltget_nvratmaintKeyErrorRtformatRRRRtdatetimetutcnowtstrftimeRRR0R<R(Rtimage_mdtservicest
image_fileobjRSRR>Rtargnametreqtbundle_infoterrRtregister_responsetimage_idRR?R@((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pytinstallqsd
 		

&
N(t__name__t
__module__RRRRR-Rq(((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyR.s
			$	
(ReR1t.euca2ools.commands.bundle.bundleanduploadimageRt!euca2ools.commands.ec2.createtagsRt$euca2ools.commands.ec2.registerimageRteuca2ools.utilRRR	tobjectR(((sL/usr/lib/python2.7/site-packages/euca2ools/commands/euimage/pack/profiles.pyt<module>s