܍~c@ddlmcmcmZddlmZddlmZmZej e Z ddiZ dZ dZdZdZGd d ejZeejffgZd ZdS) N)log)sourcesutil metadata_urlz'http://169.254.169.254/metadata/v1.jsonTc@eZdZdZdZdZdZdZedZ dS)DataSourceDigitalOcean DigitalOceancDtj||||||_t |_t jt j|ddgitg|_ |j d|_ |j dt|_|j dt|_|j dt"|_|j dt&|_d|_dS)N datasourcer rretriestimeout use_ip4LL wait_retry)r DataSource__init__distrodictmetadatar mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgmetadata_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'65AAA  ($lN;R"     !% N ;{y*== {y*== mDD+//, FF#c(tjSN) do_helper read_sysinfo)r"s r% _get_sysinfoz#DataSourceDigitalOcean._get_sysinfo2s%'''r&c|\}}|sdStd|d}|jrt j|j}t j|j|j |j |j }||_ | d||jd<| d||jd<| d|jd<| d |jd <| d d |jd <| dd|_| dd|_|rt j|dS)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)r+LOGinforr)assign_ipv4_link_localr read_metadatarrrr metadata_fullrrvendordata_raw userdata_rawdel_ipv4_link_local)r"is_dor. ipv4LL_nicmds r% _get_dataz DataSourceDigitalOcean._get_data5s^"//11  5 9:FFF > G"9$+FFJ  $  !LL     ')vvlJ'G'G m$*,&&Z*H*H &'&(ff\&:&: l#')vvm'<'< m$-/VVHi-H-H )* ff]D99FF;55  6  )* 5 5 5tr&cPtj|dS)Nzsystem-serial-number)rinstance_id_matches_system_uuidget_instance_id)r"r#s r%check_instance_idz(DataSourceDigitalOcean.check_instance_idWs)6  " "$:   r&c|jr|jS|jd}t||st d|jdd}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. r0z'Unable to get meta-data from server....dns nameservers) r!rrr7debug Exceptionr;r)convert_network_configuration)r"r0rIs r%network_configz%DataSourceDigitalOcean.network_config\s   (' ']&&|44  * GEFF F(/ > (F    ##r&N) __name__ __module__ __qualname__dsnamerr+rBrFpropertyrMr&r%r r sq F$$$&(((   D   $$X$$$r&r c6tj|tSr()rlist_from_depends datasources)dependss r%get_datasource_listrXys  $Wk : ::r&)&cloudinit.sources.helpers.digitaloceanrhelpers digitaloceanr) cloudinitrloggingr getLoggerrNr7rrrr rrr DEP_FILESYSTEMrVrXrSr&r%r`s;:::::::::::$$$$$$########g!!=     T$T$T$T$T$W/T$T$T$rg467 ;;;;;r&