ó ¡ôXc@sddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Zd„Zdddd„Zd„Zd„Zd„Zd „Zd „Zdd „Zd „Zd „Zd„ZdS(iÿÿÿÿNcCs€t|ƒdkrdSt|ƒdkr,dStd„|Dƒƒ}d}|jd|dttt|ƒƒƒdt|ƒƒSdS( Niis{fname}css'|]}ttjj|ƒƒVqdS(N(tlentostpathtbasename(t.0tfname((s2/usr/lib/python2.7/site-packages/euca2ools/util.pys 0ss1{{fname:<{maxlen}}} ({{index:>{lenlen}}}/{total})tmaxlentlenlenttotal(RtNonetmaxtformattstr(tfnamest max_fname_lent fmt_template((s2/usr/lib/python2.7/site-packages/euca2ools/util.pyt build_progressbar_label_template*stttmpc Cs^|dkrBtjdƒp<tjdƒp<tjdƒp<d}ntjd|d|d|ƒS( s¯ Like tempfile.mkdtemp, but using /var/tmp as a last resort instead of /tmp. This is meant for utilities that create large files, as /tmp is often a ramdisk. tTMPDIRtTEMPtTMPs/var/tmptsuffixtprefixtdirN(R Rtgetenvttempfiletmkdtemp(RRR((s2/usr/lib/python2.7/site-packages/euca2ools/util.pytmkdtemp_for_large_files8s - cCsUtjddƒ}tjddƒ}||kr4|StjddtjƒtƒSdS(NtpromptsNew password: sRetype new password: serror: passwords do not matchtfile(tgetpasstsixtprint_tsyststderrtprompt_for_password(tpass1tpass2((s2/usr/lib/python2.7/site-packages/euca2ools/util.pyR$Gs  cCsQg|D]}|dkr|^q}t|ƒdkrI||dpHiS|SdS(NtResponseMetadataii(R(t response_dicttkeyt useful_keys((s2/usr/lib/python2.7/site-packages/euca2ools/util.pytstrip_response_metadataQs%cCssigd6}x_|pgD]Q}tjjƒjdƒ}i|d6|d6|d6|d6}|dj|ƒqW|S(Nt StatementsStmt%Y%m%d%H%M%S%ftSidtEffecttActiontResource(tdatetimetutcnowtstrftimetappend(teffectt resourcestactionstpolicytresourcetsidt statement((s2/usr/lib/python2.7/site-packages/euca2ools/util.pytbuild_iam_policyYs  cCsÈtj|ƒj}tj|ƒrdtj|tjƒ}ztj|dtjƒSWdtj|ƒXnTt tj |ƒtj |ƒtj |ƒtj |ƒfƒr¸tdj|ƒƒ‚ntjj|ƒS(Nis&'{0}' does not have a usable file size(Rtstattst_modetS_ISBLKtopentO_RDONLYtlseektSEEK_ENDtclosetanytS_ISCHRtS_ISFIFOtS_ISSOCKtS_ISDIRt TypeErrorR Rtgetsize(tfilenametmodetblock_fd((s2/usr/lib/python2.7/site-packages/euca2ools/util.pyt get_filesizecs' cCsut|ƒdkr*tdj|ƒƒ‚nt|dƒd}tjd|jdƒƒ}|dd@dkr™|jd d ƒtjd|jdƒƒ}nWdQXd |dkrÇtd j|ƒƒ‚n|d d @dkrótdj|ƒƒ‚n|d d@dkrtdj|ƒƒ‚n|drAtdj|ƒƒ‚n|ddkritdj|ƒƒ‚nd|dS(Nis8File {0} is to small to be a valid Stream Optimized VMDKtrbss,                !