܍~c)rddlZddlmZddlmZddlmZmZmZddlm Z m Z ddl m Z ddl mZddlmZdd lmZejeZd Zd Zd eiZd ZdZeegZdZdZdZeZ e eeegz Z Gddej!ej"Z#Gdde#Z$ddZ%ddZ&e$ej'ffe#ej'ej(ffgZ)dZ*dS)N)dmi)log)sources url_helperutil) EventScope EventType)NoDHCPLeaseError)EphemeralDHCPv4)DataSourceOracle) openstackzhttp://169.254.169.254ziid-dsopenstackz instance-idzOpenStack NovazOpenStack ComputeOpenTelekomCloudz SAP CCloud VM HUAWEICLOUDceZdZdZejZdZej e j e j e j e jhiZfdZdZdZdZedZdZd ZxZS) DataSourceOpenStack OpenStackFctt||||d|_t j|j|_d|_i|_ tj |_ tj |_ dSN)superr__init__metadata_addressrfetch_ssl_detailspaths ssl_detailsversionfilesrUNSET ec2_metadata network_json)selfsys_cfgdistror __class__s G/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenStack.pyrzDataSourceOpenStack.__init__>sk !4((11'65III $1$*==  #M#Mcntj|}|d|jd|jd}|S)Nz [z,ver=])r DataSource__str__dsmoder)r rootmstrs r$r)zDataSourceOpenStack.__str__Gs9!))$//#'44dlllC r%c |jdtg}d|D}t|t|krEtdt t|t|z t|r|}n"tdtg}g}i}|D]1}tj |d}| ||||<2| }tj }tj||j|j\} } | r"td|| n=td|t#tj |z || |_t'| S) N metadata_urlsc:g|]}tj||S)ris_resolvable_url).0xs r$ zADataSourceOpenStack.wait_for_metadata_service..Ns(AAA!t'=a'@'@AAAAAr%z,Removed the following from metadata urls: %sz+Empty metadata url list! using default listr )urlsmax_waittimeoutzUsing metadata source: '%s'z2Giving up on OpenStack md from %s after %s seconds)ds_cfgget DEF_MD_URLsetLOGdebuglistlenwarningr combine_urlappendget_url_paramstime wait_for_urlmax_wait_secondstimeout_secondsintrbool) r r5filteredmd_urlsurl2baseurlmd_url url_params start_time avail_url _responses r$wait_for_metadata_servicez-DataSourceOpenStack.wait_for_metadata_serviceLs{ ==AAtAAA x==CII % % II>c$ii#h--/11    x== DD KKE F F FEEa&&F  ((**  ?] 5%+,#'#3)5)9   FF$ ; ; ;23q66:: :('2 ? ? ?299*:C2377Q >  ?  s9(+ A/5A**A/AC E!C99E0EE)__name__ __module__ __qualname__dsnamerrr[rmrNETWORKr BOOT_NEW_INSTANCEBOOT BOOT_LEGACYHOTPLUGsupported_update_eventsrr)rSrWpropertyr^rrq __classcell__)r#s@r$rr,s FmO   ' N  !    ***** &&&POOO$$X$0<<<|(((((((r%rceZdZdZdZdS)DataSourceOpenStackLocalauRun in init-local using a dhcp discovery prior to metadata crawl. In init-local, no network is available. This subclass sets up minimal networking with dhclient on a viable nic so that it can talk to the metadata service. If the metadata service provides network configuration then render the network configuration for that instance based on metadata. TN)rrr__doc__rmr0r%r$rrs"r%rcZtj||||}|S)N)rr7r)r MetadataReaderread_v2)base_urlrr7rreaders r$rrs4  %k7GF >>  r%Fc:tjsdStjd}|tvrdStjdt vrdS|rt jrdStjd dtkrdSdS)zrs $$$$$$//////////11111111//////333333888888//////g!!&  ; $)+-@A.*).KKKKK)/1CKKK\     2       $ 6897173FGH ;;;;;r%