x[hddlZddlmcmcmZddlmZmZmZeje Z ddiZ dZ dZdZdZGdd ej"Zeej&ffgZd Zy) N) lifecyclesourcesutil metadata_urlz'http://169.254.169.254/metadata/v1.jsonTcZeZdZdZdZdeddffd ZdZdZd Z d Z e d Z xZ S) DataSourceDigitalOcean DigitalOceancntjj||||||_t |_t jt j|ddgitg|_ |j|jd|_ |jjdt|_|jjdt |_|jjdt$|_|jjdt(|_d|_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 metadata_full)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._unpickle5s .) r(c4tjdddy)Nr z23.2z.Deprecated in favour of DataSourceConfigDrive.) deprecateddeprecated_version extra_message)r deprecater$s r'rz!DataSourceDigitalOcean._deprecate9s/%J r(c*tjSr,) do_helper read_sysinfor5s 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|_|r t j"|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)r9LOGinforr7assign_ipv4_link_localr read_metadatarrrrr#rrvendordata_raw userdata_rawdel_ipv4_link_local)r$is_dor< ipv4LL_nicmds r' _get_dataz DataSourceDigitalOcean._get_dataCs?"//1  9:F >>"99$++FJ  $ $  ! !LLLL   ')vvlJ'G m$*,&&Z*H &'&(ff\&: l#')vvm'< m$-/VVHi-H )* ff]D9FF;5   ) )$++z Br(cJtj|jdS)Nzsystem-serial-number)rinstance_id_matches_system_uuidget_instance_id)r$r%s r'check_instance_idz(DataSourceDigitalOcean.check_instance_ides$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"rrrEdebug RuntimeErrorr#r7convert_network_configuration)r$r>rVs r'network_configz%DataSourceDigitalOcean.network_configjs   '' ']]&&|4  *HI I((/ > (FF   ###r()__name__ __module__ __qualname__dsnamerintr.rr9rOrSpropertyrZ __classcell__)r/s@r'r r sI F"* ( D $$r(r c6tj|tSr,)rlist_from_depends datasources)dependss r'get_datasource_listrfs  $ $Wk ::r()logging&cloudinit.sources.helpers.digitaloceanrhelpers digitaloceanr7 cloudinitrr getLoggerr[rErrrr!r rr DEP_FILESYSTEMrdrfr(r'ros::..g!=     a$W//a$Lg4467 ;r(