o
    f                  	   @   s  d dl Z d dlmZ d dlm  m  mZ d dlmZmZm	Z	m
Z
 e eZddddde
 e	 d	 e	 d
 f dZG dd dejZeejffgZdd Zedkrd dlZe sged ed ejddjZeeed ed ed ed ed Zed Ze Z dS dS )    N)Tuple)sourcesstagesutilversionzhttp://169.254.169.254   
      z"Cloud-Init/%s - OS: %s Variant: %ssystemvariant)urlretriestimeoutwait
user-agentc                       s   e Zd ZU dZejjd Zeedf e	d<  fddZ
edd Zd	d
 Zdd Zdd Zdd Zedd Zedd Z  ZS )DataSourceVultrVultr)zstartup-script.sensitive_metadata_keysc                    s<   t t| ||| tt|ddgi tg| _d | _d S )N
datasourcer   )	superr   __init__r   mergemanydictget_cfg_by_pathBUILTIN_DS_CONFIGds_cfgnetcfg)selfsys_cfgdistropaths	__class__ C/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceVultr.pyr   %   s   
zDataSourceVultr.__init__c                   C   s   t  S N)vultris_vultrr"   r"   r"   r#   	ds_detect/   s   zDataSourceVultr.ds_detectc                 C   sT   t d |  | _| jd | _| | j t d| jd  t d| jd  dS )NzMachine is a Vultr instance	user-dataz	SUBID: %szinstance-idzHostname: %slocal-hostnameT)LOGdebugget_metadatametadatauserdata_rawget_datasource_datar   r"   r"   r#   	_get_data4   s   

zDataSourceVultr._get_datac                 C   sv   d|v rt |d  |d | _nt |d | _|d | _| jd dkr*d| jd< |d | _| jdkr9d | _d S d S )Ncloud_interfaces
interfacesvendor-datar)    guestr(   )r%   add_interface_namesr   generate_network_configvendordata_rawr-   r.   )r   mdr"   r"   r#   r/   F   s   




z#DataSourceVultr.get_datasource_datac              	   C   s>   t j| j| jd | jd | jd | jd | jd | j dS )Nr   r   r   r   r   )tmp_dir)r%   r,   r   r   get_tmp_exec_pathr0   r"   r"   r#   r,   [   s   zDataSourceVultr.get_metadatac                 C   s.   t  sdS t  rdS t  d }t|S )NFsubid)r%   r&   is_baremetalget_sysinfor   instance_id_matches_system_uuid)r   r   r=   r"   r"   r#   check_instance_idg   s   
z!DataSourceVultr.check_instance_idc                 C   s   d S r$   r"   r0   r"   r"   r#   launch_indexs   s   zDataSourceVultr.launch_indexc                 C   s   | j S r$   )r   r0   r"   r"   r#   network_configw   s   zDataSourceVultr.network_config)__name__
__module____qualname__dsnamer   
DataSourcer   r   str__annotations__r   staticmethodr'   r1   r/   r,   rA   propertyrB   rC   __classcell__r"   r"   r    r#   r      s   
 



r   c                 C   s   t | tS r$   )r   list_from_dependsdatasources)dependsr"   r"   r#   get_datasource_list   s   rQ   __main__zMachine is not a Vultr instance   T)reporterr   r   r   r   r   r4   )!loggingtypingr   cloudinit.sources.helpers.vultrr   helpersr%   	cloudinitr   r   r   	getLoggerrD   r*   version_stringsystem_infor   rH   r   DEP_FILESYSTEMrO   rQ   sysr&   printexitInitr   r,   r:   configr?   sysinfor"   r"   r"   r#   <module>   sJ   



a
