o x[h(@s ddlZddlZddlmZmZmZmZddlmZm Z ddl m Z ddl m Z ddlmZddlmZeeZdZd eiZd Zd ZeegZd Zd ZdZdZeZeeeeeg7ZGdddej ej!Z"Gddde"Z#dddZ$e#ej%ffe"ej%ej&ffgZ'ddZ(dS)N)dmisources url_helperutil) EventScope EventType)NoDHCPLeaseError)EphemeralDHCPv4)DataSourceOracle) openstackziid-dsopenstackz instance-idzOpenStack NovazOpenStack ComputeOpenTelekomCloudz SAP CCloud VM HUAWEICLOUDzSamsung Cloud PlatformcseZdZdZejZdZej e j e j e j e jhiZfddZddZddZd d Zed d Zd dZddZddZZS)DataSourceOpenStack OpenStackFcsHtt||||d|_t|j|_d|_i|_ t j |_ t j |_ dSN)superr__init__metadata_addressrfetch_ssl_detailspaths ssl_detailsversionfilesrUNSET ec2_metadata network_json)selfsys_cfgdistror __class__G/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceOpenStack.pyr>s zDataSourceOpenStack.__init__cCs"tj|}d||j|jf}|S)Nz%s [%s,ver=%s])r DataSource__str__dsmoder)rrootmstrr!r!r"r$Gs zDataSourceOpenStack.__str__c Csdj|jjddg}|jd|}dd|D}t|t|kr.tdtt|t|t |r5|}nt d|}g}i}|D]}t |d }| ||||<qB|}t} t j||j|jd d \} } | rttd || n td |tt| || |_t| S)Nz"http://[fe80::a9fe:a9fe%25{iface}])ifacezhttp://169.254.169.254 metadata_urlscSsg|] }t|r|qSr!)ris_resolvable_url).0xr!r!r" TszADataSourceOpenStack.wait_for_metadata_service..z,Removed the following from metadata urls: %sz+Empty metadata url list! using default listr F)urlsmax_waittimeoutconnect_synchronouslyzUsing metadata source: '%s'z2Giving up on OpenStack md from %s after %s seconds)formatrfallback_interfaceds_cfggetsetLOGdebuglistlenwarningr combine_urlappendget_url_paramstime monotonic wait_for_urlmax_wait_secondstimeout_secondsintrbool) r DEF_MD_URLSr.filteredmd_urlsurl2baseurlmd_url url_params start_time avail_url _responser!r!r"wait_for_metadata_serviceLsN      z-DataSourceOpenStack.wait_for_metadata_servicecCst|Sr)rinstance_id_matches_system_uuidget_instance_id)rrr!r!r"check_instance_id{sz%DataSourceOpenStack.check_instance_idcCsn|jtjkr |jSt|jddrd|_|jS|jtjkr&t ddSt dt j |jdd|_|jS)z@Return a network config dict for rendering ENI or netplan files.apply_network_configTNzread_metadata_servicerr num_retriesrCr NonReadableBrokenMetadata)rrorLresultmsgr!r!r"r`sB  z#DataSourceOpenStack._crawl_metadatacCspd|jdv}tsdStd}|tvrdStdtvr"dS|r*t r*dSt ddt kr6dSdS) zsD     Z