o x[h @sddlZddlmZddlmmmZddlmZmZm Z m Z e e Z ddddde e d e d fd ZGd d d ejZeejffgZddZe dkrddlZesgededejddjZeeedededededZedZeZ dSdS)N)Tuple)sourcesstagesutilversionzhttp://169.254.169.254 z"Cloud-Init/%s - OS: %s Variant: %ssystemvariant)urlretriestimeoutwait user-agentcseZdZUdZejjdZeedfe d<fddZ e ddZ d d Z d d Zd dZddZeddZeddZZS)DataSourceVultrVultr)zstartup-script.sensitive_metadata_keyscs<tt||||tt|ddgitg|_d|_dS)N datasourcer) superr__init__r mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgnetcfg)selfsys_cfgdistropaths __class__C/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceVultr.pyr%s zDataSourceVultr.__init__cCstSN)vultris_vultrr"r"r"r# ds_detect/szDataSourceVultr.ds_detectcCsTtd||_|jd|_||jtd|jdtd|jddS)NzMachine is a Vultr instance user-dataz SUBID: %sz instance-idz Hostname: %slocal-hostnameT)LOGdebug get_metadatametadata userdata_rawget_datasource_datarr"r"r# _get_data4s    zDataSourceVultr._get_datacCsvd|vrt|d|d|_nt|d|_|d|_|jddkr*d|jd<|d|_|jdkr9d|_dSdS)Ncloud_interfaces interfaces vendor-datar)guestr()r%add_interface_namesrgenerate_network_configvendordata_rawr-r.)rmdr"r"r#r/Fs      z#DataSourceVultr.get_datasource_datac Cs>tj|j|jd|jd|jd|jd|jd|jdS)Nr rr rr)tmp_dir)r%r,rrget_tmp_exec_pathr0r"r"r#r,[szDataSourceVultr.get_metadatacCs.tsdStr dStd}t|S)NFsubid)r%r& is_baremetal get_sysinforinstance_id_matches_system_uuid)rrr=r"r"r#check_instance_idgs   z!DataSourceVultr.check_instance_idcCsdSr$r"r0r"r"r# launch_indexsszDataSourceVultr.launch_indexcCs|jSr$)rr0r"r"r#network_configwszDataSourceVultr.network_config)__name__ __module__ __qualname__dsnamer DataSourcerrstr__annotations__r staticmethodr'r1r/r,rApropertyrBrC __classcell__r"r"r r#rs      rcCs t|tSr$)rlist_from_depends datasources)dependsr"r"r#get_datasource_lists rQ__main__zMachine is not a Vultr instanceT)reporterr rr rrr4)!loggingtypingrcloudinit.sources.helpers.vultrrhelpersr% cloudinitrrr getLoggerrDr*version_string system_inforrHrDEP_FILESYSTEMrOrQsysr&printexitInitrr,r:configr?sysinfor"r"r"r#sJ     a