ó 'KXc@sÐddlZddlZddlmZddlmZddlmZddlmZ ddlm Z ej e ƒZ dZdZed gZd ejfd „ƒYZeejejffgZd „ZdS( iÿÿÿÿN(t ec2_utils(tlog(tsources(t url_helper(tutilshttp://169.254.169.254s 2009-04-04shttp://instance-data.:8773t DataSourceEc2cBs\eZd„Zd„Zed„ƒZd„Zd„Zd„Zd„Z ed„ƒZ RS(cCsJtjj||||ƒt|_tjj|jdƒ|_t |_ dS(Ntec2( Rt DataSourcet__init__t DEF_MD_URLtmetadata_addresstostpathtjointseed_dirtDEF_MD_VERSIONtapi_ver(tselftsys_cfgtdistrotpaths((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pyR.s cCsüi}tj|d|jdƒrS|d|_|d|_tjd|jƒtSyz|jƒsft St j ƒ}t j |j |jƒ|_t j|j |jƒ|_tjdtt j ƒ|ƒƒtSWn(tk r÷tjtd|jƒt SXdS(Ntbaset/s user-datas meta-datasUsing seeded ec2 data from %ss)Crawl of metadata service took %s secondss'Failed reading from metadata address %s(Rtread_optional_seedRt userdata_rawtmetadatatLOGtdebugtTruetwait_for_metadata_servicetFalsettimeRtget_instance_userdataRR tget_instance_metadatatintt Exceptiontlogexc(Rtseed_rett start_time((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pytget_data4s*          cCs|js dS|jjdƒS(Nsami-launch-index(RtNonetget(R((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pyt launch_indexLs cCs |jdS(Ns instance-id(R(R((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pytget_instance_idRscCs½|j}|si}nd}yt|jd|ƒƒ}Wn$tk r`tjtd|ƒnXd}y%tdt|jd|ƒƒƒ}Wn$tk r²tjtd|ƒnX||fS(Nixtmax_waits Failed to get max wait. using %si2ittimeoutsFailed to get timeout, using %s(tds_cfgR"R)R#RR$Rtmax(RtmcfgR,R-((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pyt_get_url_settingsUs   % c Cs³|j}|si}n|jƒ\}}|dkr:tS|jdtƒ}g|D]}tj|ƒrS|^qS}t|ƒt|ƒkrµtj dt t|ƒt|ƒƒƒnt |ƒrÊ|}ntj dƒt}g}i}x8|D]0} d| |j f} |j| ƒ| || %s( RR(t iteritemsRRt startswithR R texistst _remap_devicetbasename(Rtnametfoundt bdm_itemstentnametdevicetofoundtremapped((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pytdevice_name_to_device’s2     cCs,y|jddSWntk r'dSXdS(Nt placementsavailability-zone(RtKeyErrorR((R((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pytavailability_zoneÁs ( t__name__t __module__RR'tpropertyR*R+R1RRTRW(((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pyR-s     + /cCstj|tƒS(N(Rtlist_from_dependst datasources(tdepends((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pytget_datasource_listÏs(R Rt cloudinitRRRtloggingRRR<Rt getLoggerRXRR RR5RRtDEP_FILESYSTEMt DEP_NETWORKR\R^(((sL/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceEc2.pyts