fddlZddlmcmcmZddlmZmZeje Z ddiZ dZ dZ dZdZGdd ej Zeej$ffgZd Zy) N)sourcesutil metadata_urlz'http://169.254.169.254/metadata/v1.jsonTcZeZdZdZdZdeddffd ZdZdZd Z d Z e d Z xZ S) DataSourceDigitalOcean DigitalOceanc`tjj||||||_t |_t jt j|ddgitg|_ |j|jd|_ |jjdt|_|jjdt |_|jjdt$|_|jjdt(|_d|_y)N datasourcer rretriestimeout use_ip4LL wait_retry)r DataSource__init__distrodictmetadatar mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfg _deprecatemetadata_addressget MD_RETRIESr MD_TIMEOUTr MD_USE_IPV4LLr MD_WAIT_RETRYr_network_config)selfsys_cfgrpathss J/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceDigitalOcean.pyrzDataSourceDigitalOcean.__init__ s##D'65A  (($$lN;R"      $ N ;{{y*= {{y*= mD++//, F#ci_pkl_versionreturnNcDt|||jyN)super _unpickler)r"r' __class__s r%r,z DataSourceDigitalOcean._unpickle4s .) r&c4tjdddy)Nr z23.2z.Deprecated in favour of DataSourceConfigDrive.) deprecateddeprecated_version extra_message)r deprecater"s r%rz!DataSourceDigitalOcean._deprecate8s /%J r&c*tjSr*) do_helper read_sysinfor3s r% _get_sysinfoz#DataSourceDigitalOcean._get_sysinfo?s%%''r&c|j\}}|sytjd|d}|jrt j |j }t j|j|j|j|j}||_ |jd||jd<|jd||jd<|jd|jd<|jd |jd <|jd d |jd <|jdd|_|jdd|_|rt j"|y)NFz&Running on DigitalOcean. droplet_id=%s)r sec_betweenr droplet_idz instance-idhostnamezlocal-hostname interfaces public_keysz public-keysregiondefaultavailability_zone vendor_data user_dataT)r7LOGinforr5assign_ipv4_link_localr read_metadatarrrr metadata_fullrrvendordata_raw userdata_rawdel_ipv4_link_local)r"is_dor: ipv4LL_nicmds r% _get_dataz DataSourceDigitalOcean._get_dataBs9"//1  9:F >>"99$++FJ  $ $  ! !LLLL   ')vvlJ'G m$*,&&Z*H &'&(ff\&: l#')vvm'< m$-/VVHi-H )* ff]D9FF;5   ) )* 5r&cJtj|jdS)Nzsystem-serial-number)rinstance_id_matches_system_uuidget_instance_id)r"r#s r%check_instance_idz(DataSourceDigitalOcean.check_instance_idds$66  "$:  r&c|jr |jS|jjd}tj ||s t d|j dd}tj|||_|jS)zConfigure the networking. This needs to be done each boot, since the IP information may have changed due to snapshot and/or migration. r<z'Unable to get meta-data from server....dns nameservers) r!rrrCdebug RuntimeErrorrGr5convert_network_configuration)r"r<rUs r%network_configz%DataSourceDigitalOcean.network_configis   '' ']]&&|4  *HI I((/ > (FF   ###r&)__name__ __module__ __qualname__dsnamerintr,rr7rNrRpropertyrY __classcell__)r-s@r%r r sI F$( ( D $$r&r c6tj|tSr*)rlist_from_depends datasources)dependss r%get_datasource_listres  $ $Wk ::r&)logging&cloudinit.sources.helpers.digitaloceanrhelpers digitaloceanr5 cloudinitr getLoggerrZrCrrrr rrr DEP_FILESYSTEMrcrer&r%rns::#g!=     `$W//`$Jg4467 ;r&