ó 'KXc@sàddlZddlmZddlmZddlmZddlmZddlmZej e ƒZ dZ dZ ie d 6ZdZd ejejfd „ƒYZddd„ZeejejffgZd„ZdS(iÿÿÿÿN(tlog(tsources(t url_helper(tutil(t openstackshttp://169.254.169.254siid-dsopenstacks instance-idtnettdisabledtDataSourceOpenStackcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCswtt|ƒj|||ƒd|_d|_tj|jƒ|_ d|_ i|_ d|_ |j ssi|_ ndS(NR(tsuperRt__init__tdsmodetNonetmetadata_addressRtfetch_ssl_detailstpathst ssl_detailstversiontfilest ec2_metadatatds_cfg(tselftsys_cfgtdistroR((sR/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceOpenStack.pyR (s      cCs/tjj|ƒ}d||j|jf}|S(Ns%s [%s,ver=%s](Rt DataSourcet__str__R R(Rtroottmstr((sR/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceOpenStack.pyR3scCs«d}d}yt|jjd|ƒƒ}Wn$tk rQtjtd|ƒnXy(tdt|jjd|ƒƒƒ}Wn$tk r tjtd|ƒnX||fS(Niÿÿÿÿi tmax_waits Failed to get max wait. using %sittimeoutsFailed to get timeout, using %s(tintRtgett ExceptionRtlogexctLOGtmax(RRR((sR/opt/freeware/lib/python2.7/site-packages/cloudinit/sources/DataSourceOpenStack.pyt_get_url_settings8s ( c Cs®|jjdtgƒ}g|D]}tj|ƒr|^q}t|ƒt|ƒkrtjdtt|ƒt|ƒƒƒnt |ƒr–|}ntj dƒtg}g}i}x[|D]S}xJt j t j fD]5}tj|d|dƒ}|j|ƒ|||s  v