Current File : //usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pyo
�
��Xc@s�ddlZddlmZmZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZdefd��YZ
dS(i����N(tdatetimet	timedelta(tArg(t
ArgumentError(t
EC2RequesttBundleInstancecBsFeZdZeddddd�edddd	dd
dedd�ed
ddddddedd�eddddddddd�edddddddd�edddddd dd!�ed"d#d$dd%d&d4dd'�ed(d)dd*d+ed,d-d&d4dd.�gZd/�Zd0�Z	d1�Z
d2�Zd3�ZRS(5s$Bundle an S3-backed Windows instancet
InstanceIdtmetavartINSTANCEthelps'ID of the instance to bundle (required)s-bs--buckettdestsStorage.S3.BuckettBUCKETtrequiredsIbucket in which to store the new machine
                image (required)s-ps--prefixsStorage.S3.PrefixtPREFIXs5beginning of the machine image bundle name (required)s-os--owner-akids--user-access-keysKEY-IDsStorage.S3.AWSAccessKeyIdsYbucket owner's access
                key ID (required if not specified in configuration)s-cs--policytPOLICYsStorage.S3.UploadPolicys�Base64-encoded upload
                policy that allows the server to upload a bundle on your
                behalf.  If unused, a secret key is required.s-ss--policy-signaturet	SIGNATUREs Storage.S3.UploadPolicySignaturesdsignature of the Base64-encoded upload policy.  If
                unused, a secret key is required.s-ws--owner-saks--user-secret-keytKEYtroute_tos�bucket owner's secret access key, used to sign upload
                policies.  This is required unless both -c and -s are used or
                if a secret key is specified in a configuration file.s-xs	--expirestHOURSttypetdefaultis5generated upload policy expiration time (default: 24)cCs�td|jd�}tj�|jdd�}idd6i|jjd�d6d	d
|jjd�gg}i|d6tjd
|j��d6}t	j
|�}|jjd|�t
j|�|jd<dS(Nthourstexpirestmicrosecondisec2-bundle-readtaclsStorage.S3.Buckettbucketsstarts-withs$keysStorage.S3.Prefixt
conditionss%Y-%m-%dT%H:%M:%SZt
expirationsgenerated default policy: %ssStorage.S3.UploadPolicy(RtargsRtutcnowtreplacetgetttimetstrftimet	timetupletjsontdumpstlogtinfotbase64t	b64encodetparams(tselftdeltatexpire_timeRtpolicytpolicy_json((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pytgenerate_default_policyEs

	cCsXtj|jddtj�}|j|jjd��tj	|j
��|jd<dS(Nt	owner_sakt	digestmodsStorage.S3.UploadPolicys Storage.S3.UploadPolicySignature(thmactnewRthashlibtsha1tupdateR)RR'R(tdigest(R*tmy_hmac((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pytsign_policyTscCsItj|�|jjd�si|jjd�}|rZ|jjd|�||jd<qitd��n|jjd�s�|j	jd�sE|jjd�}|r�|jjd�||j	d<q�td	��qEnn|j	jd
�sE|j	jd�sE|jjd�}|r3|jjd�||j	d<qBtd��qEndS(NsStorage.S3.AWSAccessKeyIdskey-ids)Using access key ID %s from configurations$argument -o/--owner-akid is requiredsStorage.S3.UploadPolicyR0s
secret-keys#Using secret key from configurations@argument -w/--owner-sak is required when -c/--policy is not useds Storage.S3.UploadPolicySignaturesJargument -w/--owner-sak is required when -s/--policy-signature is not used(
Rt	configureR)Rtconfigtget_user_optionR%R&RR(R*t
config_key_idtconfig_secret_key((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pyR:[s,
cCsB|jjd�s|j�n|jjd�s>|j�ndS(NsStorage.S3.UploadPolicys Storage.S3.UploadPolicySignature(RRR/R9(R*((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pyt
preprocessys
cCs|j|d�dS(NtbundleInstanceTask(tprint_bundle_task(R*tresult((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pytprint_resultsN(
t__name__t
__module__tDESCRIPTIONRtTruetNonetinttARGSR/R9R:R?RC(((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pyR's:				(R'RRR4R2R#R trequestbuilderRtrequestbuilder.exceptionsRteuca2ools.commands.ec2RR(((sI/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/bundleinstance.pyt<module>s